Worked Examples

GoHighLevel WhatsApp Workflow Examples

Not principles — finished builds. Five real WhatsApp workflows built inside GoHighLevel, each with the exact trigger, wait, branch, and message-send steps laid out, and the reasoning for why WhatsApp is the right channel for each one and not just a convenient one.

The One Rule That Shapes Every Example Below

WhatsApp isn't SMS with a green icon — it runs on Meta's official WhatsApp Business Platform, and that platform enforces a 24-hour customer service window. The moment a contact messages or calls you, that window opens (or resets if it was already open), and while it's open you can send free-form "session" messages — no approval needed. The instant it closes, or if you're the one initiating contact and the window was never open in the first place, the platform only allows pre-approved template messages.

That rule is why the workflows below aren't just "trigger → send WhatsApp" — several of them include an If/Else step whose only job is checking whether the window is currently open before deciding whether the next WhatsApp action can be free text or has to be a template. Get that check wrong and a workflow that tested fine on day one starts silently failing to send once the window closes on a real contact.

If your WhatsApp Business Account isn't connected to GoHighLevel yet, or you haven't submitted your first templates, that setup is covered separately in how to send GoHighLevel leads to WhatsApp. Everything below assumes that part is already done.

5 Worked Examples

Five WhatsApp Workflows, Built Step by Step

Each one covers a distinct scenario — the trigger that starts it, the actual sequence of steps inside GoHighLevel, and why WhatsApp specifically earns its place in that flow.

Example 1

Instant Auto-Reply, Then Qualify Party Size

Someone messages a Dubai restaurant's WhatsApp number directly — they tapped a "Message us on WhatsApp" ad for tonight's dinner, scanned the QR code on a table tent to ask about delivery, or clicked through from the site. This is the one example on this page where the contact messages first, which changes what the workflow is allowed to send from the very first step.

WhatsApp Message InTrigger
Free-Form ReplyAction
Wait for ReplyWait
Table or Delivery?Branch
Free-Form Follow-UpAction
No Reply, Re-RouteOutcome
  1. 01 Trigger

    Customer Replied, Reply Channel = WhatsApp. Fires the instant a new inbound WhatsApp message lands — whether the sender already exists as a contact or not.

  2. 02 WhatsApp Action — Session Message

    No template required here. Because the contact just messaged you, a 24-hour customer service window is already open, so the reply can be free-form: "Thanks for messaging us — quick one so I get this right: is this a table booking or a delivery order?"

  3. 03 Wait — Contact Reply

    Holds the contact until they answer, with a timeout (30–60 minutes is typical) so the sequence doesn't stall forever on someone who's gone quiet.

  4. 04 If/Else

    Branches on what came back — a keyword match on their reply ("table" vs "delivery"), or simply whether Contact Replied is true or false before the timeout.

  5. 05 WhatsApp Action — Session Message (per branch)

    Each branch gets its own qualifying question — party size and preferred time for a table booking, delivery address and order items for a delivery order. Still free-form; the window from their first message is still open.

  6. 06 If/Else (timeout branch)

    No reply before the timeout: tag the contact (e.g. "WhatsApp — No Response") and route into a longer-term follow-up sequence — see Example 3 for the abandoned-inquiry pattern — instead of leaving them stranded mid-conversation.

Why WhatsApp Here

The contact already chose WhatsApp, and choosing it a second time by replying opens the 24-hour window — so the entire qualifying conversation can run as fast, free-form back-and-forth with zero template friction or approval delay. Moving this exchange to email would trade away the one advantage WhatsApp gives you here: an open door that closes the moment you stop using it.

Example 2

Beauty Salon Booking Confirmation + Status Updates

A client books a treatment — a colour appointment, facial, or blow-dry — with a Dubai beauty salon through the website or an online booking calendar. Unlike Example 1, they have not necessarily ever messaged the salon's WhatsApp number — this contact is business-initiated, which means the very first WhatsApp touch has to be a pre-approved template, not free text.

