What GHL workflows are and how they work
A GoHighLevel workflow is a set of instructions that run automatically when something specific happens. That "something specific" is a trigger. The instructions are called actions. In between actions, you can add conditions (If/Else logic) and timing delays.
Think of a workflow as a flowchart that runs without anyone pressing buttons. Someone fills out your contact form (trigger). GHL immediately sends them an SMS confirmation (action). If they reply within an hour (condition), a team member gets notified (action). If they do not reply (condition), a follow-up SMS goes out 24 hours later (action with delay). That is a workflow.
Key concepts before you build
Published vs Draft: A workflow only runs when it is published. While building and testing, keep it in Draft. Publish only when you are ready for it to go live.
Re-enrollment: By default, a contact can only enter a workflow once. If you want the same contact to go through the workflow again (for example, every time they miss a call), turn on re-enrollment in the trigger settings.
Workflow history: Every time a workflow runs on a contact, GHL logs it. Go to the contact record, click Workflow History, and you can see exactly which step they are on and what happened. This is essential for troubleshooting.
Stop on response: Most follow-up workflows should stop when a contact replies. This requires you to manually add an If/Else condition after each message. GHL does not stop workflows automatically when someone replies unless you build that logic in.
Triggers: what starts a workflow
The most commonly used triggers for service businesses are:
- Missed Call fires when an inbound call to your GHL number goes unanswered
- Form Submitted fires when someone fills out a GHL form on your website or funnel
- Pipeline Stage Changed fires when you move a contact to a specific stage
- Tag Added fires when a specific tag is applied to a contact
- Appointment Booked fires when a calendar booking is confirmed
- Appointment Status Changed fires when an appointment is confirmed, cancelled or completed
- Contact Created fires when a new contact is added to GHL
- Inbound SMS fires when a contact sends you an SMS
Most triggers let you add filters to narrow when they fire. For example, a Pipeline Stage Changed trigger can filter for one specific pipeline and one specific stage, so it only fires in exactly the right context.
Actions: what the workflow does
Actions are the steps that run after the trigger fires. The most useful ones:
- Send SMS sends a text message to the contact from your GHL phone number
- Send Email sends an email from your connected email address
- Add Tag / Remove Tag tags or untags the contact for segmentation
- Add to Pipeline creates an opportunity in a pipeline at a specific stage
- Update Pipeline Stage moves an existing opportunity to a different stage
- Send Internal Notification sends a notification to a team member or email
- Create Task creates a follow-up task assigned to a team member
- Add Contact Note adds a note to the contact record automatically
- Wait pauses the workflow for a set amount of time before the next action
- If/Else branches the workflow based on a condition
- Go To jumps to a different step in the workflow
- Remove from Workflow removes the contact from this or another workflow
Conditions: If/Else logic
If/Else branches are what make workflows smart. Instead of every contact going through the same sequence regardless of their behaviour, conditions let you send different people down different paths based on what they do.
The most useful conditions to build are:
Did they reply? After sending a message, wait 24 hours, then check: has the contact sent any inbound message in the last 24 hours? If yes, stop following up. If no, send the next message. This prevents you from chasing people who are already engaged.
What tag do they have? Check if a contact has a specific tag before deciding what to send. Customers get a different follow-up than brand new leads. Residential jobs get different templates than commercial.
What pipeline stage are they in? Check if a contact is still in the stage that triggered the workflow. If you manually moved them to Won while the follow-up sequence was running, stop the sequence.
Timing and delays
Where you put Wait steps matters as much as what you put in them. A few timing rules that produce better results:
Send the first message immediately or within 5 minutes for any inbound enquiry. Speed matters enormously for new leads. Every minute of delay reduces conversion.
For follow-up messages, use business hours filtering. Go to Workflow Settings > Allow workflow to run only during business hours. Messages that arrive during business hours feel like professional follow-up. The same message arriving at 8pm on a Sunday feels like spam.
Space follow-up messages 2 to 4 days apart for estimates and quotes. Daily messages for a sales follow-up feel pushy and result in opt-outs. Every 2 to 3 days maintains presence without becoming annoying.
See also: CRM tutorial
6 workflow examples to build today
Try GoHighLevel free for 30 days
Sign up through BuildOnAuto and get the missed call text-back, estimate follow-up and review automation pre-installed.
Review the billing terms shown during signup · Cancel anytime
