Search Documentation

Find sections across all documentation pages

Widget Settings

Configure your booking widget to match your brand and business requirements. All settings can be updated at any time.

Appearance Settings

Primary Color

The main brand color used for buttons, CTAs, and interactive elements. If your brand color is blue (#0066CC), set this as your primary color so all booking buttons match your website.

Button Text Color

The color of text displayed on primary buttons. Use white (#FFFFFF) for dark primary colors, or dark text for light primary colors.

Border Radius

Controls the roundness of buttons and input fields (0-32px): 0px = sharp corners, 8px = slightly rounded, 16px = rounded, 32px = pill-shaped.

CTA Text

The call-to-action text displayed on the main booking button. Defaults to "Book Appointment" if not set. Also used as the default button text in the Button Trigger embed mode.

Tip: The widget settings page includes a live preview that updates in real-time as you adjust colors and border radius.

Booking Policies

Cancellation Fee

Dollar amount charged if customer cancels within the notice period (e.g., $25).

Cancellation Notice (Hours)

Minimum hours of advance notice required to cancel without penalty. Typical values: 24-48 hours.

Late Arrival Policy (Minutes)

Maximum minutes late before appointment may be cancelled. Common value: 15 minutes.

Maximum Booking Window (Days)

How many days in advance customers can book. Set to 90 for 3 months advance booking.

Features & Requirements

Require Phone Number

When enabled, customers must provide a phone number during booking. Recommended for appointment confirmations and reminders.

Require SMS Verification

Sends an SMS code to verify the customer's phone number before allowing booking. Helps prevent spam and no-shows. Requires "Require Phone Number" to be enabled.

Require Payment Method

Collects credit card information to hold the appointment (no charge until service). Reduces no-shows significantly.

Show Prices

Displays service prices in the widget. Disable if you prefer to discuss pricing during the appointment.

Show Only Consultations

Filters services to show only consultation-type appointments. Useful if you want to limit online booking to initial consultations.

Show Subcategories

Displays service subcategories in the service selection step for better organization.

Show Providers

When enabled, adds a provider/therapist selection step to the booking flow. Customers can choose a specific provider or select "Any Available" for the next opening.

Show Add-Ons

Allows customers to add additional services or enhancements during the booking process.

Require Marketing Consent

Adds a checkbox for customers to opt-in to marketing emails. Helps build your email list compliantly. You can customize the consent text using the "Marketing Consent Text" field.

Marketing Consent Text

Custom text shown next to the marketing consent checkbox. Use this to describe what customers are opting into.

Verification Method

Choose between SMS or email verification for new guests. SMS sends a code to the guest's phone via Twilio. Email sends a code to the guest's email via Resend. Existing guests are verified based on which contact info matches their Zenoti record.

Offer Code

When enabled, displays an optional text field on the booking confirmation screen where guests can enter a promo or referral code. The entered code is included in webhook payloads as offerCode.

Transaction Consent Language

Custom legal language displayed during the booking confirmation step. Use this for terms the customer must agree to when completing a booking.

Deposits & Gift Cards

Advanced Deposit

When enabled, collects a deposit amount at the time of booking. The deposit is charged immediately and applied toward the final service cost.

Advanced Deposit Amount

The dollar amount to collect as a deposit (e.g., $50). Only applies when Advanced Deposit is enabled.

Gift Card URL

Link to your gift card purchase page. When set, a gift card link is displayed in the widget for cross-promotion.

Promotions

Show Promo Banner

Displays a promotional banner at the top of the widget. Use this to highlight special offers or seasonal promotions.

Promos

A list of promotional messages to rotate in the promo banner. Add multiple promos to cycle through different offers.

Webhooks

Webhooks send HTTP POST requests to your specified URL when booking events occur. Use this to integrate with your own systems.

Webhook URL

The endpoint where webhook events will be sent. Must be a valid HTTPS URL.

Booking Start Webhook

Triggered when a customer completes Step 1 (personal information). Useful for tracking booking intent and capturing leads early in the funnel.

Booking Complete Webhook

Triggered when a booking is successfully completed. Use this to update your CRM, send confirmation emails, or trigger other automations.

booking_started Payload

Sent when a guest submits their personal info and begins the booking flow.

{
  "event": "booking_started",
  "timestamp": "2025-01-15T14:25:00.000Z",
  "data": {
    "sessionId": "abc123...",
    "email": "customer@example.com",
    "firstName": "Jane",
    "lastName": "Doe",
    "phone": "(555) 123-4567",
    "accountName": "your-salon",
    "serviceCategory": "Hair Services",
    "tracking": { ... }
  }
}

booking_completed Payload

Sent when a booking is fully confirmed in Zenoti.

{
  "event": "booking_completed",
  "timestamp": "2025-01-15T14:30:00.000Z",
  "data": {
    "sessionId": "abc123...",
    "bookingId": "zenoti-booking-id",
    "reservationId": "zenoti-reservation-id",
    "value": 85.00,
    "serviceId": "service-123",
    "serviceName": "Haircut",
    "serviceCategory": "Hair Services",
    "date": "2025-01-15",
    "startTime": "14:30",
    "firstName": "Jane",
    "lastName": "Doe",
    "email": "customer@example.com",
    "phone": "(555) 123-4567",
    "accountName": "your-salon",
    "offerCode": "SUMMER2025",
    "addOns": [
      { "id": "addon-1", "name": "Deep Conditioning", "price": 25.00 }
    ],
    "tracking": {
      "utm": {
        "source": "google",
        "medium": "cpc",
        "campaign": "summer-promo",
        "term": "haircut near me",
        "content": null
      },
      "click_ids": {
        "gclid": "abc123...",
        "fbclid": null,
        "fbc": null,
        "fbp": null,
        "msclkid": null
      },
      "referral": {
        "referrer": "https://www.google.com",
        "landing_page": "https://yoursalon.com/book"
      }
    }
  }
}

The tracking object is automatically included when session tracking data is available. It contains UTM parameters, ad platform click IDs (Google, Facebook, Microsoft), and referral information captured when the customer first loaded the widget. The offerCode and addOns fields are included only when applicable.

Email Notifications

Notification Email

Email address where booking notifications and system alerts will be sent.

Send Booking Start Email

When enabled, sends an email notification when a customer begins the booking process (completes Step 1).

Send Booking Complete Email

When enabled, sends an email notification when a booking is successfully completed.

Contact Information

Support Email

Displayed in the widget for customer support questions. Also used for error notifications.

Support Phone

Phone number shown in the widget for customer support.

Privacy Policy URL

Link to your privacy policy. Displayed in the widget to ensure compliance with data protection regulations.

Terms of Service URL

Link to your terms of service. Shown during the booking process.