How the Service Booking Workflow Trigger Works in Sparkforge

By Sparkforge Support Team ·Last reviewed May 3, 2026

The Service Booking trigger (Services v2) fires once per booking, even when a customer schedules multiple services in a single checkout. That avoids duplicate emails and gives you all service details — name, duration, price, staff, add-ons — in one workflow run.

The Service Booking trigger handles automation at the booking level instead of the appointment level. If a customer books a haircut, facial, and massage in one checkout, the workflow runs once with all three services attached — not three times. This article covers when it fires, how it differs from appointment status triggers, and how to use custom values to display every booked service in a single message.

What the trigger does

The Service Booking trigger automates workflows whenever a Service Booking is created or updated. A Service Booking can contain multiple appointments — the trigger acts on the parent booking, so you get one workflow run with all the data.

Why this matters

  • No duplicate messages. One run per booking, even with multiple services.
  • Personalized comms. Pull service name, date, time, duration, staff, add-ons, and timezone into one email or SMS.
  • Targeted filtering. Filter by status, service, category, location, tag, or who created or modified the booking.
  • Multi-service summaries. One confirmation can list every service and add-on the customer purchased.

When the trigger fires

It activates when a new Service Booking is created via:

  • Booking page — the customer self-books online.
  • User — staff creates the booking manually.

Service Booking vs Appointment Status

These two triggers look similar but operate at different levels:

  • Appointment Status trigger — works on individual calendar appointments.
  • Service Booking trigger — works only on Services (v2) bookings.

If a customer schedules five services in one Service Booking, the Service Booking trigger fires once. The Appointment Status trigger would fire on each appointment individually.

Available filters

  • Appointment Status — Unconfirmed, Confirmed, Showed, No Show, Cancelled, Invalid.
  • Created By or Modified By
  • Has Tag
  • In Service (specific service)
  • In Service Category
  • In Service Location

Trigger visibility

The trigger is only visible when Services (v2) is enabled in the sub-account. If Services (v2) is disabled:

  • New workflows can't add the Service Booking trigger.
  • Existing workflows with the trigger won't fire on new bookings, but existing bookings still trigger when their status changes.

Order Submission and service bookings

Every Service Booking generates an Order in the background. To prevent duplicate automation, the Order Submitted trigger does not fire for those orders by default.

If you do want Order workflows to run for service-booking orders, add the filter Order Source = Calendar on the Order Submitted trigger.

Supported appointment actions

ActionStatusNotes
Update Appointment StatusSupportedBased on Service Booking ID
Create Appointment NoteSupportedNotes apply to the whole Service Booking
Book AppointmentNot supported—
Conversation AI Booking BotNot supported—
Eliza BookingNot supported—

Use custom values to list every booked service

For each service in the booking you can pull: service name, price, duration, date and time, timezone, assigned staff, and any add-ons. Wrap the fields in an {{#each serviceBooking.services}} block to repeat once per service.

{{#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}}

If the customer books three services, the block renders three times. Add-ons appear under their parent service. To show a staff member's full name, drop {{this.user.name}} inside the loop.

Frequently Asked Questions

Does this trigger fire once per booking or once per appointment?
Once per Service Booking, even if the customer schedules multiple services in one checkout. That keeps confirmations and reminders clean.
Why don't my Order Submitted workflows fire for service bookings?
By default, the Order Submitted trigger ignores orders generated by service bookings to prevent duplicate automation. Add the filter Order Source = Calendar to opt in.
What's the difference between Service Booking and Appointment Status triggers?
Service Booking works at the parent booking level for Services (v2) only. Appointment Status works at the individual calendar appointment level. They don't overlap.
Can I list every booked service in a single email?
Yes. Use {{#each serviceBooking.services}} ... {{/each}} in your email or SMS template. The block repeats once per service and can include add-ons, staff, and timing.
What happens if I disable Services (v2) on a sub-account?
New bookings won't fire the Service Booking trigger, and you can't add it to new workflows. Existing bookings still trigger workflows when their status changes.

Was this article helpful?