GHL Experts

How to Create and Automate Appointment Reminder Campaigns in GoHighLevel

Learn three methods to create automated appointment reminder campaigns in GoHighLevel using workflows. Covers email and SMS reminders, confirmation sequences, and third-party integrations.

September 20, 2020
10 min read

Why Appointment Reminders Are Critical

No-shows are one of the most expensive problems in any service-based business. Every missed appointment costs you time, revenue, and pipeline momentum. Industry data consistently shows that automated appointment reminders reduce no-show rates by 30-50%.

GoHighLevel gives you the tools to build a complete appointment reminder system directly inside the platform. You can send confirmation emails immediately after booking, follow up with reminder emails at 48 hours and 24 hours before the appointment, and fire off a final SMS reminder 2 hours before the meeting.

This article covers three methods for setting up appointment reminders in GoHighLevel: the modern workflow approach (recommended), the legacy campaign approach, and the manual/third-party method for external booking tools.

Understanding Campaigns vs Workflows in GHL

GoHighLevel originally used a feature called Campaigns to handle drip sequences and event-based messaging. Campaigns allowed you to schedule emails and SMS messages relative to a specific event date, like an appointment start time.

GoHighLevel has since replaced Campaigns with Workflows as the primary automation engine. Workflows offer significantly more flexibility: visual builders, conditional branching, multiple trigger types, and deeper integration with every part of the platform.

However, Campaigns still exist in GoHighLevel and serve a specific purpose. They are particularly useful for appointment reminders because they support scheduling messages relative to an event date (like "send 24 hours before the appointment"). Workflows handle this differently using wait steps and date-based conditions.

Both methods work. This article covers the workflow approach as the primary method and includes the campaign approach for those who prefer it or are working with existing campaign setups.

Method 1: Automated Workflows (Recommended)

This is the modern, recommended approach for appointment reminders in GoHighLevel.

Step 1: Create the Workflow

1. Navigate to Automation > Workflows in your GHL sub-account.

2. Click Create Workflow and select Start from Scratch.

3. Name your workflow something clear, like "Appointment Reminder Sequence."

Step 2: Set the Trigger

1. Click Add New Trigger.

2. Select Appointment Status as the trigger type.

3. Configure the filter:

Calendar: Select the specific calendar (or leave as "All Calendars").

Status: Select Confirmed.

This trigger fires every time an appointment is booked and confirmed on your calendar.

Step 3: Build the Confirmation Message

Immediately after the trigger, add your first action:

1. Click the + button below the trigger.

2. Select Send Email (or Send SMS if you prefer).

3. Configure the email:

Subject: Your appointment is confirmed, {{contact.first_name}}

Body: Include the appointment details using custom values.

Here is an example confirmation email body:

1Hi {{contact.first_name}},
2
3Your appointment has been confirmed.
4
5Date and Time: {{appointment.start_time}}
6
7If you need to reschedule, please reply to this email or call us directly.
8
9We look forward to speaking with you.

The `{{contact.firstname}}` and `{{appointment.starttime}}` custom values will be replaced with the actual contact name and appointment time when the message sends.

Step 4: Add Reminder Messages with Wait Steps

After the confirmation email, add reminder messages using Wait steps to time them relative to the appointment.

48-Hour Reminder:

1. Add a Wait step.

2. Set the wait type to Event Start Time.

3. Set it to wait until 48 hours before the event.

4. Add a Send Email action after the wait.

5. Configure the email with a subject like Reminder: Your appointment is in 2 days and include the appointment details.

24-Hour Reminder:

1. Add another Wait step set to 24 hours before the event start time.

2. Add a Send Email action.

3. Use a subject like Tomorrow: Your appointment with [Your Company].

2-Hour Reminder (SMS):

1. Add a final Wait step set to 2 hours before the event start time.

2. Add a Send SMS action instead of email. SMS is more effective for last-minute reminders because open rates are significantly higher than email at short notice.

3. Keep the SMS concise:

1Hi {{contact.first_name}}, just a reminder about your appointment today at {{appointment.start_time}}. Reply YES to confirm or call us to reschedule.

Step 5: Publish the Workflow

