Zenoti
Integuru generates a production-ready HTTP API for Zenoti, the cloud-based salon and spa management platform. The integration covers 11 actions across appointment scheduling, guest management, employee and therapist lookup, and service catalog access, letting wellness-tech teams automate Zenoti workflows without browser automation.
Last reviewed: July 2026
Overview
Integuru's Zenoti integration provides production-ready HTTP API access to Zenoti, the cloud-based salon, spa, and wellness management platform used by single-location studios and multi-center enterprise brands, covering 11 actions across appointment management, guest records, employee and therapist lookup, center discovery, and service catalog access. Integuru connects to Zenoti via direct HTTP requests rather than browser automation, so calls complete in under 3 seconds with a 99.9%+ success rate.
Subdomain-based deployment. Zenoti hosts each organization on its own subdomain (e.g.,
yourcompany.zenoti.com). Configure your organization's subdomain when setting up the integration; Integuru authenticates against that instance and manages the session from that point forward.
The list_appointments action returns a structured response with count, date_range, and an appointments array. Date ranges are capped at 31 days per query. Pass include_invoice_details: false to skip line-item invoice data when you only need appointment slots, which speeds up the response. The full appointment write lifecycle is covered: book_appointment creates new appointments, edit_appointment modifies them, and list_appointments retrieves them by date range.
Guest management spans list_guests, get_guest_profile, create_guest, and create_patient_note. The create_guest action supports extensive optional fields including communication preferences, referral tracking, and center-specific assignment. See the Vagaro integration for another major salon and spa platform, or browse the full integrations catalogue.
Use Cases
Integuru's Zenoti integration covers the appointment and guest management workflows that wellness-tech engineers and franchise operators need to automate. Because Zenoti uses UUIDs throughout, most workflows begin with a center or employee lookup before calling the target action.
- Appointment retrieval: Call
list_appointmentswithstart_dateandend_date(max 31-day window) to retrieve all appointments for a center. Passinclude_cancelled: trueto include no-shows and cancellations, orinclude_invoice_details: falsefor a faster response without financial line items. - Appointment booking: Get the
center_idfromlist_centers, theservice_idfromlist_services, and optionally thetherapist_idfromlist_therapists(filtered to therapists who perform that specific service), then callbook_appointmentwithstart_timeinYYYY-MM-DD HH:MMformat. - Appointment edits: Call
edit_appointmentwith theappointment_id,appointment_group_id,guest_id,service_id, andtherapist_idfrom the appointment record. Both the individual appointment UUID and the group UUID are required. - Guest management: Use
list_gueststo page through the guest roster for a center,get_guest_profileto retrieve a full guest record by UUID, andcreate_guestto register new guests with optional communication preferences, referral sources, and primary employee assignments. - Clinical notes: Add staff-visible notes to a guest record with
create_patient_note. Required fields includecenter_id,patient_id,added_by_id,center_name, andadded_by_name. Passis_private: falseto make the note visible to non-staff roles. - Staff and service discovery: Call
list_centersto enumerate locations,list_employeesto list staff across all centers or filtered to one,list_therapiststo find therapists available for a specific service on a given date, andlist_servicesto browse the service catalog for a center.
Setup Notes
Integuru's Zenoti integration authenticates against your organization's Zenoti subdomain (https://<SUBDOMAIN>.zenoti.com/). Configure the correct subdomain for your organization when setting up the integration. Integuru handles the full login flow automatically from that point forward.
All Zenoti identifiers are UUIDs, not numeric IDs. The dependency chain for most appointment and guest actions is:
list_centersto get validcenter_idvalueslist_services(requirescenter_id) to getservice_idvalueslist_therapists(requirescenter_idandservice_id) to gettherapist_idvalueslist_guestsorget_guest_profile(requiresguest_id) for guest datalist_employeesto getadded_by_idforcreate_patient_note
For list_appointments, the end_date may not exceed 31 days after start_date. If you need a longer historical window, issue multiple calls with successive 31-day windows.
For edit_appointment, both appointment_id and appointment_group_id are required. Both values appear in each appointment object returned by list_appointments. The guest_id field in edit_appointment corresponds to the userid field in the appointment record.
For create_guest, the preferences object controls six communication channel flags. All default to true except receive_lp_stmt. Setting is_minor: true disables marketing preference fields automatically. To allow creation when an email already exists in another guest record, pass allow_duplicate_email: true or skip_duplicate_check: true.