Booking CreatedTrigger
Template ConfirmationAction
Wait Until DueWait
Window Open?Branch
Free-Form UpdateAction
Template UpdateAction
  1. 01 Trigger

    Appointment Booked, scoped to the relevant service calendar (colour, facial, blow-dry, and so on).

  2. 02 WhatsApp Action — Template (Utility)

    Sends immediately using an approved "Booking Confirmation" template merging in the treatment, stylist or therapist, date/time, and location. This has to be a template send — the client hasn't messaged this WhatsApp number yet, so free-form text isn't an option regardless of how the workflow is built.

  3. 03 Wait — Wait Until

    Holds until a moment relative to the appointment itself (e.g. the morning of, or a few hours before the appointment) rather than a flat delay from when the booking happened.

  4. 04 If/Else — Contact Replied?

    Checks whether the client ever replied to the confirmation, which is really a proxy for whether the 24-hour window is currently open.

  5. 05 WhatsApp Action — Session Message (if replied)

    Window's open: the status update can be a plain free-form message — e.g. "Running about 10 minutes behind today, so sorry — see you shortly!"

  6. 06 WhatsApp Action — Template (if not)

    Window's closed: by the time a status update is due, more than 24 hours has usually passed since the confirmation, so this touch needs its own approved template (e.g. "Appointment Reminder", Utility category).

Why WhatsApp Here

Appointment reminders and status updates are time-sensitive, and WhatsApp gets read within minutes far more reliably than email or a missed SMS — and a single no-show at a fully booked chair is revenue a salon can't recover that day. It only works cleanly here because the template approval happened before launch — this is the example that most directly depends on the WABA setup covered in the setup guide linked below, not on workflow logic alone.

Example 3

Abandoned Trip-Inquiry Follow-Up

Someone messages a Dubai travel agency's WhatsApp number, asks a real question about a trip — "do you have a 5-night Maldives package under 4,000 AED?" — gets an answer, then goes quiet mid-conversation without booking.

Inquiry Answered TagTrigger
Wait for ReplyWait
No-Reply BranchBranch
Window Open?Branch
Send NudgeAction
Cold or EscalateOutcome
  1. 01 Trigger

    Tag Added (e.g. "Inquiry Answered"), applied the moment an agent sends a substantive reply to their trip question.

  2. 02 Wait — Contact Reply

    Waits for them to respond to the answer they were given, with a timeout of a few hours.

  3. 03 If/Else — Contact Replied = false

    Routes non-responders into the re-engagement branch; anyone who replied exits into the normal conversation flow.

  4. 04 If/Else — window still open?

    A nested check on time since their last inbound message. Under 24 hours: the window from their original message is technically still open.

  5. 05 WhatsApp Action — Session Message or Template

    Inside the window: a free-form nudge ("Still there? Happy to answer anything else about the Maldives package?"). Outside it: a pre-approved re-engagement template, since the window has closed and free text is no longer an option.

  6. 06 Wait, then If/Else (second check)

    A further wait (e.g. 24 hours) followed by one more Contact Replied check — still silent means one final templated nudge, a "Cold" tag, and an exit, or a handoff into a multi-channel fallback — see Example 4 for that pattern.

Why WhatsApp Here

This person already chose to ask about a trip over WhatsApp, so the follow-up belongs in that same thread rather than restarting the relationship on a new channel. WhatsApp's read rates make a quiet re-engagement message feel like a natural continuation of a conversation instead of the interruption a phone call or a generic email tends to be.

Example 4

Trial-Membership Handoff (WhatsApp First, SMS/Email Fallback)

A new trial-membership lead comes in from a web form for a Dubai gym or fitness studio — not from WhatsApp — and WhatsApp is the preferred first channel. But not every lead has WhatsApp installed, checks it promptly, or wants to be contacted there, so the workflow needs a real fallback instead of letting silence mean the lead goes cold.