Toggle the workflow to Published in the top right corner. From this point forward, every confirmed appointment will automatically trigger the reminder sequence.

Handling Cancellations and Reschedules

One advantage of the workflow approach is that you can add conditional logic. For example:

• Add an If/Else condition before each reminder that checks if the appointment status is still "confirmed." If the appointment has been cancelled or rescheduled, the workflow can skip the remaining reminders.

• Create a separate branch that triggers on "Cancelled" status to send a cancellation confirmation and, optionally, a rebooking link.

Method 2: Campaign-Based Reminders (Legacy Approach)

The campaign method is the original way GoHighLevel handled appointment reminders. It works by scheduling messages relative to an event date that is set when the contact is added to the campaign.

Step 1: Create the Campaign

1. Navigate to Marketing > Campaigns.

2. Click Create Campaign.

3. Name it "Appointment Reminders."

Step 2: Build the Reminder Sequence

Add the following events to the campaign. The key difference from workflows is that campaign events are scheduled relative to the event start date, and you set them to send before that date.

Event 1: Confirmation Email (Send Immediately)

• Type: Email

• Timing: Send immediately (0 minutes after enrollment)

• Subject: Your appointment is confirmed, {{contact.name}}

• Body: Include appointment details with {{appointment.start_time}}

Event 2: 48-Hour Reminder Email

• Type: Email

• Timing: 48 hours before the event start date

• Subject: Reminder: Your appointment is in 2 days

• Body: Appointment details and any preparation instructions

Event 3: 24-Hour Reminder Email

• Type: Email

• Timing: 24 hours before the event start date

• Subject: Tomorrow: Your appointment with [Your Company]

• Body: Final details, location/link, and what to expect

Event 4: 2-Hour Reminder SMS

• Type: SMS

• Timing: 2 hours before the event start date

• Body: Short reminder with appointment time and confirmation request

Important Campaign Settings

Disable "Stop on Response": By default, campaigns may stop sending when the contact replies. For appointment reminders, you want all messages to send regardless of whether the contact responds to earlier messages. Make sure the "Stop on Response" toggle is turned off for this campaign.

Event Timing Direction: When setting up each event's timing, make sure you are scheduling the message to send before the event date, not after. This is the most common mistake when building appointment reminder campaigns. The event start date represents the appointment time, and your reminders need to arrive before that time.

Step 3: Connect the Campaign to Appointments

This is where you connect the campaign to your actual appointments. There are three approaches:

Option A: Automated with GHL Calendar Trigger

1. Navigate to Automation > Workflows (you still need a simple workflow for the trigger).

2. Create a new workflow with an Appointment Status trigger.

3. Filter by calendar and status (Confirmed).

4. Add an action: Add to Campaign.

5. Select your "Appointment Reminders" campaign.

6. The event start date will automatically be set to the appointment date.

This is the best option for appointments booked through GHL's built-in calendar.

Option B: Manually Through Conversations

For appointments that are booked outside of GHL or need to be added manually:

1. Open the contact record in Conversations or Contacts.

