Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.plura.ai/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Zenoti is a unified CRM and operations platform for salons, spas, medspas, and fitness studios. The zenoti automation type fans out to ~160 actions across reference data, centers, services, employees, guests, memberships, bookings, appointments, invoices, payments, gift cards, opportunities, reports, inventory, classes, blockouts, organizations, and a generic raw-request escape hatch. Every action is invoked the same way — automationType: "zenoti", an action name, and a params object whose shape depends on the action. Most actions follow a consistent pattern:
  • apiKey — always at the top level of params.
  • Path IDs (centerId, guestId, appointmentId, invoiceId, roomId, employeeId, membershipId, …) — top level.
  • query — nested object with query-string filters (pagination, dates, etc.).
  • body — nested object with the POST/PUT request body.

Authentication

  • Zenoti API key — generate it in Admin → Configuration → Apps. The integration sends it as Authorization: apikey <key>.

Common parameters

  • apiKey (required for every action).
  • centerId (required for center-scoped actions; the Zenoti location UUID).
  • Pagination: most list endpoints accept query.page (1-based) and query.size (default 10, max 100).
  • Dates: ISO-8601 (YYYY-MM-DD or full timestamp depending on the endpoint).

Available Actions

Reference Centers Services Employees Guests Guest Memberships Bookings Appointments Invoices Gift Cards Opportunities Reports Inventory Classes Blockouts Organizations Miscellaneous

Examples

Example 1: List Countries

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_countries",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "query": { "page": 1, "size": 100 }
    }
  }
}

Example 2: List States

States within a country.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_states",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "countryId": "225",
      "query": { "page": 1, "size": 100 }
    }
  }
}

Example 3: List Reasons

Standard reasons (cancellation, freeze, etc.).
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_reasons",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY"
    }
  }
}

Example 4: List Gift Card Occasions

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_gift_card_occasions",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY"
    }
  }
}

Example 5: List Vendors

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_vendors",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY"
    }
  }
}

Example 6: List Centers

All centers in the org.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_centers",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "query": { "page": 1, "size": 50, "catalog_enabled": true }
    }
  }
}

Example 7: Get Center

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_center",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000"
    }
  }
}

Example 8: List Center Rooms

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_center_rooms",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000",
      "query": { "page": 1, "size": 50 }
    }
  }
}

Example 9: List Center Categories

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_center_categories",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000",
      "query": { "page": 1, "size": 50, "type": "service" }
    }
  }
}

Example 10: List Center Therapists

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_center_therapists",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000",
      "query": { "page": 1, "size": 50, "service_id": "service-uuid" }
    }
  }
}

Example 11: List Center Products

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_center_products",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000",
      "query": { "page": 1, "size": 50 }
    }
  }
}

Example 12: List Center Packages

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_center_packages",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000",
      "query": { "page": 1, "size": 50 }
    }
  }
}

Example 13: Get Center Attendance

Daily attendance roster for a center.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_center_attendance",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000",
      "query": { "date": "2026-04-30" }
    }
  }
}

Example 14: Get Center Category

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_center_category",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000",
      "categoryId": "category-uuid"
    }
  }
}

Example 15: Get Center Room

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_center_room",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000",
      "roomId": "room-uuid"
    }
  }
}

Example 16: List Center Blockouts

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_center_blockouts",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000",
      "query": { "start_date": "2026-04-01", "end_date": "2026-04-30" }
    }
  }
}

Example 17: List Center Memberships

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_center_memberships",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000",
      "query": { "page": 1, "size": 50, "status": "active" }
    }
  }
}

Example 18: Get Center Members

Active membership holders at a center.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_center_members",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000",
      "query": { "status": "active", "page": 1, "size": 50 }
    }
  }
}

Example 19: List Services

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_services",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000",
      "query": { "page": 1, "size": 50, "show_in_catalog": true }
    }
  }
}

Example 20: Get Service

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_service",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000",
      "serviceId": "service-uuid"
    }
  }
}

