The Service Booking trigger lets you automate workflows whenever a Service Booking (which may include multiple services/appointments) is created or updated. Unlike appointment-level triggers (which act on individual calendar appointments), this trigger works at the main booking level. So if a customer books multiple services at once (for example, a haircut, facial, and massage in a single checkout), the workflow is triggered only oncefor the entire booking — not three times. This helps you avoid duplicate actions while still giving you access to all the service details in one place.
When It’s Triggered
The workflow activates whenever a new Service Booking is created through:
- Booking Page – when a customer self-books online
- User – when staff manually create a booking
Key Differences from Appointment Status Trigger
-
Appointment Status Trigger → Works only for calendar appointments.
-
Service Booking Trigger → Works only for Services (v2) bookings.
-
If a booker schedules multiple services (e.g., 5 services) under one Service Booking, the workflow triggers once (not 5 times).
- Example: If your workflow action is “Send Email,” only one email is sent containing all booked services — provided you use Service Booking custom values.
Available Filters
- Appointment Status (Unconfirmed, Confirmed, Showed, No Show, Cancelled, Invalid)
- Created By / Modified By
- Has Tag
- In Service (specific service)
- In Service Category (service grouping)
- In Service Location
Trigger Visibility
This trigger is only visible if Services (v2) is enabled in the account. If Services (v2) is disabled for a account:
-
New workflows → The Service Booking trigger will not be available for selection.
-
Existing workflows (that already include this trigger):
- New bookings will be blocked (the trigger will not fire).
- Existing bookings → If the booking status is updated, the workflow will still trigger as expected.
Order Submission Trigger Behavior with Service Bookings
By default, whenever a Service Booking is created, an Order is automatically generated. To prevent duplicate automations, the Order Submitted trigger will not fire for the orders created via service-bookings.
However, if you want workflows to also trigger for these orders, you must explicitly add a filter:
- Order Source = Calendar
This ensures that Order-basedworkflows only run for service-booking orders when the business explicitly wants them to — by applying the filter Order Source = Calendar to the Order Submitted trigger.
Supported Appointment Actions
| Action | Status | Notes | | --- | --- | --- | | Update Appointment Status | ✅ Supported | Based on Service Booking ID | | Create Appointment Note | ✅ Supported | Based on Service Booking ID. Notes apply to the Service Booking as a whole | | Book Appointment | Not supported | NA | | Conversation AI Booking Bot | Not supported | NA | | Eliza Booking | Not supported | NA |
Using Custom Values with Service Bookings
When someone books a service, you can automatically include their booking details (like service name, date, time, price, staff, and add-ons) in your emails, texts, or reminders.
What details are available?
For each booked service, you can display:
- Service Name – e.g., “Haircut” or “Massage”
- Price – the cost of the service
- Duration – how long the service lasts (e.g., 60 minutes)
- Date & Time – when the appointment is scheduled
- Timezone – the customer’s local timezone
- Assigned Staff – which team member the appointment is with
- Add-ons – any extras the customer selected (with prices)
If multiple services are booked together, each service (and its add-ons) will be listed one after another.
Example: How it looks in your template
{{#each serviceBooking.services}} {{this.name}} - {{this.duration}} | Price: {{this.price}} Date: {{this.startDate}} at {{this.startTime}} ({{this.timezone}}) With: {{this.assignedUser}} {{#if addOns}} Add-ons: {{#each addOns}} - {{this.addonName}} ({{this.addonPrice}}) {{/each}} {{/if}} {{/each}}
What this does:
- The
{{#each serviceBooking.services}} ... {{/each}}block repeats everything inside it for each booked service. - So if a customer books 3 services, this section will repeat 3 times (once for each service).
- Add-ons (if selected) will be listed under the respective service.
How to customize it
If you want to show additional information (like a staff member’s full name), simply place your cursor inside the block and add the extra placeholder.
Example with staff name included:
{{#each serviceBooking.services}} {{this.name}} - {{this.duration}} | Price: {{this.price}} Staff User: {{this.user.name}} Date: {{this.startDate}} at {{this.startTime}} ({{this.timezone}}) With: {{this.assignedUser}} {{/each}}
This way, you can fully personalize confirmation emails or reminders with the exact service details your customer booked.