2. Click Add to Campaign (or find it in the contact's campaign section).

3. Select the "Appointment Reminders" campaign.

4. Set the Event Start Date to the appointment date and time.

This method works for one-off situations but does not scale. Use it for exceptions, not as your primary flow.

Option C: Automated with Zapier or Make

If appointments are booked through a third-party system (Calendly, Acuity, a custom form, or any other external tool), you can use Zapier or Make to add the contact to the GHL campaign automatically.

Zapier Setup:

1. Trigger: New appointment in your third-party booking tool (e.g., Calendly New Event).

2. Action: GoHighLevel - Add Contact to Campaign.

3. Configuration: Map the contact email, name, and appointment date from the trigger to the GHL action fields. Set the campaign to your "Appointment Reminders" campaign and map the event start date to the appointment time.

Make (formerly Integromat) Setup:

The same logic applies. Create a scenario with the booking tool as the trigger module and GoHighLevel as the action module. Map the appointment date to the campaign event start date.

This method is essential if your booking system lives outside of GoHighLevel. The Zapier/Make integration bridges the gap and ensures every appointment gets the same reminder sequence.

Custom Values Reference

GoHighLevel provides several custom values that are useful in appointment reminder messages:

| Custom Value | What It Inserts |

|-------------|----------------|

| {{contact.first_name}} | Contact's first name |

| {{contact.name}} | Contact's full name |

| {{contact.email}} | Contact's email address |

| {{contact.phone}} | Contact's phone number |

| {{appointment.start_time}} | Appointment date and time |

| {{appointment.end_time}} | Appointment end time |

| {{appointment.title}} | Appointment/calendar name |

Use these in your email and SMS templates to personalize the messages. Personalized reminders have higher engagement rates than generic ones.

Best Practices for Appointment Reminders

Timing Your Reminders

The four-message sequence described above (confirmation, 48 hours, 24 hours, 2 hours) is a proven structure. Here is why each touchpoint matters:

Immediate confirmation sets expectations and gives the contact a reference they can check later.

48-hour reminder catches people early enough to reschedule if there is a conflict.

24-hour reminder is the standard "tomorrow" nudge. This is when most people mentally commit or decide to cancel.

2-hour SMS reminder is the final nudge. SMS works better than email at this stage because people check texts in real time.

SMS vs Email

Use email for your earlier reminders (confirmation, 48 hours, 24 hours) and SMS for the final 2-hour reminder. Email allows for more detail -- you can include preparation instructions, links, addresses, and other context. SMS is more immediate and personal, making it ideal for the last-minute reminder.

If your audience is particularly SMS-responsive, you can add an SMS at the 24-hour mark as well. Just be careful not to over-message. Three to four total touchpoints is the sweet spot for most businesses.

Include a Way to Reschedule

Every reminder should include a clear path to reschedule or cancel. This seems counterintuitive, but making it easy to reschedule actually reduces no-shows. People who cannot make the appointment are more likely to reschedule than simply not show up, and a rescheduled appointment is far more valuable than a no-show.

Include a rebooking link, a reply instruction, or a phone number in each message.

Keep SMS Messages Short

SMS messages should be under 160 characters if possible to avoid splitting into multiple messages, which can look unprofessional and increase costs. The 2-hour reminder does not need much detail -- the contact already received the full information in earlier emails.

Test Your Sequence

Before going live, test the entire sequence with a test contact. Book a test appointment, verify that the confirmation sends immediately, and check that the reminder timing is correct. Pay attention to time zone handling, especially if you serve clients in multiple time zones.

Troubleshooting Common Issues

Reminders not sending: Check that the workflow is published (green toggle). For campaigns, verify the contact was actually added to the campaign and that the event start date is set correctly.

Wrong timing on reminders: Double-check the wait step configuration in workflows. For campaigns, confirm that you set the messages to send before the event date, not after. Also verify the time zone settings in your GHL sub-account match your expectations.

Custom values showing as raw text: If {{contact.first_name}} shows up literally instead of the contact's name, the message template may not be processing custom values correctly. Ensure you are using the exact custom value syntax and that the contact record has the corresponding field populated.

Reminders continue after cancellation: In the workflow approach, add conditional checks before each reminder to verify the appointment is still active. In the campaign approach, you need a separate workflow that removes the contact from the campaign when an appointment is cancelled.

SMS not delivering: Verify that your Twilio/LC Phone integration is active and that the contact has a valid phone number. Check your GHL SMS settings and ensure you have sufficient credits or an active Twilio account.

Which Method to Use

For most users setting up appointment reminders in 2026, the workflow approach (Method 1) is the right choice. Workflows are the actively developed automation system in GoHighLevel, they offer more flexibility, and they handle the entire process without needing a separate campaign.

Use the campaign approach (Method 2) if you have existing campaigns that are working well and you do not want to rebuild them, or if you specifically need the event-date-relative scheduling model that campaigns provide.

Use the Zapier/Make approach (Method 2, Option C) if your appointments are booked through an external system that is not natively integrated with GHL.

Regardless of which method you choose, the core principle is the same: send a confirmation immediately, follow up at 48 and 24 hours with email, and close with an SMS at the 2-hour mark. This four-touchpoint sequence consistently reduces no-shows and keeps your calendar productive.

Want to try HighLevel?

If you're exploring marketing automation platforms, HighLevel offers a 30-day free trial.

Start your free trial