Example 21: Get Service Pricing

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_service_pricing",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000",
      "serviceId": "service-uuid",
      "query": { "therapist_id": "therapist-uuid", "gender": "female" }
    }
  }
}

Example 22: List Employees

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_employees",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000",
      "query": { "page": 1, "size": 50 }
    }
  }
}

Example 23: Get Employee

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_employee",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "employeeId": "employee-uuid"
    }
  }
}

Example 24: Create Employee

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_employee",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "body": {
        "personal_info": {
          "first_name": "Jane",
          "last_name": "Doe",
          "email": "jane.doe@example.com",
          "mobile_phone": { "country_code": 225, "number": "5551234567" }
        },
        "job_info": {
          "center_id": "00000000-0000-0000-0000-000000000000",
          "job_id": "job-uuid"
        }
      }
    }
  }
}

Example 25: Update Employee

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "update_employee",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "employeeId": "employee-uuid",
      "body": {
        "personal_info": { "email": "new.email@example.com" }
      }
    }
  }
}

Example 26: Employee Check-in

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "employee_checkin",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "employeeId": "employee-uuid"
    }
  }
}

Example 27: Employee Check-out

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "employee_checkout",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "employeeId": "employee-uuid"
    }
  }
}

Example 28: Get Employee Attendance

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_employee_attendance",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "employeeId": "employee-uuid",
      "query": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "start_date": "2026-04-01",
        "end_date": "2026-04-30"
      }
    }
  }
}

Example 29: Search Guests

Search by any combination of email, phone, name, code. center_id is required.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "search_guests",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "query": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "email": "guest@example.com"
      }
    }
  }
}

Example 30: List Guests

Bulk list guests at a center.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_guests",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "query": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "page": 1,
        "size": 50
      }
    }
  }
}

Example 31: Get Guest

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_guest",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid"
    }
  }
}

Example 32: Create Guest

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_guest",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "personal_info": {
          "first_name": "Alex",
          "last_name": "Smith",
          "gender": -1,
          "email": "alex.smith@example.com",
          "mobile_phone": { "country_code": 225, "number": "5551234567" }
        }
      }
    }
  }
}

Example 33: Update Guest

Full replace — pass any subset of the create body that you want to overwrite.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "update_guest",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "body": {
        "personal_info": { "email": "new.email@example.com" }
      }
    }
  }
}

Example 34: List Guest Appointments

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_guest_appointments",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "query": { "page": 1, "size": 50 }
    }
  }
}

Example 35: List Guest Products

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_guest_products",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "query": { "page": 1, "size": 50 }
    }
  }
}

Example 36: List Guest Saved Cards

⚠️ Tenant-config dependent. Only available on tenants with a PCI-compliant payment processor wired up. Note the capital I in center_Id.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_guest_saved_cards",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "query": {
        "center_Id": "00000000-0000-0000-0000-000000000000",
        "get_shared_cards": false,
        "get_expired_cards": false
      }
    }
  }
}

Example 37: Add Guest Card

Returns a hosted-payment-page redirect URL for the guest to enter card details (PCI compliant).
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "add_guest_card",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "redirect_uri": "https://example.com/return",
        "share_cards_to_web": true
      }
    }
  }
}

Example 38: Delete Guest Saved Card

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "delete_guest_saved_card",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "cardId": "card-token-id"
    }
  }
}

Example 39: Create Guest Note

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_guest_note",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "body": {
        "notes": "VIP guest — prefers afternoon appointments.",
        "note_type": 1,
        "center": { "id": "00000000-0000-0000-0000-000000000000" },
        "is_private": false,
        "alert": false
      }
    }
  }
}

Example 40: List Guest Notes

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_guest_notes",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "query": { "page": 1, "size": 50 }
    }
  }
}

Example 41: Update Guest Note

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "update_guest_note",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "noteId": "note-uuid",
      "body": {
        "notes": "Updated note text",
        "note_type": 1,
        "center": { "id": "00000000-0000-0000-0000-000000000000" }
      }
    }
  }
}

