A missed call is not a missed call. For a service business, it's a customer who is already dialling the next company in their search results. The fix isn't hiring someone to sit by the phone. It's making sure every caller hears back within seconds, whether you're on a job, in a meeting or asleep.
I build these speed-to-lead systems in GoHighLevel for service businesses: HVAC and plumbing companies, law firms, clinics, cleaning companies and more. This post walks through how I set one up, what actually moves the numbers, and the mistakes I see most often.
Why speed-to-lead decides who wins the job
When someone needs a plumber, a lawyer or a dentist, they rarely call just one. They call down the list until someone responds. That means the business that replies first usually wins, often before price or reviews come into it.
The problem is that the people best at the actual work are usually the ones who can't answer: the technician under a sink, the attorney in court, the clinician with a patient. So calls go to voicemail, web enquiries sit in an inbox, and nobody notices the leads that never turned into jobs, because they never show up anywhere.
The four parts of a speed-to-lead system
Every build I do has the same backbone:
- Instant acknowledgement. Every missed call or web enquiry gets a text (and email, for web leads) within seconds.
- Triage. The system works out what the person needs, and how urgent it is, from their reply.
- Self-booking. Routine requests get a booking link so they can lock in a time without phone tag.
- Follow-up. Anyone who doesn't book gets a structured follow-up sequence instead of quietly disappearing.
Just as important is what the system doesn't do. Diagnosing a fault, assessing a legal matter or deciding which technician fits a complex job stays with people. Automation handles everything around those judgment calls.
Step 1: The missed-call text-back
In GoHighLevel this starts as a workflow triggered by an inbound call that wasn't answered. The first action sends an SMS straight away. Keep the message short, human and specific to the business:
Hi, it's [Business] — sorry we missed your call, we're with a customer right now. Is this an emergency, or would you like to book a time? You can grab a slot here: [booking link]
A few details make a big difference:
- Send it immediately. In my HVAC build, the text lands on the caller's phone in under 15 seconds. Every minute of delay gives them time to call someone else.
- Ask one question. "Is this an emergency?" is easy to answer, and the reply tells the system where to route them next.
- Include the booking link. Plenty of people would rather pick a time than talk on the phone.
- Handle repeat callers. Someone who calls three times in five minutes should get one text, not three. A short wait step plus a contact tag stops the duplicates.
Step 2: Route emergencies differently from routine work
Not every lead is equal. For a plumber, "burst pipe" and "quote for a new water heater next month" need completely different responses.
When the caller replies, a second workflow checks the message for emergency language (for an HVAC company: "no heat", "burst pipe", "no hot water", "leak") and branches:
- Emergency: notify the on-call technician by SMS and push notification with the caller's details, and tell the customer someone will call them back within minutes.
- Routine: send the booking link and let them choose a slot from live calendar availability.
For a law firm the same idea becomes matter-type routing: a short qualifying question captures the type of case, and the lead goes straight to the right attorney or practice area.
Step 3: Booking, confirmation and reminders
Once someone books, the system takes over the admin that used to eat the front desk's day: an instant confirmation, a reminder before the appointment, and for field-service businesses an "on the way" text when the technician heads out. These are small touches, but they cut no-shows and make a small business feel organised.
Step 4: Follow up with people who don't book
This is where most of the money hides. A prospect who asked a question but didn't book isn't a lost lead. They're undecided. A short follow-up sequence (a check-in the next day, a helpful message a few days later, a final nudge) recovers a surprising number of them.
In my law firm build, this follow-up on undecided prospects was one of the biggest drivers of signed retainers. Before, anyone who didn't sign on the spot usually never heard from the firm again.
When GoHighLevel isn't enough: custom code
GoHighLevel covers most of this out of the box, but real businesses hit edges. Matching records between technicians, jobs and customers, or flagging a potential conflict against a law firm's existing clients, aren't things the platform does natively.
That's where I write custom code against the GoHighLevel API and webhooks rather than settling for a workaround. Because I'm a software engineer, I can keep the system on the right logic instead of bending the business to fit the tool.
Mistakes I see most often
- Skipping A2P 10DLC registration. If you text US customers, register your business for A2P messaging first. Unregistered numbers get filtered by carriers, so your "instant" text never arrives.
- Sounding like a robot. "Your call is important to us" gets ignored. Write like the owner would text.
- Automating judgment calls. Don't let the system promise prices, diagnoses or legal outcomes. Route those to a human.
- Going live without testing on real calls. In the HVAC build, the text-back and routing went live first and were tested against real inbound calls for a working week, with the owner listening in, before running unsupervised. In the law firm build, the routing ran silently against real leads for two weeks before a single automated message went out.
- No follow-up. A text-back without a follow-up sequence only recovers the people who were already ready to book.
What results look like
Every business is different, but here's what these systems did in two of my builds:
- HVAC & plumbing: 89% of missed calls recovered by instant text-back, with texts landing in under 15 seconds. Read the HVAC case study →
- Law firm: 3.2x more consultations booked after switching to instant lead response, with first personalised responses in under 5 minutes. Read the law firm case study →
The same backbone works for clinics, med spas, cleaning companies, property managers and almost any business where the phone is the front door. You can see the other builds in my case studies.
Want this for your business?
If you're still losing calls to voicemail or answering web enquiries whenever someone has a spare moment, a speed-to-lead system is usually the highest-return automation you can build. I design and build these in GoHighLevel, with custom code wherever the platform falls short.