
Confirm Every Booking Before You Even See It
How to Automatically Send Appointment Confirmations Using the Customer Booked Appointment Trigger in GoHighLevel
A booking is a small promise. Somebody looked at your calendar, picked a time, put it into their own week, and now expects the business to be ready. The stretch between that click and the first word they hear back from you is where doubt creeps in, and doubt is what turns a booked slot into an empty chair.
GoHighLevel closes that stretch with the Customer Booked Appointment trigger. It fires the moment somebody books through a booking link or an online scheduling page, with nobody on your team touching anything, and it hands the workflow the appointment details it needs to send back a confirmation that names the right time, the right calendar and the right person.
This guide covers what the trigger actually does, how to add it to a workflow, who gets enrolled when guests are on the booking, which filters keep it pointed at the right calendars, and how to build the confirmation and reminder sequence that hangs off it.
What the Customer Booked Appointment Trigger Does
HighLevel puts it plainly. The trigger activates whenever a customer books an appointment using a booking link or online scheduling system without intervention from your team. That last clause matters more than it looks. This is a customer led trigger. If a staff member books the slot manually on somebody's behalf, this trigger stays quiet.
You will find it in the trigger picker under the Appointments group, sitting directly below Appointment Status. The two are easy to confuse and they do different jobs. Appointment Status reacts to what happens to a booking after it exists, so confirmed, cancelled, showed, no show. Customer Booked Appointment reacts to the booking being created in the first place, which is exactly the moment a confirmation should go out.

One limit is worth reading before you build anything. The trigger works fornormal one time appointments only. Recurring appointments are not supported, so a weekly class booked as a repeating series will not run through this workflow.
Why an Automatic Confirmation Is Worth Building
Fewer empty slots.A confirmation that lands within seconds, followed by a reminder before the appointment itself, is the cheapest no show reduction available to a small business. HighLevel lists reduced no show rates as the headline benefit of automating around this trigger, and it is usually the one an owner feels first.
A better first impression.For a lot of customers the booking page is the first real interaction they have with the business. A message that repeats the time back, says where to go or which link to join, and explains what to bring, makes the whole operation feel organised before anybody has spoken.
Your team finds out too.The same workflow can notify the assigned user, the front desk, or a senior advisor when a particular kind of client books. A booking never sits unseen in a calendar nobody thought to check.
Guests get looked after.Multi participant appointments used to be awkward to automate. The trigger now supports guest contacts, so every attendee attached to the booking can get the same confirmation and the same prep notes.
How to Add the Trigger to a Workflow
Open Automation in the sub account, then either create a workflow from scratch or open the one you want to extend. Click Add New Trigger, type Customer Booked Appointment into the search box, and select it from the Appointments group.
Then name it. The field arrives filled with the trigger's own name, which tells you nothing once a sub account has thirty workflows in it. Something like New Appointment Booking Trigger, or a name that includes the calendar, will save you real time later.

The panel that opens holds everything else, the enrollment setting, the filters and the save button. None of it is live until you save the trigger and then save the whole workflow with the blue button in the top right corner.
Decide Who Gets Enrolled
Under Who should be enrolled into the workflow? there are three options, and the one you choose decides how many messages go out for a single booking.
Contact only runs the workflow for the primary contact on the appointment. It is the default, and it is what every workflow you already built is set to.
Contact and guests runs the workflow once for the primary contact and once for each guest contact attached to the booking. This is the option for consultations, strategy sessions and anything else where several people need the same confirmation and the same prep checklist.
Guests only skips the primary contact completely. Use it when the main contact is already covered by another workflow and you only want to reach the extra attendees.

There is a catch printed on the panel itself, and it is easy to miss. Guests added after the appointment is booked will not be enrolled by this trigger. The trigger event happens once, at the moment of booking, and only the guests attached at that moment are picked up. Adding somebody the next morning sends them nothing.
Changing this setting does not disturb anything you already have running. HighLevel confirms that existing trigger configurations stay on Contact only until you update them by hand, so nothing starts double messaging on its own.
Narrow the Trigger With Filters
Left alone, the trigger fires for every customer booking anywhere in the sub account. Filters are what keep it pointed at the bookings you actually meant.
In calendar limits the workflow to one specific calendar. This is how a discovery call gets a different confirmation from a paid consultation. In Calendar Groupdoes the same thing one level up, which is useful when a team shares a round robin. Has Tag only lets the workflow run when the person booking carries a particular tag, and it is the standard way to route a VIP client into a different message and a different internal alert.