Example 42: Delete Guest Note

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "delete_guest_note",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "noteId": "note-uuid"
    }
  }
}

Example 43: List Guest Gift Cards

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_guest_gift_cards",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "query": { "page": 1, "size": 50 }
    }
  }
}

Example 44: List Guest Packages

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_guest_packages",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "query": { "page": 1, "size": 50 }
    }
  }
}

Example 45: List Guest Loyalty Points

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_guest_loyalty_points",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid"
    }
  }
}

Example 46: Get Guest Loyalty Points History

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_guest_loyalty_points_history",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "query": { "page": 1, "size": 50 }
    }
  }
}

Example 47: Add / Remove Loyalty Points

Points is positive to add, negative to remove. Note PascalCase fields.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "add_remove_loyalty_points",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "body": {
        "GuestId": "guest-uuid",
        "CenterId": "00000000-0000-0000-0000-000000000000",
        "Points": 100,
        "Comments": "Promotional bonus"
      }
    }
  }
}

Example 48: List Guest Relationships

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_guest_relationships",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid"
    }
  }
}

Example 49: Guest Reset Password

Triggers a password reset email/SMS for the guest.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "guest_reset_password",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "body": {
        "email_or_phone": "guest@example.com",
        "first_name": "Alex"
      }
    }
  }
}

Example 50: Update Guest Password

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "update_guest_password",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "body": {
        "new_password": "NewSecurePassword123!",
        "old_password": "OldPassword"
      }
    }
  }
}

Example 51: Update Billing Address

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "update_billing_address",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "cardId": "card-token-id",
      "body": {
        "address1": "123 Main St",
        "city": "San Antonio",
        "state_id": "1",
        "country_id": "225",
        "zip_code": "78244"
      }
    }
  }
}

Example 52: Create Guest Form

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_guest_form",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "body": {
        "form_id": "form-uuid",
        "data": "{\"q1\":\"answer\"}",
        "is_form_submitted": true
      }
    }
  }
}

Example 53: Get Guest Form

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_guest_form",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "versionNo": "1"
    }
  }
}

Example 54: Update Guest Form

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "update_guest_form",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "body": {
        "form_id": "form-uuid",
        "data": "{\"q1\":\"updated\"}"
      }
    }
  }
}

Example 55: List Guest Memberships

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_guest_memberships",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "query": { "center_id": "00000000-0000-0000-0000-000000000000" }
    }
  }
}

Example 56: Get Guest Pending Collection

Outstanding balance owed on a membership.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_guest_pending_collection",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "membershipId": "membership-uuid"
    }
  }
}

Example 57: Cancel Membership

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "cancel_membership",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "membershipId": "membership-uuid",
      "body": {
        "cancellation_date": "2026-04-30",
        "termination_date": "null"
      }
    }
  }
}

Example 58: Freeze Membership

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "freeze_membership",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "membershipId": "membership-uuid",
      "body": {
        "start_date": "2026-05-01",
        "end_date": "2026-05-31"
      }
    }
  }
}

Example 59: Unfreeze Membership

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "unfreeze_membership",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "membershipId": "membership-uuid",
      "body": { "reason": "Guest returned early" }
    }
  }
}

Example 60: Change Membership Renewal

Toggle auto-renewal on/off.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "change_membership_renewal",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "membershipId": "membership-uuid",
      "body": { "auto_renew": false, "reason": "Guest request" }
    }
  }
}

Example 61: Create Booking

A “booking” is a holding container for one or more service slots before they are confirmed as appointments.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_booking",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "date": "2026-05-01",
        "guests": [
          {
            "id": "guest-uuid",
            "items": [{ "item": { "id": "service-uuid" } }]
          }
        ]
      }
    }
  }
}

Example 62: Get Booking Slots

Available time slots for a booking.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_booking_slots",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "bookingId": "booking-uuid",
      "query": { "check_future_day_availability": true }
    }
  }
}

