GoHighLevel Appointment Reminder Workflows No-Show-Killer Setup — HL Growth Partner, Dr Priya Jaganathan

GoHighLevel Appointment Reminder Workflows: The No-Show-Killer Setup (2026)

May 23, 2026

GoHighLevel Appointment Reminder Workflows: The No-Show-Killer Setup (2026)

No-shows cost Australian service businesses real money — not just the lost appointment slot, but the ripple effect on scheduling, staff time, and revenue forecasting. If you're running bookings through GoHighLevel, you already have everything you need to cut your no-show rate dramatically. The problem is most GHL users rely on the default calendar confirmation email and nothing else. This guide walks you through building a proper multi-step appointment reminder workflow from scratch, including AU-specific timing, SMS compliance requirements, and how to measure whether it's actually working.

Why a single confirmation email isn't enough

Calendar invites get buried. Emails go to promotions tabs. Life happens between booking and appointment. A well-designed reminder cadence keeps your booking top of mind at the right moments — without annoying your client. The goal is three to four deliberate touchpoints that each serve a specific purpose: confirm the booking, prompt a day-before decision, provide a same-day nudge, and (optionally) make a live call for high-value appointments.

For reference, if you're still working on getting people booked in the first place, the Conversation AI booking setup is worth reading first — this workflow picks up after the appointment is created.

The reminder cadence: timing, channel, and purpose

Before touching a single workflow action, map out exactly what you want to send and when. Here's the cadence this build uses:

Time Before Appointment Channel Message Purpose
Immediately (trigger fires) Email + SMS Booking confirmation with calendar link, reschedule link, and location/join details
24 hours before SMS Friendly reminder with confirm/reschedule options
2 hours before SMS Same-day nudge with direct join/location link
15–30 minutes before (optional) Call (Twilio/LeadConnector) Live or automated call for high-value appointments only

You can adjust these windows based on your appointment type. A 15-minute discovery call warrants a lighter cadence than a 90-minute consulting session or an in-person service appointment.

Step 1 — Set up the workflow trigger

In GHL Workflows, navigate to Automations > Workflows > + New Workflow. Choose a blank workflow. Add your trigger: Appointment. Under the trigger settings, select the relevant calendar (or all calendars if this is a universal workflow) and set the filter to Appointment Status = New/Confirmed.

This means the workflow fires when a contact books and the appointment status is set — not when someone simply lands on a booking page. If your calendar uses manual confirmation (i.e., you approve bookings before they're confirmed), you may want a second trigger path for Appointment Status = Confirmed separately, so the cadence starts when you approve, not when they requested.

Enable Allow re-entry only if you want a contact who books multiple appointments to receive the sequence each time. For most use cases, this should be on.

Step 2 — Instant confirmation (email + SMS)

The first actions in the workflow should fire immediately:

  1. Add a Send Email action. Use a template that includes the appointment date/time (via custom values: {{appointment.start_time}}), location or video link, a reschedule link ({{appointment.reschedule_link}}), and a cancellation link if appropriate.
  2. Add a Send SMS action. Keep it under 160 characters where possible to avoid concatenation. Example: "Hi {{contact.first_name}}, your appointment with [Business Name] is confirmed for {{appointment.start_time}}. Reschedule: {{appointment.reschedule_link}}"

For SMS in Australia, you're operating under ACMA's Spam Act 2003 and the Do Not Call Register Act 2006. Transactional messages (appointment confirmations, reminders) are generally exempt from the Spam Act's consent requirements provided they relate to an existing commercial relationship — but you still need to include an opt-out mechanism for any marketing content mixed in. Keep reminder messages purely transactional and you're in clean territory.

If you're using a Twilio number via GHL, ensure your A2P 10DLC registration (or Australian local number) is in place. Sending high volumes of SMS through an unregistered number will result in filtering. LeadConnector (GHL's native carrier) handles A2P compliance internally for supported regions — confirm with your GHL admin whether AU numbers are provisioned through LeadConnector or a direct Twilio integration.

Step 3 — 24-hour SMS reminder with Wait Until

After the immediate confirmation actions, add a Wait step. Do not use a fixed-time wait here (e.g. "wait 23 hours") — use Wait Until set to a specific time relative to the appointment. Configure it as: Wait until 24 hours before appointment start time.

This is the correct approach because appointments are booked at varying lead times. If someone books six days out, a fixed 23-hour wait would send the "24h reminder" five days before the appointment, which is useless. Wait Until anchors to the actual appointment date regardless of when the booking was made.