Filters are also how you avoid the trap of one enormous appointment workflow trying to serve every service the business offers. Several small workflows, each filtered to a single calendar, are easier to read, easier to hand over and far easier to fix when one message goes wrong.
Write the Confirmation Message
A confirmation is only useful if it repeats the details back to the customer. That is what appointment merge fields are for. Inside the email or SMS action, open the merge field selector and you will see an Appointment group sitting alongside Contact, User, Calendar, Account and your own Custom Values.
Values such as the appointment start time and timezone pull the real booking details straight into the message. HighLevel is explicit that these appointment values only populate when the workflow was started by an appointment trigger, so a confirmation built on the wrong trigger goes out with blank space where the time should be.

Keep the message short and factual. The time in the customer's own timezone, what the appointment is for, where it happens or which link to join, and a way to reschedule. Everything else can wait for the reminder.
Add the Reminders That Follow the Confirmation
The confirmation is the first step, not the whole workflow. The pattern most businesses settle on is a confirmation straight away, then a wait step tied to the appointment time, then a reminder on both email and SMS.

Wait steps in HighLevel can be set relative to the appointment time rather than to the moment somebody entered the workflow, and that is what makes this work at all. Twenty four hours before the appointment means twenty four hours before that person's own slot, whether they booked it this morning or three weeks ago.
You can stack more than one. A forty eight hour reminder followed by a twenty four hour reminder is common for higher value bookings, and each extra one is only another wait step and message pair on the same canvas.
What This Trigger Will Not Do
Manual bookings.If somebody on your team books the appointment for the customer, this trigger does not fire. That is deliberate. If you need to cover staff booked appointments as well, the Appointment Status trigger reacts to the booking no matter who created it.
Recurring appointments.Not supported. Only normal one time appointments run through it.
Reschedules and cancellations.Those are status changes rather than new bookings, so Appointment Status is the trigger that handles them. Most businesses end up running both, one workflow for the welcome and one for the changes.
Common Mistakes to Avoid
The first is building a confirmation on a trigger that carries no appointment context. If the workflow starts from a tag or a pipeline stage, HighLevel has no way of knowing which appointment you mean, and the merge fields come back empty.
The second is saving once instead of twice. Saving the trigger panel is not the same as saving the workflow, and the blue button in the top right is the one that actually commits the change.
The third is leaving the workflow in Draft. A perfectly built workflow that was never published will sit there quietly doing nothing while bookings keep arriving.
The fourth is testing from the back office. Book through the real public booking link, because a customer booking through that link is the only path this trigger listens to.
Best Practices
Send the confirmation immediately, and keep the tone plain even when it is an email. It should read like a person confirming a time, not like a newsletter with a header image.
Use one workflow per calendar wherever the messages genuinely differ, and prefer filters over branches. Branch heavy workflows are hard to explain to whoever inherits them.
Set the enrollment option on purpose rather than leaving it on the default. If your appointments regularly include guests, Contact and guests is probably what you want, and checking takes a few seconds.
Always run a real test booking before you publish. Book yourself into the calendar through the public link, check that the message arrives with a real date and time inside it, then cancel the test appointment and go live.
Frequently Asked Questions
Does this trigger fire when my team books the appointment?
No. It only runs when a customer books independently through a booking link or scheduling page. For appointments created by staff, use the Appointment Status trigger instead, which reacts to the booking regardless of who made it.
Can I use it for recurring appointments?
No. HighLevel supports this trigger for normal one time appointments only. A recurring series will not enrol contacts through it, so recurring bookings need a different approach.
How do I get the real appointment time into the message?
Use appointment merge fields from the merge field selector inside the email or SMS action. They only populate when the workflow started from an appointment trigger, which is one more reason to build the confirmation on this trigger rather than on a tag.
Will appointment guests receive the confirmation?
Only if you set the enrollment option to Contact and guests, or to Guests only. Even then, the trigger picks up the guests attached at the moment of booking. Anybody added to the appointment afterwards is not enrolled by that trigger event.
Need Expert Help with GoHighLevel?
New to GoHighLevel and ready to get started? Buy your GoHighLevel account here and launch with confidence.
Already know what you need and want our team to handle everything, from complete setup and customization to funnels, workflows, automations, CRM, and pipelines? Click here.