Example 63: Reserve Slot

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "reserve_slot",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "bookingId": "booking-uuid",
      "body": {
        "slot_time": "2026-05-01T10:00:00",
        "create_invoice": true
      }
    }
  }
}

Example 64: Confirm Slot

Converts the reserved slot into a confirmed appointment.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "confirm_slot",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "bookingId": "booking-uuid",
      "body": { "notes": "Booked via website" }
    }
  }
}

Example 65: List Appointments

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_appointments",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "query": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "start_date": "2026-04-30",
        "end_date": "2026-04-30",
        "include_no_show_cancel": false
      }
    }
  }
}

Example 66: Get Appointment

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_appointment",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "appointmentId": "appointment-uuid"
    }
  }
}

Example 67: Mark Appointment No-Show

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "mark_appointment_no_show",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "appointmentId": "appointment-uuid",
      "body": { "comments": "Guest didn't arrive within 15 min" }
    }
  }
}

Example 68: Appointment Check-in

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "appointment_check_in",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "appointmentId": "appointment-uuid"
    }
  }
}

Example 69: Undo Appointment Check-in

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "undo_appointment_check_in",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "appointmentId": "appointment-uuid"
    }
  }
}

Example 70: List Appointment Forms

Forms attached to an appointment (intake, consent, etc.).
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_appointment_forms",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "appointmentId": "appointment-uuid"
    }
  }
}

Example 71: Get Appointment Form

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_appointment_form",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "appointmentId": "appointment-uuid",
      "formId": "form-uuid"
    }
  }
}

Example 72: Create Invoice

Creates an open product invoice.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_invoice",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "guest_id": "guest-uuid",
        "products": [
          { "id": "product-uuid", "quantity": 1 }
        ],
        "notes": "Walk-in retail purchase"
      }
    }
  }
}

Example 73: Get Invoice

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_invoice",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "query": { "expand": "items,payments" }
    }
  }
}

Example 74: Close Invoice

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "close_invoice",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "body": { "is_invoice_closed": true, "status": 2 }
    }
  }
}

Example 75: Cancel Invoice

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "cancel_invoice",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "body": { "comments": "Guest cancelled before service" }
    }
  }
}

Example 76: Email Invoice

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "email_invoice",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "body": { "email": "guest@example.com" }
    }
  }
}

Example 77: Add Invoice Membership

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "add_invoice_membership",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "user_id": "guest-uuid",
        "membership_ids": ["membership-template-uuid"]
      }
    }
  }
}

Example 78: Add Invoice Product

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "add_invoice_product",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "body": {
        "products": [{ "id": "product-uuid", "quantity": 2 }]
      }
    }
  }
}

Example 79: Remove Invoice Product

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "remove_invoice_product",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "productId": "product-line-item-uuid"
    }
  }
}

Example 80: Remove Invoice Membership

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "remove_invoice_membership",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "membershipId": "membership-line-item-uuid"
    }
  }
}

Example 81: Pay Invoice — Saved Card

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "pay_invoice_saved_card",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "body": {
        "account_id": "card-token-id",
        "center_id": "00000000-0000-0000-0000-000000000000",
        "redirect_uri": "https://example.com/return",
        "source": 0,
        "tip_amount": 5
      }
    }
  }
}

Example 82: Pay Invoice — Gift Card

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "pay_invoice_gift_card",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "body": {
        "card_number": "GC123456",
        "amount": 100,
        "tip_amount": 0
      }
    }
  }
}

Example 83: Pay Invoice — Custom

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "pay_invoice_custom",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "body": {
        "amount": 100,
        "cash_register_id": "register-uuid",
        "custom_payment_id": "custom-payment-method-uuid"
      }
    }
  }
}

Example 84: Pay Invoice — Tip

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "pay_invoice_tip",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "body": {
        "account_id": "card-token-id",
        "center_id": "00000000-0000-0000-0000-000000000000",
        "tip_amount": 10
      }
    }
  }
}

Example 85: Pay Invoice — New Card

