Disclosure: some links in this post are affiliate links. If you sign up through them I may earn a commission, at no extra cost to you.
In this GoHighLevel tutorial, if you’re sending texts outside a legal or reasonable send window, you’re one complaint away from a real problem. Here’s the fix: a single wait step in your GoHighLevel workflow that checks for Monday through Friday, 9 to 5, before anything goes out — and it keeps working the lead until the timing is right.
Why you need a send window before you send a single text
A send window stops your GoHighLevel workflow from texting leads at bad hours by holding the message until a set Monday-Friday, 9-5 range is true. Without it, a text can fire at 11pm just because a form got submitted then — which risks trust and compliance problems. One correctly configured wait step, placed between the trigger and the text action, solves this.
Here’s the thing. Text messages feel casual, but they’re the easiest way to torch trust with a lead — or worse, break a compliance rule you didn’t even know existed. If a workflow fires at 11pm on a Sunday because a form got submitted at that exact moment, that’s on you, not the lead.
I tested this myself and the fix isn’t complicated. You don’t need a separate app, a third-party tool, or a developer. You need one wait step, configured correctly, sitting between the trigger and the text action in your workflow.

How do you build a Monday-Friday 9-5 wait step in GoHighLevel?
Inside your workflow, you add a wait step and set it to an advanced window. That’s the setting that lets you define actual business hours instead of a flat delay like ‘wait 2 hours.’ You tell it Monday through Friday, 9am to 5pm — whatever your real send window is — and the workflow holds there until that condition is true.
Here’s how I put it in the walkthrough:
“The only thing I want to be careful whenever I’m doing text messages, I want to be really careful that we’re not setting text messages we’re not supposed to.”
That’s the whole reason this step exists. It’s not about making the workflow fancier — it’s about not sending something at 2am because a lead happened to opt in then.
What happens if the lead comes in outside the window
This is the part people miss. The wait step doesn’t just block the message and give up. It checks: is it 9 to 5 right now? If yes, it lets the text go through immediately. If no, it holds, waits a day, and checks again. So a lead who fills out a form at 9pm on a Tuesday doesn’t get ignored — they get texted first thing the workflow allows, not whenever the workflow feels like it.

Why build two branch paths instead of one
Two branch paths keep every lead moving instead of stuck: one path checks the window and sends when it opens, while the second path keeps nurturing leads who don’t fit that flow cleanly. A single path risks leaving some leads in limbo with no follow-up at all.
Here’s what nobody tells you about this setup: a single path leaves people stuck. If you only have one route through the wait step, and something about that lead’s timing never lines up, they can sit in limbo indefinitely, never nurtured, never followed up with.
My version splits into two paths on purpose:
“Notice here I have not one but I have two ways that we can do it, and we can keep nurturing the people to come back in.”
One path handles the standard case — check the window, send when it’s open. The second path exists so leads who don’t fit that flow cleanly still get worked. Nothing falls through. That’s the difference between a workflow that looks good on paper and one that actually keeps leads warm.

Where this fits in a bigger workflow
This wait step isn’t a standalone trick — it’s a building block. Drop it in front of any text action anywhere in your ecosystem: appointment reminders, follow-up sequences, review requests, reactivation campaigns. Anywhere a text goes out automatically, this step should be sitting in front of it.
This is also where I’d flag the one gotcha: the advanced window only checks the days and hours you set. It doesn’t know about holidays, doesn’t know your local time zone unless your account is set correctly, and it doesn’t retroactively fix a workflow you already have live. You have to go back and add it to existing workflows one at a time — it’s not automatic for anything you built before today.
If you want to see this alongside the rest of a working GoHighLevel setup — the trigger, the branches, the actual account structure — that’s what we walk through in the GoHighLevel Masterclass. It’s built for people who want it shown step by step, not theorized.
Frequently asked questions
Does the advanced window wait step cost anything extra in GoHighLevel?
No. The advanced window option is a built-in setting on the standard wait step — you’re not adding a premium feature or a paid integration to get this.
Can I use a different send window than 9 to 5?
Yes. Monday through Friday, 9 to 5 is just the example. You set whatever days and hours make sense for your business, and the workflow checks against that instead.
What happens to a lead who submits a form at midnight?
They don’t get texted at midnight. The wait step holds, checks again once the window opens, and sends then — so the lead still gets followed up with, just at an appropriate hour.
Do I need to rebuild my existing workflows to add this?
Yes, this is the gotcha — the wait step doesn’t retroactively apply itself. You need to go into each existing workflow and add it manually in front of any text action.
Where can I learn more about building workflows like this?
Start with free GoHighLevel and AI training, or check the FAQ for common setup questions.
