GoHighLevel Post Appointment Workflows Explained
A GoHighLevel post appointment workflow doesn't wait for the calendar event to end. It starts the moment an appointment's status changes.
HighLevel's own documentation names six statuses that can fire it: New, Confirmed, Cancelled, Showed, No-show and Invalid. Whatever runs next depends on which of those six the appointment reaches.
Most setups only build the front half of this: a confirmation and a day-before reminder. The back half matters more, because that's where a no-show gets a second chance and a client who showed up gets asked for a review.
What a GoHighLevel Post Appointment Workflow Actually Watches For
The Appointment Status trigger lives in the Workflow Builder under the Automation tab. Add it, name it, and choose who gets enrolled: contact only, contact and guests, or guests only.
From there you layer on filters: event type, the status itself, contact tags, specific calendars or calendar groups, and who made the change, whether that's the API, a customer, a staff member or another workflow.
| Status | What fires it | What it's good for |
|---|---|---|
| New | A new appointment is scheduled | Starting a confirmation sequence |
| Confirmed | The appointment is confirmed | Reminder sequences |
| Showed | The client attends | Review requests, pipeline moves |
| No-show | The client doesn't attend | Re-engagement, rebooking |
| Cancelled | The appointment is canceled | Staff notifications |
| Invalid | The appointment is marked invalid | Exit the workflow, no action |
Showed and No-show matter most for anything post-appointment. They're the only pair that tells you whether the conversation actually happened.
Branching the Workflow With the Appointment If/Else Filter
HighLevel's If/Else appointment filter adds three more options: Rescheduled, a true or false check, plus Start Date and End Date. Only one of the three can sit inside a single If/Else condition, though a workflow can chain several to cover more ground.
HighLevel's documentation on how appointments behave mid-workflow spells out what happens next. Mark the appointment Cancelled, Invalid or No Show and the contact exits immediately, with no further steps run.
Reschedule it, and the contact is removed too, re-entering only if re-entry is switched on and the new time still matches the trigger's conditions. Recurring appointments don't trigger entry through the Customer Booked Appointment trigger at all.
Getting those filters and enrollment settings right the first time is calendar configuration work. It belongs in a proper GHL setup and configuration build, not something fixed after a workflow has already misfired on live clients.
Turning a Showed Appointment Into a Review Request
The Review Request workflow action is what most post-appointment sequences are built to reach. It only needs two fields: an action name and a review type picked from a dropdown that includes email.
The wording itself lives in Reputation Settings: a thank-you note, a feedback prompt and a link to the connected review platform. HighLevel's own example for this action names Appointment Completed as the trigger that should sit in front of it.
Showed is the status to build that branch on, not Confirmed and not Cancelled. A client who no-shows shouldn't get a review request. They belong in a rebooking sequence instead, the same split behind a dental practice's recall and no-show reduction setup.
A missed appointment and a completed one are different outcomes. Lumping them into one sequence is how a review request ends up going to someone who never showed.
None of this holds together as a one-off build. Statuses change, calendars get added, and a workflow that worked for one calendar group quietly stops firing for another. That's ongoing workflow automation work, not something you set up once and leave alone.
Set the Showed branch to send the review request and the No-show branch to send a rebooking message. The calendar starts doing the follow-up that used to need someone checking it the next morning.
Cover photo by Towfiqu barbhuiya on Pexels
Need help implementing this in GoHighLevel?
Our team builds, automates, and scales GoHighLevel systems for agencies every day. Book a free call and we'll map out exactly what to ship next.
Book a free call