⚠️ PCI-gated. Only enabled on tenants whose payment processor supports server-side card capture.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "pay_invoice_new_card",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "body": {
        "allow_new_card": true,
        "amount": 100,
        "card": {
          "number": "4111111111111111",
          "cvv": "123",
          "expiry_month": 12,
          "expiry_year": 2030
        },
        "save_card": false
      }
    }
  }
}

Example 86: Email Invoice Gift Card

Send an e-gift-card email to the recipient associated with an invoice.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "email_invoice_gift_card",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "body": {
        "recipient_email": "recipient@example.com",
        "recipient_name": "Sam",
        "message": "Happy birthday!"
      }
    }
  }
}

Example 87: Apply Campaign Offer

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "apply_campaign_offer",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "body": {
        "offer_code": "SPRING25",
        "center_id": "00000000-0000-0000-0000-000000000000"
      }
    }
  }
}

Example 88: Redeem Loyalty Points (Invoice)

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "redeem_loyalty_points_invoice",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "body": {
        "points": 500,
        "center_id": "00000000-0000-0000-0000-000000000000"
      }
    }
  }
}

Example 89: Sell Package

Creates a package-sale invoice for a guest.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "sell_package",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "body": {
        "guest_id": "guest-uuid",
        "center_id": "00000000-0000-0000-0000-000000000000",
        "package_details": [{ "package_id": "package-uuid", "quantity": 1 }]
      }
    }
  }
}

Example 90: Redeem Package

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "redeem_package",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "body": {
        "package_user_ids": ["package-user-uuid"]
      }
    }
  }
}

Example 91: Create Product Invoice

Same shape as create_invoice — explicit alias.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_product_invoice",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "guest_id": "guest-uuid",
        "products": [{ "id": "product-uuid", "quantity": 1 }]
      }
    }
  }
}

Example 92: Create Group Invoice

Roll up multiple individual invoices under a single group billing.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_group_invoice",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "body": {
        "group_name": "Bridal party — Smith",
        "invoice_ids": ["invoice-uuid-1", "invoice-uuid-2"]
      }
    }
  }
}

Example 93: Get Group Invoice

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_group_invoice",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "groupId": "group-uuid"
    }
  }
}

Example 94: Email Group Invoice

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "email_group_invoice",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "groupId": "group-uuid",
      "body": {
        "guest_details": [
          { "guest_id": "guest-uuid", "email": "guest@example.com" }
        ]
      }
    }
  }
}

Example 95: Create Gift Card Invoice

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_gift_card_invoice",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "guest_id": "guest-uuid",
        "giftcards": [
          { "template_id": "gc-template-uuid", "amount": 100 }
        ]
      }
    }
  }
}

Example 96: Get Gift Card Balance

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_gift_card_balance",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "giftCardId": "gift-card-id"
    }
  }
}

Example 97: Create Custom Amount GC Template

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_custom_amount_gc_template",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "custom_amount": { "amount": 50, "validity": 365 }
      }
    }
  }
}

Example 98: Create Service GC Template

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_service_gc_template",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "services": [{ "service_id": "service-uuid", "quantity": 1 }]
      }
    }
  }
}

Example 99: List Gift Card Templates

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_gift_card_templates",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "query": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "page": 1,
        "size": 50
      }
    }
  }
}

Example 100: List Center Gift Card Templates

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_center_gift_card_templates",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000",
      "query": { "page": 1, "size": 50 }
    }
  }
}

Example 101: Create Opportunity

CRM lead/opportunity — Zenoti’s sales pipeline.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_opportunity",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "opportunity_title": "Annual membership",
        "opportunity_owner_id": "owner-uuid",
        "guest_id": "guest-uuid",
        "expected_close_date": "2026-06-01",
        "offered_amount": 1200
      }
    }
  }
}

Example 102: List Opportunities

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_opportunities",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "query": {
        "view_id": "view-uuid",
        "page_num": 1,
        "records": 50
      }
    }
  }
}

Example 103: Get Opportunity

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_opportunity",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "opportunityId": "opportunity-uuid"
    }
  }
}

