How to Build a Speed to Lead Workflow in GoHighLevel

How to build a GoHighLevel workflow that replies to new leads within a minute, alerts your team and keeps following up until the lead answers.
Speed to lead workflow: a screenshot of a computer

This is the exact structure I use for a speed to lead workflow in GoHighLevel: what triggers it, what the first text says, who gets alerted, how follow-ups are spaced, and when everything stops. Set it up once and every new inquiry gets a helpful reply within a minute, even when you’re on a job, in surgery or asleep. The aim is simple. Reply while the lead still has your website open, before they move on to the next business on the list.

What speed to lead means in practice

When someone fills in a quote form, they rarely contact only you. They often message two or three businesses in a row. The one that replies first with something useful usually gets the conversation, and the conversation usually gets the job.

Two words in that sentence matter. First, because a reply the next morning lands after someone else has already booked. Useful, because “Thanks for your message, someone will be in touch” isn’t a reply. It’s a receipt. A good first message confirms what they asked for, tells them what happens next and asks one easy question to start a real conversation.

What you need before you build

Get these in place first, or the workflow will break in ways that are hard to spot:

  • An A2P 10DLC registered number. Without registration, US carriers may block or filter your texts, and you will never know the lead didn’t get them.
  • Clean form fields. At minimum: first name, phone, email and the service they want. Map them to contact fields and a custom field for the service.
  • A pipeline with a “New lead” stage.
  • Users and assignment. Decide who gets each lead, or use round robin if several people share the work.
  • Business hours. Decide what happens to a lead at 10 p.m. versus 10 a.m.

Building the speed to lead workflow step by step

Menu names in GHL change from time to time, but the building blocks stay the same.

  1. Triggers. Add a trigger for each source: “Form Submitted” (filtered to your quote forms), “Facebook Lead Form Submitted”, “Inbound Webhook” if leads come from your WordPress site, and so on. One workflow can have several triggers.
  2. Create or update opportunity. Put the lead in “New lead” in the right pipeline, with the source recorded.
  3. Assign the contact. Assign to a specific user or use round robin.
  4. Send the first text immediately. No wait step before it.
  5. Send a confirmation email with the same information and a booking link if you take online bookings.
  6. Alert the team. Send an internal notification by text and app push to the assigned user, with the lead’s name, phone number and requested service in the message so they can act from their lock screen.
  7. Optional: connect a call. GHL has a workflow call action that rings your team member first and connects them to the lead when they answer. For high-value inquiries this can be the fastest route to a booking.
  8. Wait, then follow up. Add a series of wait steps and follow-up messages over the next several days.

What the first text should say

Keep it short, personal and specific. For example:

“Hi Sarah, this is Mike from Smith Heating. Thanks for asking about a furnace repair. Is the system completely off, or still running but not heating well? I can get you a time today or tomorrow.”

It uses their name, names the business (which also helps with A2P compliance), confirms the request and asks a question that’s easy to answer. Avoid links in the very first text where you can. They look spammy and some carriers treat them with suspicion.

Spacing the follow-ups

If there’s no reply, I usually space follow-ups across about a week: one later the same day, one the next day, a couple more over the following days, and a last “should I close your request?” message. Each message should add something: a different question, an answer to a common worry, a booking link. Five copies of “just checking in” will get you marked as spam.

Handling leads that arrive after hours

Use an If/Else branch on the current time. During business hours, send the normal first text and alert the team. After hours, still reply right away, but set expectations: “Thanks, I have your request. The office opens at 8 a.m. and I will call you first thing. If you would like to pick a time now, here is the booking link.”

Hold the internal alert until the morning, or route it to an on-call person if you offer emergency service. Follow-up messages, as opposed to the instant reply someone just asked for, should respect quiet hours. US federal rules and some state laws limit when marketing texts can be sent, so check the rules for the states you serve.

Exits and measurement

Stop the workflow at the right moment

Nothing annoys a customer more than an automated “Did you still need help?” text an hour after they booked. Build in exits:

  • Customer replied. Use a goal or a condition that removes the contact from the follow-up sequence as soon as they reply, so a human can take over.
  • Appointment booked. Booking should end this workflow and start your reminder workflow instead.
  • Stage changed. If a team member moves the opportunity forward manually, stop the sequence.
  • Opted out. GHL handles STOP replies automatically, but make sure no other workflow sends to that contact afterwards.

Also check the re-entry setting. If the same person submits two forms, you usually do not want them to get two parallel sequences.

Measuring whether it works

You don’t need a complex dashboard. Each week, look at three things: how quickly the first human reply happened, how many leads replied to the automated text, and how many leads reached “booked”. Then read ten conversations. Real replies tell you which question to change in the first text.

On the GoHighLevel systems I built for agency and coaching clients, automation like this cut manual lead handling by about 70% per client. The team stopped chasing and started talking to people who had already replied.

At a glance

  1. A2P registration approved before the first text goes out.
  2. Every lead source triggers the same workflow.
  3. The first text goes out with no delay and asks one easy question.
  4. The assigned person gets an alert with name, phone and service.
  5. After-hours leads get an honest “here is when I will call” reply.
  6. Follow-ups stop on reply, booking or opt-out.
  7. You have tested it with your own phone from every form.

If you would like this built and tested for you, take a look at my GoHighLevel expert service. For contractors, the website side matters too, and my HVAC contractor websites are built around fast quote forms and click-to-call.

If you’re working on this, these pair well with it: AI agents for lead follow-up and appointment reminder workflow in GoHighLevel that cuts no-shows.

Questions I get about speed to lead

How fast should the first reply be?

As close to instant as you can. An automated text within a minute, followed by a human reply as soon as someone is free, is a realistic target for most small teams.

Should the first message be a text or an email?

Both, but text first. People see texts quickly. The email is a backup with more detail and a booking link.

Will automated texts feel robotic?

Only if they read like a template. Write the way your best receptionist talks, use the lead’s name and the service they asked for, and ask a real question.

What if two people submit the same phone number?

GHL will usually match them to one contact, depending on your duplicate settings. Check the re-entry option on the workflow so the contact doesn’t receive two sequences at once.

If leads are slipping through the gap between your website and your phone, get a free website review and I’ll show you where they are going.

Share this article

Shehzad Akram

About the author

Shehzad Akram

Senior WordPress and Shopify developer in Lahore, Pakistan, Top Rated on Upwork with 100% Job Success. I write these notes from real client work: what broke, what fixed it, and what I check every time.

Keep reading

More notes from real client work