Trial Signup FormTrigger
Template First TouchAction
Short WaitWait
WhatsApp Replied?Branch
SMS FallbackAction
Email Fallback or ExitOutcome
  1. 01 Trigger

    Contact Created / Form Submitted, scoped to the trial-membership lead source.

  2. 02 WhatsApp Action — Template

    Sends the first touch immediately on an approved "Trial Pass Confirmation" template — no prior WhatsApp message exists yet, so this has to be a template send.

  3. 03 Wait — Contact Reply, Reply Channel = WhatsApp

    Waits for a WhatsApp reply, with a timeout set deliberately shorter than the full 24-hour window — a few hours is typical — so there's still runway left in the day to try a different channel if WhatsApp goes unanswered.

  4. 04 If/Else — Contact Replied (WhatsApp) = false

    Replied: the lead continues in a WhatsApp-only nurture, free-form, inside the now-open window — e.g. confirming their first class time. No reply: branches into the fallback path below.

  5. 05 Send SMS Action

    Fires an SMS referencing the same trial pass. SMS doesn't carry WhatsApp's window-and-template rules, so it's a dependable fallback that doesn't hinge on a second template approval.

  6. 06 Wait, then If/Else (SMS)

    Waits for an SMS reply with its own timeout; still nothing routes into a final Send Email Action as the last fallback, while any reply on any channel exits the sequence into a normal sales workflow.

Why WhatsApp Here

WhatsApp stays the first choice because open and read rates beat SMS and email for the leads who do have it — but the wait-then-branch structure is what protects the ones who don't, instead of quietly losing them to a channel they never check. It's also the practical reason to fall back to SMS rather than sending a second WhatsApp template: each new WhatsApp template send outside the window carries its own approval and cost, while SMS doesn't.

Example 5

Review Request After a Completed Move

A move gets marked complete in the pipeline for a Dubai moving and relocation company — the truck's unloaded, the crew's signed off, the client's settled into the new place. The business wants a review request sent — but not so fast that it lands before the customer has actually unpacked and experienced the result, and not so generic that it reads like spam.

Move Marked CompleteTrigger
Short DelayWait
Window Open?Branch
Review AskAction
Wait for ClickWait
Reviewed or ReminderOutcome
  1. 01 Trigger

    Pipeline Stage Changed to "Completed"/"Won", or Invoice Marked Paid.

  2. 02 Wait — Fixed Duration or Wait Until

    A short delay (a day or two) so the request doesn't land while boxes are still being unpacked, before the customer has had a moment to actually feel good about the move.

  3. 03 If/Else — window currently open?

    Checks whether the contact messaged recently (e.g. to confirm the move went smoothly), which determines whether the window is open.

  4. 04 WhatsApp Action — Session Message or Template

    Open window: a free-form ask with a direct review link. Closed window: an approved "Review Request" template, since re-initiating contact outside the window still requires one.

  5. 05 Wait — Contact Reply / Link Click

    Waits a few days for either a reply or a click on the review link.

  6. 06 If/Else — Link Clicked = false

    No click: one further templated reminder, then stop — deliberately not a repeating nag loop. A click: tag as "Reviewed" and exit, optionally into a short free-form thank-you.

Why WhatsApp Here

A review ask sent to an inbox competes with everything else in that inbox; a review ask sent to WhatsApp lands in an app the customer already has open, inside the same thread they used to coordinate the move — which is exactly why WhatsApp review requests tend to get read and acted on faster than an equivalent email.

Frequently Asked Questions

A session message (Meta calls this a service message) is free-form text you can send only while a 24-hour customer service window is open — that window starts or resets the moment a WhatsApp user messages or calls you. A template message is a pre-approved format, and it's the only kind of message the WhatsApp Business Platform allows once that window closes, or before it's ever opened at all. Every example on this page routes around that one rule.

From DIY to Done-For-You

Want These Built and Connected to Your CRM Instead?

Every workflow above is genuinely buildable yourself inside GoHighLevel once the WhatsApp connection and templates are approved — I'd rather you actually ship one than not. If you'd rather not spend the time on trigger logic, window checks, and template rejections, this is exactly what I build for clients through WhatsApp automation for Dubai businesses, connected end-to-end into a full GoHighLevel automation build so every trigger, wait, branch, and template is tested against real conversations before it goes live.

  • 7+ years building CRM and WhatsApp automation for businesses worldwide
  • 100,000+ leads delivered through systems built the same way these examples are
  • One real estate automation system alone responsible for 50,000+ of those leads

Want One of These Built for Your Business?

Fastest way to start: message me directly on WhatsApp with which of the five scenarios above matches what you need. Or send the details below and I'll get back to you.

© 2026 Nabeel Aman. All rights reserved.