Example 104: Update Opportunity

Body shape mirrors create_opportunity.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "update_opportunity",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "opportunityId": "opportunity-uuid",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "opportunity_title": "Annual membership — discounted",
        "opportunity_owner_id": "owner-uuid",
        "guest_id": "guest-uuid",
        "offered_amount": 1100
      }
    }
  }
}

Example 105: Get Opportunity Metadata

Returns priority types, statuses, dispositions, custom fields, etc.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_opportunity_metadata",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY"
    }
  }
}

Example 106: Create Opportunity Note

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_opportunity_note",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "opportunityId": "opportunity-uuid",
      "body": { "notes": "Left voicemail" }
    }
  }
}

Example 107: List Opportunity Notes

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_opportunity_notes",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "opportunityId": "opportunity-uuid",
      "query": { "page": 1, "size": 50 }
    }
  }
}

Example 108: Get Center Collections Report

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_center_collections_report",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000",
      "query": {
        "start_date": "2026-04-01",
        "end_date": "2026-04-30",
        "include_transactions": true,
        "include_employee_tips": true
      }
    }
  }
}

Example 109: Get Center Sales Report

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_center_sales_report",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "centerId": "00000000-0000-0000-0000-000000000000",
      "query": {
        "start_date": "2026-04-01",
        "end_date": "2026-04-30"
      }
    }
  }
}

Example 110: Get Inventory Stock

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_inventory_stock",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "query": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "inventory_date": "2026-04-30"
      }
    }
  }
}

Example 111: Get Inventory Consumption

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_inventory_consumption",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "query": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "start_date": "2026-04-01",
        "end_date": "2026-04-30"
      }
    }
  }
}

Example 112: List Purchase Orders

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_purchase_orders",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "query": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "start_date": "2026-04-01",
        "end_date": "2026-04-30"
      }
    }
  }
}

Example 113: Get Purchase Order

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_purchase_order",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "poId": "purchase-order-uuid"
    }
  }
}

Example 114: List Transfer Orders

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_transfer_orders",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "query": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "start_date": "2026-04-01",
        "end_date": "2026-04-30"
      }
    }
  }
}

Example 115: Get Transfer Order

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_transfer_order",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "toId": "transfer-order-uuid"
    }
  }
}

Example 116: List Class Registrations

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_class_registrations",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "classId": "class-uuid",
      "query": {
        "session_id": "session-uuid",
        "center_id": "00000000-0000-0000-0000-000000000000",
        "page": 1,
        "size": 50
      }
    }
  }
}

Example 117: Register Guest to Class

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "register_guest_to_class",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "classId": "class-uuid",
      "body": {
        "guest_id": "guest-uuid",
        "session_id": "session-uuid",
        "center_id": "00000000-0000-0000-0000-000000000000",
        "waitlist": false,
        "add_to_all": false
      }
    }
  }
}

Example 118: Register via Gympass

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "register_via_gympass",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "body": {
        "provider_registration_id": "gympass-id",
        "account_name": "GymPass",
        "center_id": "00000000-0000-0000-0000-000000000000",
        "schedule_id": "session-uuid",
        "user": {
          "personal_info": {
            "first_name": "Alex",
            "last_name": "Smith",
            "email": "alex@example.com"
          }
        }
      }
    }
  }
}

Example 119: Cancel Class Registration

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "cancel_class_registration",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "classId": "class-uuid",
      "registrationId": "registration-uuid",
      "body": { "waive_fee": true }
    }
  }
}

Example 120: Cancel Workshop Registration

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "cancel_workshop_registration",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "workshopId": "workshop-uuid",
      "registrationId": "registration-uuid",
      "body": { "waive_fee": false }
    }
  }
}

Example 121: Admin Enroll Class

Admin-only enrollment that bypasses the standard guest-side flow.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "admin_enroll_class",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "sessionId": "session-uuid",
      "body": {
        "SessionId": 12345,
        "GuestId": "guest-uuid",
        "Notes": "Comp enrollment"
      }
    }
  }
}

