GoHighLevel Workflow Automation: Complete Setup Guide for Beginners (2026)
Step-by-step guide to building GoHighLevel automation workflows. Triggers, actions, conditions, and real templates for solo founders.
If you are running a service business solo, you already know the math does not work. There are only so many hours in a day, and every minute you spend manually sending follow-up texts, tagging contacts, and remembering to move deals through your pipeline is a minute you are not closing or delivering. GoHighLevel workflows exist to fix this. They let you build automated sequences that handle the repetitive operational work — lead follow-up, appointment reminders, review requests, dead lead reactivation — so you can focus on the parts of your business that actually require a human.
This guide walks through exactly how GHL workflows work, what each building block does, and gives you five real workflow templates you can build today. No vague theory. No screenshots of someone else's account with the important parts blurred out. Step-by-step instructions you can follow with your GHL account open in another tab.
Disclosure: Some links in this guide are affiliate links. If you sign up through our links, we may earn a commission at no extra cost to you. We only recommend platforms we use or have thoroughly evaluated.
What Is a GoHighLevel Workflow?
A workflow in GoHighLevel is a visual automation builder where you define what should happen when a specific event occurs. Someone submits a form — they immediately get a text and an email. Someone misses your call — they get an automatic text-back within 30 seconds. Someone's deal sits in your pipeline for 14 days without movement — they enter a reactivation sequence.
The builder uses a drag-and-drop interface with a simple logic flow: Trigger → Conditions → Actions. A trigger starts the workflow. Conditions decide which path a contact follows. Actions are the things that actually happen — send an SMS, fire an email, add a tag, move a pipeline stage, create a task.
If you have seen older GHL tutorials referencing "Campaigns" and "Triggers" as separate features — that system is gone. Workflows replaced it. Everything now lives in a single visual builder, and they are significantly better.
The key shift for solo founders: workflows do not just send messages. They manage your entire contact lifecycle. A single workflow can receive a lead, send a welcome message, wait three days, check whether the lead booked a call, branch into different follow-up paths, update your pipeline, and request a Google review — all without you touching anything after the initial build.
Core Building Blocks: Triggers, Conditions, and Actions
Every workflow is built from three types of blocks. Understanding what each one does — and which options are available — is the foundation for building anything useful.
Triggers (What Starts the Workflow)
A trigger is the event that enrolls a contact into the workflow. You can stack multiple triggers on a single workflow. The triggers you will use most often:
- ✅ Form Submitted — fires when a contact fills out any GHL form or survey. You can specify which form.
- ✅ Tag Added — fires when a specific tag is applied to a contact, either manually or by another workflow.
- ✅ Pipeline Stage Changed — fires when a contact moves to a specific stage in your sales pipeline.
- ✅ Appointment Booked — fires when someone books through your GHL calendar.
- ✅ Appointment Status Changed — fires when an appointment is marked as showed, no-showed, cancelled, or confirmed.
- ✅ Missed Call — fires when an inbound call goes unanswered. This is the trigger behind the missed-call text-back workflow that every service business should be running.
- ✅ Contact Created — fires when a new contact enters your CRM from any source.
- ✅ Custom Value Changed — fires when a specific custom field on a contact record changes. Useful for triggering workflows based on lead scoring or qualification status.
- ✅ Invoice Paid — fires when a payment is received. Great for triggering onboarding or thank-you sequences.
The list above covers 90% of what solo founders need. Start with these.
Conditions (The Decision Points)
Conditions branch your workflow based on contact data, timing, or behavior — the logic that makes workflows intelligent instead of dumb blast sequences.
- ✅ If/Else Branch — checks a condition and sends the contact down one of two paths. Example: if the contact has the tag "booked-call," skip the follow-up sequence. If not, continue sending follow-ups.
- ✅ Wait Step — pauses the workflow for a specified duration. "Wait 2 days" before sending the next email. "Wait 1 hour" before sending the reminder SMS.
- ✅ Wait for Contact Reply — pauses the workflow until the contact responds via SMS or email, or until a timeout period expires. Critical for conversational sequences where you want to stop messaging once someone replies.
- ✅ Time Window / Schedule — restricts when the next action fires. Only send SMS between 9 AM and 6 PM. Only fire on weekdays. This prevents you from texting a prospect at 3 AM because that is when they happened to fill out a form.
- ✅ Go To — sends the contact to a different point in the workflow or to a different workflow entirely. Useful for routing contacts to specialized sequences without rebuilding shared logic.
⚠️ Pro tip: Every workflow should include at least one condition. A workflow that is just "trigger → blast message" with no branching or timing logic is not automation — it is a glorified autoresponder. The conditions are what make it smart.
Actions (What the Workflow Does)
Actions are the outputs — the emails sent, the tags applied, the pipeline stages moved.
- ✅ Send SMS — sends a text message to the contact. Supports custom values (contact name, appointment time, etc.) for personalization.
- ✅ Send Email — sends an email using a pre-built template or inline content. Supports personalization with custom values.
- ✅ Add Tag / Remove Tag — applies or removes a tag from the contact record. Tags are how you track where a contact is in your process and trigger other workflows.
- ✅ Move Pipeline Stage — moves the contact's opportunity to a different stage in your sales pipeline. This is how your pipeline stays updated without you dragging cards around manually.
- ✅ Create Task — creates a task assigned to you (or a team member) with a due date. "Call this lead back by Thursday" — without you having to remember.
- ✅ Send Internal Notification — sends you an email, SMS, or in-app notification when something happens. "New lead from Google Ads form" hitting your phone in real time.
- ✅ Voicemail Drop — drops a pre-recorded voicemail into the contact's voicemail box without their phone ringing. Useful for personal-feeling outreach at scale.
- ✅ Webhook — sends data to an external URL. This is how you connect GHL to tools that do not have native integrations — your Slack, your spreadsheet, your custom app.
- ✅ Add to / Remove from Workflow — enrolls the contact in a different workflow or removes them from one. This is how you chain workflows together and prevent contacts from receiving conflicting messages.
📚 Related: See how all these pieces fit into a complete system — GoHighLevel for Solo Founders: Complete Stack Replacement Guide
5 Real Workflow Templates You Can Build Today
Here are five workflows every solo founder should have active. Each one solves a specific revenue leak — leads going cold, calls being missed, reviews never getting requested.
Template 1: New Lead SMS + Email Follow-Up
What it solves: Leads fill out your form and hear nothing for hours because you were busy. By the time you follow up, they have already talked to your competitor.
Step-by-step build:
- Trigger: Form Submitted → select your lead capture form.
- Action: Send SMS — "Hey {{contact.first_name}}, thanks for reaching out. I got your info and will follow up shortly. In the meantime, here is a quick look at how I work: [link to case study or video]." This fires within 60 seconds of form submission.
- Action: Send Email — a longer welcome email with your value proposition, a relevant case study, and a clear next step (book a call link).
- Action: Add Tag — "new-lead"
- Action: Move Pipeline Stage — move the contact's opportunity to "New Lead" in your sales pipeline.
- Action: Send Internal Notification — send yourself an SMS or email: "New lead: {{contact.first_name}} {{contact.last_name}} — {{contact.email}}."
- Condition: Wait 1 day.
- Condition: If/Else — check if contact has tag "booked-call." If yes → end workflow. If no → continue.
- Action: Send SMS — "Hi {{contact.first_name}}, just checking in. Did you get a chance to look at the info I sent? Happy to jump on a quick call if you have questions: [booking link]."
- Condition: Wait 2 days.
- Condition: If/Else — check tag "booked-call" again. If yes → end. If no → continue.
- Action: Send Email — a value-add email with a second case study or relevant tip. Soft CTA to book a call.
- Condition: Wait 3 days.
- Action: Send SMS — final follow-up. "Hey {{contact.first_name}}, no pressure at all. If the timing is not right, totally understand. I will be here when you are ready. Just reply to this text anytime."
- Action: Add Tag — "follow-up-complete"
Five touchpoints across two channels over six days — fully automatic. The if/else branches prevent you from sending follow-ups to someone who already booked, which is the kind of thing that makes automation feel broken when it is missing.
Template 2: Missed Call Text-Back
What it solves: You miss a call because you are with a client. The prospect calls your competitor instead.
Step-by-step build:
- Trigger: Call Status → Missed Call (Inbound).
- Condition: Wait 1 minute. (This slight delay prevents the text from arriving while the caller might still be leaving a voicemail.)
- Action: Send SMS — "Hey, sorry I missed your call. I am with a client right now but did not want to leave you hanging. What can I help you with? I will get back to you within the hour."
- Action: Send Internal Notification — alert yourself: "Missed call from {{contact.phone}} — auto text-back sent."
- Action: Create Task — "Call back {{contact.first_name}} {{contact.last_name}}" with a due date of today.
Five steps. Three minutes to build. The text goes out within 90 seconds of the missed call. The prospect knows you are real and responsive. They stop shopping. You get the task reminder to call back. No excuses for not having this running.
Template 3: Post-Appointment Review Request
What it solves: You deliver great work but never ask for reviews. Your Google Business Profile has 11 reviews while your competitor has 87.
Step-by-step build:
- Trigger: Appointment Status Changed → "Showed" or "Completed."
- Condition: Wait 2 hours. (You want the positive experience to be fresh but give enough time for the appointment to fully wrap up.)
- Action: Send SMS — "Hey {{contact.first_name}}, it was great meeting with you today. If you had a good experience, would you mind leaving a quick Google review? It really helps small businesses like mine: [your Google review link]. Thanks so much!"
- Condition: Wait 3 days.
- Condition: If/Else — check if contact has tag "left-review." If yes → end. If no → continue.
- Action: Send Email — a slightly different ask: "Hi {{contact.first_name}}, I know life gets busy. If you have 60 seconds, a Google review would mean a lot. Here is the direct link: [link]. Either way, I appreciate your business."
- Action: Add Tag — "review-requested"
Run this for six months and watch your review count climb without manually asking a single client. The two-hour delay feels natural. The if/else branch prevents nagging someone who already reviewed you.
Template 4: Dead Lead Reactivation
What it solves: Hundreds of contacts in your CRM expressed interest months ago but never converted. Some are ready now but have forgotten you exist.
Step-by-step build:
- Trigger: Tag Added → "reactivation-batch" (you will manually add this tag to a batch of cold leads to start the sequence, or set it on a recurring schedule).
- Action: Send SMS — "Hey {{contact.first_name}}, it has been a while since we connected. I have been refining my process and getting some great results for clients in [their industry/niche]. Would it make sense to reconnect? No pitch — just a quick chat to see if I can help."
- Condition: Wait for Contact Reply — timeout 3 days.
- Condition: If/Else — did the contact reply? If yes → Send Internal Notification ("{{contact.first_name}} replied to reactivation — check conversation") and end workflow. If no (timeout) → continue.
- Condition: Wait 4 days.
- Action: Send Email — a value-first reactivation email. Share a recent case study or result. "I thought of you when [relevant result happened]. If your situation has changed and this is relevant, I would love to chat. If not, no worries — just wanted to share."
- Condition: Wait 7 days.
- Action: Send SMS — "Last note from me, {{contact.first_name}}. If the timing is not right, totally get it. Just reply STOP and I will not message again. Otherwise, my calendar is open if you want to grab 15 minutes: [booking link]."
- Action: Add Tag — "reactivation-complete"
- Action: Remove Tag — "reactivation-batch"
The Wait for Contact Reply step is critical. If someone responds, the workflow stops automated messages and alerts you to jump in personally. Run this on batches of 20-50 cold leads at a time and expect a 5-15% re-engagement rate.
Template 5: Pre-Call Nurture Sequence
What it solves: Prospects book a discovery call but show up cold — or worse, no-show entirely. The first 15 minutes of every call are wasted on introductions instead of selling.
Step-by-step build:
- Trigger: Appointment Booked → select your discovery call calendar.
- Action: Send SMS — "Hey {{contact.first_name}}, your call is confirmed for {{appointment.start_time}}. Looking forward to it. I will send you a couple of things to check out before we chat so we can make the most of our time."
- Action: Send Email — "What to expect on our call" email. Include: how long the call will take, what you will cover, what they should prepare, and a link to a case study or short video that demonstrates your approach.
- Action: Add Tag — "booked-call"
- Action: Move Pipeline Stage — move to "Call Scheduled."
- Condition: Wait until 24 hours before appointment.
- Action: Send SMS — "Quick reminder — we are on for tomorrow at {{appointment.start_time}}. Here is the call link: [meeting link]. See you there."
- Condition: Wait until 1 hour before appointment.
- Action: Send SMS — "Jumping on in an hour. Here is the link: [meeting link]. Talk soon."
This workflow pre-sells the prospect with trust-building content and reduces no-shows with automated reminders. Founders running it consistently report show rates above 85%, compared to 60-70% without.
Get These Workflows Pre-Built in One Click
Start your free GoHighLevel trial through our link and get the Client Acquisition Snapshot — a done-for-you funnel, email sequence, SMS follow-up, and booking system you can install instantly. Skip the manual setup.
Start Your Free GHL Trial + Get the Snapshot →Writing Your Workflow Messages With AI
The biggest bottleneck when building workflows is not the technical setup — it is writing the SMS and email copy. This is where Magai becomes a genuine time-saver. Magai gives you access to multiple AI models through a single interface, so you can feed it your business context and tone of voice, and get draft copy back in seconds.
Here is how to use it for workflow copy specifically:
- For SMS messages: Tell Magai your business type, the scenario (missed call, follow-up, review request), and the tone you want. Ask for 3 variations under 160 characters each. Pick the one that sounds most like you, tweak two words, and paste it into GHL.
- For email sequences: Give Magai the full context — who the prospect is, what triggered the email, what you want them to do next — and ask for a complete email draft. You will get something 80% ready in 30 seconds that would have taken you 20 minutes to write from scratch.
- For A/B testing: Ask for two completely different angles on the same message. Use one as version A and one as version B in your workflow. Let the data tell you which tone and approach your audience responds to.
Magai plus GHL lets you go from "I should automate this" to "this workflow is live" in a single sitting.
Common Mistakes to Avoid
The same mistakes come up repeatedly. Avoid these and you will be ahead of 80% of GHL users.
❌ Too Many Wait Steps Back-to-Back
Sequences that stretch over weeks with huge gaps lose people. Keep initial follow-up tight — 5 to 7 touchpoints over 7 to 10 days. Move contacts into a separate long-term nurture workflow after that instead of stretching one workflow into a month-long drip.
❌ Not Testing Before Activating
GHL lets you test workflows by enrolling yourself as a contact. Do this every time before going live. Check that personalization values render correctly and that wait steps are set to the right duration — a common mistake is setting "2" thinking it means 2 days when the dropdown is set to hours. Three minutes of testing prevents embarrassing messages going to real leads.
❌ Forgetting to Activate the Workflow
You build the workflow, close the builder — and it is still in Draft mode. Leads fill out your form and nothing happens. Always check the toggle in the top right corner. It needs to be switched to "Published" for the workflow to fire.
❌ No Exit Conditions
Without exit conditions, a workflow keeps messaging contacts who already booked a call or purchased. Every follow-up workflow needs if/else branches that check for a "booked-call" tag before each follow-up step. If the tag exists, end the workflow.
❌ Building Too Many Workflows at Once
Build the new lead follow-up first. Get it running. Fix issues. Then add missed call text-back. Then the review request. Layer them in one at a time so you can troubleshoot each workflow in isolation.
⚠️ Sending SMS Outside Business Hours
A prospect fills out your form at 2 AM and gets a text at 2:03 AM. Not great. Use the time window condition on SMS actions to restrict sends to 9 AM-7 PM in the contact's time zone. Email can send anytime. SMS should respect normal hours.
Frequently Asked Questions
How many workflows can I create in GoHighLevel?
There is no limit on the number of workflows you can create in GoHighLevel on any plan. The Starter plan at $97 per month includes unlimited workflows, unlimited contacts, and unlimited automation actions. You can build as many workflows as your business needs without hitting a cap or paying per-workflow fees.
What is the difference between GHL Workflows and the old Campaigns/Triggers system?
GoHighLevel replaced the older Campaigns and Triggers system with Workflows. The old system required you to build campaigns separately and then connect them to triggers — two steps in two different places. Workflows combine triggers, conditions, and actions into a single visual builder. Everything lives in one place, which makes building and troubleshooting much easier. If you see tutorials referencing Campaigns or Triggers, those are outdated. Workflows are the current system.
Can GoHighLevel workflows send both SMS and email in the same automation?
Yes. A single GHL workflow can mix SMS, email, voicemail drops, internal notifications, webhook calls, pipeline updates, tag changes, and task assignments in any combination. This multi-channel capability within one workflow is one of GHL's biggest advantages over tools that only automate within a single channel.
Do GoHighLevel workflows run on weekends and holidays?
By default, workflows run 24/7 including weekends and holidays. However, you can add time window conditions to restrict when specific actions fire. For example, you can set an SMS action to only send between 9 AM and 6 PM on weekdays. Any contact that hits that step outside the window will wait until the next eligible time before the action fires.
What happens if a contact triggers the same workflow twice?
By default, if a contact triggers a workflow they are already active in, the system will not enroll them again. You can change this behavior in the workflow settings by toggling the allow re-entry option. For most follow-up sequences, you want re-entry turned off to prevent duplicate messages. For event-based workflows like missed call text-back, you typically want re-entry enabled so the automation fires every time the event occurs.
The Bottom Line
GHL workflows are not complicated. The five templates above cover the automations that generate the most impact for solo founders. The difference between a founder who automates and one who does not is the decision to stop doing things manually that a system should handle.
Start with the new lead follow-up workflow — it addresses the most common revenue leak. Build it, test it, publish it. Then add missed call text-back. Then the review request. Within two weeks, you will have three automations running that would have taken 5-8 hours per week to do manually. That is the difference between staying stuck and actually growing.
Start Building Workflows Today — Free Trial + Bonus Snapshot
Start your free GoHighLevel trial through our link and get the pre-built Client Acquisition Snapshot — a done-for-you funnel, email sequence, SMS follow-up, and booking calendar you can install in one click. Skip the blank-canvas starting point.
Start Your Free GHL Trial + Get the Bonus →