After the Wait Until, add an If/Else branch checking Appointment Status. If the status is Cancelled, exit the workflow (or send a re-booking SMS if that's your process). If the status is still Confirmed or New, proceed to the 24h SMS:

"Hi {{contact.first_name}}, just a reminder — you have an appointment with [Business Name] tomorrow at {{appointment.start_time}}. Reply CONFIRM to confirm or use this link to reschedule: {{appointment.reschedule_link}}"

This is also where you can set up a reply-based branch: if the contact replies "CONFIRM", update the appointment status to Confirmed and tag the contact for tracking. This requires a separate inbound message trigger workflow, but the status update is valuable for your reporting.

Step 4 — 2-hour SMS reminder

Add another Wait Until step: 2 hours before appointment start time. Follow it with the same If/Else status check. If still active, fire a short same-day SMS:

"Reminder: your appointment with [Business Name] starts in 2 hours at {{appointment.start_time}}. Join here: [link] or call us on [phone] if you need to reschedule."

Keep the 2-hour message brief. The contact already has all the details — this is purely a behavioural nudge. AU etiquette note: avoid sending SMS before 9am or after 8pm local time. The Wait Until logic in GHL doesn't automatically respect business hours, so if your 2-hour window would push an SMS to 7:30am, consider adjusting to a 3-hour window or adding a time-of-day condition.

Step 5 — Optional pre-appointment call

For high-value appointments (e.g. strategy sessions, premium service consultations), add a Call action 15–30 minutes before. In GHL, this triggers an outbound call from your connected number. You can connect to a live team member or use a recorded message. This step has the highest friction — only use it where the appointment value justifies the interruption.

Add this as a separate branch using an If/Else on a contact tag or opportunity value, so you're not calling every booking — only the ones where a no-show genuinely hurts.

Step 6 — Post-appointment status handling

After the appointment time passes, GHL can update the appointment status to Showed, No Show, or keep it at Confirmed depending on your settings and whether you manually update it. Add a final Wait Until of 30–60 minutes after appointment start time, then branch on appointment status:

  • Showed: Tag the contact, trigger a post-appointment follow-up sequence, update pipeline stage.
  • No Show: Tag the contact as a no-show, send a re-booking SMS, notify your team via internal notification, and optionally move them to a re-engagement sequence.
  • Cancelled: If not already handled upstream, trigger a re-booking offer.

Updating appointment status to Showed/No Show is currently a manual step in most GHL calendar setups (you do it from the Calendar view or the contact's appointment record). Automating it requires your team to be disciplined about marking appointments after they occur — or integrating a check-in tool. For a deeper dive into keeping automations from failing silently when status updates don't happen, read the guide on GHL workflow error handling.

Measuring your no-show rate in GHL

Without measurement, you're guessing. To track no-show rate, use a combination of:

  • Contact tags: Tag every no-show and every showed contact consistently. Report on tag counts per month in the Contacts view.
  • Custom fields: Add a custom field "Last Appointment Outcome" (dropdown: Showed / No Show / Cancelled / Rescheduled) and update it via workflow or manually. This enables filtering and reporting.
  • Reporting dashboard: Use GHL's built-in Reporting or a connected dashboard tool to track appointment volume vs. showed rate over time. If you're running paid ads to fill your calendar, connect this back to your speed-to-lead workflow to see whether faster follow-up correlates with higher show rates.

Common mistakes to avoid

  • Using fixed Wait steps instead of Wait Until — this breaks the cadence for bookings made close to or far from the appointment time.
  • Skipping the If/Else appointment status check before each reminder — you'll send reminders to people who have already cancelled.
  • Mixing marketing content into transactional reminder SMS — keep them operationally clean to stay compliant with the Spam Act.
  • Sending SMS at unsociable hours — the 2-hour reminder can easily land at 6am or 9pm if you're not building time-of-day conditions into your workflow.
  • Not setting Allow Re-entry — contacts who rebook won't receive a new reminder sequence unless this is enabled.
  • Using the same workflow for all calendar types — a 15-minute call and a full-day workshop have very different cadence needs. Segment your workflows by calendar.
  • Forgetting to test with a real appointment — always book a test appointment through your actual calendar before going live, and watch each action fire in the workflow execution log.

If you want a no-show-proof reminder system built and tested in your calendars, book a strategy call with the HL Growth Partner team.

Book Your Strategy Call →

Frequently asked questions

Can I use this workflow for both online and in-person appointments?

Yes. The trigger and cadence structure works for any GHL calendar type. The main adjustment is in the confirmation and reminder message content — for in-person appointments, include the physical address and parking details; for online sessions, include the video link. Use custom values tied to the calendar or location field to dynamically insert the right details without building separate workflows.

What's the difference between Wait and Wait Until in GHL workflows?

A standard Wait step pauses the workflow for a fixed duration from the moment the contact enters that step — for example, "wait 23 hours." A Wait Until step pauses the workflow until a specific date/time condition is met, such as "24 hours before the appointment start time." For appointment reminders, Wait Until is almost always the correct choice because it anchors to the actual appointment date rather than the trigger time.

Do I need separate Twilio numbers for SMS in Australia?

If you're sending SMS to Australian mobile numbers through GHL, you need an Australian local number or an Australian-registered long code. Sending from a US number to AU recipients is unreliable and increasingly filtered. Within GHL, you can provision AU numbers through LeadConnector (where supported) or directly through a connected Twilio sub-account. Check with your GHL admin on the current AU number provisioning status for your account before building reminder workflows that rely on SMS delivery.

How do I handle contacts who reschedule after receiving a reminder?

When a contact reschedules via the GHL reschedule link, a new appointment is created and the original appointment status is updated to Cancelled. If your workflow has a status check before each reminder step (as described in this guide), the old appointment's reminder sequence will stop at the next branch. The new appointment will trigger a fresh workflow entry, provided Allow Re-entry is enabled. Make sure your reschedule link in reminder messages points to the GHL-generated reschedule URL ({{appointment.reschedule_link}}) so the status update happens automatically.

Is it worth adding the pre-appointment call step for all appointment types?

Generally, no. An outbound call 15–30 minutes before an appointment is intrusive for routine or low-value bookings, and will likely irritate clients more than it reassures them. Reserve this step for high-ticket consultations, complex service appointments, or situations where your data shows a significant no-show rate despite SMS reminders. Use an If/Else branch gated on a contact tag, pipeline stage, or opportunity value to limit the call action to those segments — not every contact in the workflow.

Dr PriyaJaganathan

Dr PriyaJaganathan

Dr Priya Jaganathan is a Go High Level Certified Admin, trusted CRM consultant based in Australia, and a keynote speaker at SaaSpreneur Sydney and Level Up 2025 in Dallas.

Back to Blog