Example 122: List Guest Class Sessions

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_guest_class_sessions",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "guestId": "guest-uuid",
      "query": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "start_date": "2026-04-01",
        "end_date": "2026-04-30"
      }
    }
  }
}

Example 123: Cancel Class Session Registrations

Cancels every registration on a session.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "cancel_class_session_registrations",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "sessionId": "session-uuid"
    }
  }
}

Example 124: Create Class Membership Invoice

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_class_membership_invoice",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "user_id": "guest-uuid",
        "membership_version_ids": ["membership-version-uuid"]
      }
    }
  }
}

Example 125: Create Series Package Invoice

Note the mixed PascalCase / camelCase Zenoti uses here.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_series_package_invoice",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "body": {
        "CenterId": "00000000-0000-0000-0000-000000000000",
        "userId": "guest-uuid",
        "packageIds": ["series-package-uuid"]
      }
    }
  }
}

Example 126: Book Class Session

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "book_class_session",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "sessionId": "session-uuid",
      "body": {
        "BookingSource": 1,
        "sessionId": "session-uuid"
      }
    }
  }
}

Example 127: Close Series Invoice

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "close_series_invoice",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "body": { "is_invoice_closed": true }
    }
  }
}

Example 128: Close Membership Invoice

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "close_membership_invoice",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "invoiceId": "invoice-uuid",
      "body": { "is_invoice_closed": true }
    }
  }
}

Example 129: Pay Class Booking — Saved Card

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "pay_class_booking_saved_card",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "bookingId": "booking-uuid",
      "body": {
        "transactionDetails": {
          "PaymentaccountID": "card-token-id",
          "Source": 0,
          "transactionType": 1
        }
      }
    }
  }
}

Example 130: List Class Booking Payment Methods

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_class_booking_payment_methods",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY"
    }
  }
}

Example 131: List Class Memberships

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_class_memberships",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "query": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "page": 1,
        "size": 50
      }
    }
  }
}

Example 132: List Class Packages

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_class_packages",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "query": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "page": 1,
        "size": 50
      }
    }
  }
}

Example 133: List Class Sessions

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_class_sessions",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "query": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "start_date": "2026-04-01",
        "end_date": "2026-04-30"
      }
    }
  }
}

Example 134: Create Room Blockout

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_room_blockout",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "roomId": "room-uuid",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "block_out_time_type_id": "blockout-type-uuid",
        "start_time": "2026-05-01T09:00:00",
        "end_time": "2026-05-01T17:00:00",
        "notes": "Maintenance"
      }
    }
  }
}

Example 135: Create Recurring Room Blockout

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_recurring_room_blockout",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "roomId": "room-uuid",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "block_out_time_type_id": "blockout-type-uuid",
        "start_time": "2026-05-01T09:00:00",
        "end_time": "2026-05-01T10:00:00",
        "recurring_block_out_time": {
          "frequency": "weekly",
          "until": "2026-08-01"
        }
      }
    }
  }
}

Example 136: List Room Blockouts

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_room_blockouts",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "roomId": "room-uuid",
      "query": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "start_date": "2026-04-01",
        "end_date": "2026-04-30"
      }
    }
  }
}

Example 137: Get Room Blockout

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_room_blockout",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "roomId": "room-uuid",
      "blockoutId": "blockout-uuid"
    }
  }
}

Example 138: Update Room Blockout

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "update_room_blockout",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "roomId": "room-uuid",
      "blockoutId": "blockout-uuid",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "block_out_time_type_id": "blockout-type-uuid",
        "start_time": "2026-05-01T09:00:00",
        "end_time": "2026-05-01T18:00:00"
      }
    }
  }
}

Example 139: Delete Room Blockout

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "delete_room_blockout",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "roomId": "room-uuid",
      "blockoutId": "blockout-uuid"
    }
  }
}

Example 140: Create Employee Blockout

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_employee_blockout",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "employeeId": "employee-uuid",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "block_out_time_type_id": "blockout-type-uuid",
        "start_time": "2026-05-01T09:00:00",
        "end_time": "2026-05-01T17:00:00",
        "notes": "Vacation"
      }
    }
  }
}

Example 141: Create Recurring Employee Blockout

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "create_recurring_employee_blockout",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "employeeId": "employee-uuid",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "block_out_time_type_id": "blockout-type-uuid",
        "start_time": "2026-05-01T12:00:00",
        "end_time": "2026-05-01T13:00:00",
        "recurring_block_out_time": {
          "frequency": "daily",
          "until": "2026-06-01"
        }
      }
    }
  }
}

Example 142: List Employee Blockouts

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_employee_blockouts",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "employeeId": "employee-uuid",
      "query": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "start_date": "2026-04-01",
        "end_date": "2026-04-30"
      }
    }
  }
}

Example 143: Get Employee Blockout

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_employee_blockout",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "employeeId": "employee-uuid",
      "blockoutId": "blockout-uuid"
    }
  }
}

Example 144: Update Employee Blockout

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "update_employee_blockout",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "employeeId": "employee-uuid",
      "blockoutId": "blockout-uuid",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "block_out_time_type_id": "blockout-type-uuid",
        "start_time": "2026-05-01T09:00:00",
        "end_time": "2026-05-01T18:00:00"
      }
    }
  }
}

Example 145: Delete Employee Blockout

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "delete_employee_blockout",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "employeeId": "employee-uuid",
      "blockoutId": "blockout-uuid"
    }
  }
}

Example 146: List Blockout Time Types

Blockout categories (vacation, training, maintenance, etc.) at the center level.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_blockout_time_types",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY"
    }
  }
}

Example 147: Get Security Profiles

Org-level security profiles.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_security_profiles",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY"
    }
  }
}

Example 148: List Org Blockout Time Types

Blockout categories at the org level (vs. per-center).
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "list_blockout_times_types_org",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY"
    }
  }
}

Example 149: Get Security Roles

{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "get_security_roles",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY"
    }
  }
}

Example 150: Generate Shopify Multipass URL

Single-sign-on URL into a linked Shopify storefront.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "generate_shopify_multipass_url",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "query": {
        "guest_id": "guest-uuid",
        "return_to": "/products/all"
      }
    }
  }
}

Example 151: Raw Request

Escape hatch for any Zenoti endpoint not yet first-classed in the integration. The path is appended to the Zenoti regional base URL; the apiKey header is added automatically.
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "raw_request",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "method": "GET",
      "path": "/v1/centers",
      "query": { "page": 1, "size": 10 }
    }
  }
}
{
  "automationType": "zenoti",
  "nodeParams": {
    "action": "raw_request",
    "params": {
      "apiKey": "YOUR_ZENOTI_API_KEY",
      "method": "POST",
      "path": "/v1/guests",
      "body": {
        "center_id": "00000000-0000-0000-0000-000000000000",
        "personal_info": { "first_name": "Alex", "last_name": "Smith", "gender": -1 }
      }
    }
  }
}

Notes & Caveats

  • PCI-gated endpoints. list_guest_saved_cards, delete_guest_saved_card, add_guest_card, and pay_invoice_new_card only work on Zenoti tenants whose payment processor supports the corresponding flow. Sandboxes (including iFlex) typically return a regional 404 HTML page rather than the API response — ask Zenoti support to enable the payment-processor integration if you see that.
  • Mixed casing. Zenoti’s API is inconsistent about field casing — some endpoints use snake_case, some camelCase, some PascalCase, and a few mix all three within one body (center_Id vs center_id, SessionId + userId + packageIds). Examples above mirror what Zenoti accepts.
  • Center scoping. Most operational endpoints (services, employees, appointments, invoices, memberships, classes, …) require a centerId (or center_id inside query/body). Reference and org-level endpoints don’t.
  • Pagination. query.page is 1-based; query.size defaults to 10 with a server cap of 100.

Third-Party Documentation