The GoHighLevel Lead Audit: 8 Places Revenue Is Leaking
A contractor-specific audit of where revenue leaks out of GoHighLevel: opportunities without triggers, stale contacts, attribution gaps, win-back gaps, and more.
Key takeaways
- GoHighLevel is built for SaaS funnels, and contractors retrofit it for trades, which creates 8 predictable leak points.
- Most contractor GHL accounts have 60 to 80 percent of opportunities sitting in stages with no Workflow trigger attached.
- Missed calls from non-GHL phone systems and emails outside the GHL inbox are the two largest invisible revenue leaks.
- Clint audits every leak across GHL, Gmail, Google Calendar, and CallRail in a single text command.
Contents
- 011. Opportunities sitting in stage with no Workflow trigger
- 022. Contacts with last activity more than 9 months and no campaign
- 033. Stalled SMS conversations in the inbox
- 044. UTM and source attribution gaps
- 055. No win-back automation for tagged "former customer"
- 066. Recurring service contacts skipping season's pitch
- 077. Missed calls from non-GHL phone numbers
- 088. Cancelled jobs and no-show appointments not re-followed
- 09How Clint runs all 8 audits in one command
- 10Two real audits
- 11Sources
- 12Frequently Asked Questions
GoHighLevel is the most common CRM among home service contractors who bought through an agency. The platform was built for SaaS funnel marketing, and contractors with $1M to $10M revenue have spent the last 4 years bending it into a service business operating system. That bend is where revenue leaks.
This audit covers the 8 specific places revenue drips out of a contractor's GoHighLevel account. Most accounts leak from 5 of the 8 simultaneously. The cumulative leak in a $3M business typically runs $300K to $500K of recoverable revenue per year, in line with ServiceTitan's 2025 AI in the Trades Report finding that the average home service business loses 15 to 20 percent of potential revenue to lead and customer mismanagement.
Run the audit. Fix what you find.
1. Opportunities sitting in stage with no Workflow trigger
Open Opportunities > Pipelines. Click any pipeline. Look at the stage counts. Now go to Automation > Workflows and check which Workflows trigger on Opportunity Stage Change.
The leak is the gap. If you have 312 opportunities at "Quote Sent" and zero Workflows triggered by that stage, you have 312 leads getting nothing automated. Most contractor accounts have 4 to 7 stages in active pipelines and Workflow coverage on 1 or 2.
The fix is one Workflow per stage that should keep moving. The trigger is Opportunity Stage Change > Stage equals X. The action is a 3-touch SMS plus email cadence with a stop condition on stage change.
Run a query against your own pipeline: how many opportunities are older than 30 days in their current stage? That number is your leak.
Text Clint: "Show me every opportunity in GoHighLevel sitting in any stage longer than 30 days, sorted by lead value descending."
2. Contacts with last activity more than 9 months and no campaign
In Contacts > Smart Lists, build the filter: Last Activity > 270 days AND Tags does not contain dnc.
In most $1M to $5M contractor accounts, this number is 800 to 4,000 contacts. If none of them are tagged into a winback campaign, every one is a slow-leak silent lead.
ServiceTitan benchmarks say 14 percent of dormant contacts in a service trade will reactivate within 12 months if touched with a relevant offer. On 2,000 dormant contacts that is 280 reactivations. Even at a conservative $400 average ticket that is $112,000 of revenue waiting on a Workflow you have not built yet.
The Pete & Gabi reactivation playbook recommends a 3-month seasonal touch on this segment. We cover the same approach in our 90-day lead reactivation playbook and our dormant customer revenue math post.
Text Clint: "Find every contact in GHL with no activity in 9 months, sorted by lifetime value, and draft a winback message in my voice."
3. Stalled SMS conversations in the inbox
Open Conversations, filter by SMS, sort by Last Message Date. Scroll until you hit threads where the last message was from the customer and is more than 7 days old with no reply from your team.
Every one of those is a leak. The customer asked a question. Nobody answered. They went to the next contractor.
In the Owned and Operated community, John Wilson has talked about pulling reports of CSR response times and finding that 12 to 18 percent of inbound SMS replies sit unanswered for more than 24 hours, mostly during evening and weekend gaps.
The fix is a 2-step Workflow: trigger on Customer Reply Received, wait 4 hours, if no team-member message has been sent, send an internal alert and an auto-acknowledge to the customer.
4. UTM and source attribution gaps
Open any Smart List or Pipeline filter and try to filter by Lead Source. In most contractor accounts, 30 to 60 percent of contacts have either blank source or "manual entry."
You cannot revive what you cannot segment. If you do not know which contacts came from Google LSA versus website versus referral, you cannot send the right revival angle.
The leak is two-sided:
- You waste revival messages because every cold lead gets the same generic pitch
- You cannot calculate true cost per acquisition by source because the data is missing on closed jobs
LocaliQ's 2024 home services cost-per-lead benchmarks show CPL ranging from $24 (lawn care) to $311 (HVAC system replacement). Without source attribution you cannot tell whether your $311 HVAC leads are actually closing.
The fix is a one-time backfill: pull every untagged contact from the last 12 months, cross-reference call logs and form fills, tag the source, then enforce required-source on every new opportunity.
5. No win-back automation for tagged "former customer"
Search Workflows for any trigger involving the tag customer or former-customer. In the GHL accounts we have audited, 7 out of 10 contractors have the tag but no Workflow firing on it.
The math is brutal. Bain and Reichheld's classic retention research says a 5 percent increase in customer retention drives 25 to 95 percent profit increase across service businesses. BrightLocal's 2024 Local Consumer Review Survey found 76 percent of local-service customers would consider rebooking the same provider within 12 months if asked.
Asked. The Workflow is the asking.
The fix is a Workflow with trigger Tag Added equals customer, wait 90 days, send a "thank you + maintenance reminder" SMS. Then 6 months, then 12 months. 3-touch annual rhythm.
Text Clint: "Build the 3-touch annual winback rhythm for every customer tag in GHL and stop touching anyone who has a job booked in the last 60 days."
6. Recurring service contacts skipping season's pitch
Trades with seasonal demand (HVAC, lawn care, pool, fireplace, gutter, pest) have a built-in revival angle: the season changed.
Open Contacts > Smart Lists and filter Tags contains hvac AND Last Job Date < April 1 of current year. Every contact in that list missed your spring tune-up window unless you actively pitched them.
Tommy Mello at A1 Garage Door has discussed how seasonal pitch automation alone produces 15 to 20 percent of his revival revenue. The Workflow is a single SMS, sent 3 weeks before the season opens, mentioning the customer's last service and offering a discount-free tune-up.
The leak is the missed window. Once the heat wave hits, your competitors are already on TV ads and your customer calls them, not you.
7. Missed calls from non-GHL phone numbers
This is the single biggest leak in the audit and the hardest to fix inside GHL alone.
If you forward calls through Google Voice, your shop landline, CallRail, or RingCentral, the missed call never registers in GHL. The GHL phone log shows only calls placed to or from the dedicated GHL twilio number.
Invoca's 2024 inbound call research is the canonical data here:
- 60 to 70 percent of leads in home services still come by phone
- 1 in 4 inbound calls from existing customers goes unanswered during peak hours
- Callbacks within 60 minutes convert at 25 to 40 percent
- Callbacks after 24 hours drop to 5 to 8 percent
If you take 200 calls a week and miss 25 percent during peak, that is 50 missed calls. Of those, 12 to 20 are revivable with a fast callback. At a $400 average ticket, that is $4,800 to $8,000 of weekly revenue going to whoever calls back first.
GHL cannot see these calls. We covered the cost analysis specifically for HVAC in our HVAC missed-call cost post and the playbook in our missed-call text-back post.
Text Clint: "Pull every missed call from CallRail this week that never got a callback, match each one to a GHL contact if possible, and draft the SMS in my voice."
8. Cancelled jobs and no-show appointments not re-followed
Open the Calendars module and look at any appointment marked Cancelled or No Show in the last 90 days. Filter for that status.
In a typical contractor account this is 8 to 15 percent of all appointments. Almost none of them are tagged for follow-up. The Workflow that should exist (trigger on Appointment Status equals Cancelled, wait 7 days, send a "everything okay?" SMS) almost never does.
The reason cancellations get ignored is psychological. The CSR moved on. The job got rescheduled or it did not, and nobody opened the calendar to look back. But cancellation revival converts at 15 to 25 percent in trades according to Hatch case studies, because the underlying need has not gone away. The customer just got busy.
The fix is a 2-touch Workflow on cancellation: same-week SMS, 30-day SMS. The same on no-shows.
How Clint runs all 8 audits in one command
You do not have to hunt through 4 menus to find these leaks. Clint reads your GoHighLevel, your real Gmail (not just GHL Conversations), your Google Calendar, and your CallRail or RingCentral logs.
You text:
"Run the 8-point lead audit on my GHL plus Gmail plus calendar. Tell me what is leaking and the dollar size of each leak."
Clint comes back with: 312 opportunities stuck more than 30 days, 1,847 contacts dormant 9+ months untagged, 47 missed calls in 7 days unanswered, 12 cancellations in 30 days un-followed. Total estimated leak: $187,000 over the next 90 days at your current close rates.
Then you text:
"Fix the top 3. Send the messages from my Gmail and SMS. Show me everything before it goes."
Clint drafts every message in your voice, shows you the queue, sends on approval. No Workflow build. No Zap. No Mailchimp.
Text Clint: "Audit my entire revival inventory across GHL and Gmail. Group by leak type. Sort by dollar size." Text Clint: "Find every cancelled appointment in the last 90 days that never got a follow-up text. Draft the message and queue them for tomorrow morning." For specific revival workflows inside GHL, see our revive cold leads in GoHighLevel post and our mass email customers from GoHighLevel post. For the broader operating system, see no lead left behind.
Two real audits
A residential HVAC contractor in Phoenix ran the audit and found 4 of the 8 leaks active. The biggest was missed calls (#7): his shop line forwarded to RingCentral and only 30 percent of inbound calls were ever logged in GHL. After 60 days of plugging the gap, he booked 23 additional jobs at an average $1,800 ticket. $41,000 recovered.
A drain cleaning company in Tampa ran the audit and found leaks #1 (62 stuck opportunities), #5 (no winback for 1,200 former customers), and #8 (89 cancellations un-followed). The owner spent one Saturday building 3 Workflows. In the next 90 days they recovered 47 jobs across the three leaks. The owner told us the cancellation Workflow alone "paid for our entire CRM stack for two years."
Sources
- ServiceTitan, AI in the Trades Report, 2025
- Hatch, Lead Reactivation and Cancellation Recovery Benchmarks, 2024
- Invoca, Inbound Call Conversion and Missed Call Cost Research, 2024
- LocaliQ, Home Services Cost Per Lead Benchmarks, 2024
- BrightLocal, Local Consumer Review Survey, 2024
- Bain & Company, Reichheld retention economics framework
- Owned and Operated podcast, John Wilson and Jack Carr episodes on CSR response time
- A1 Garage Door operational benchmarks, Tommy Mello public posts
Frequently Asked Questions
6 questions home service owners actually ask about this.
01How long does the full 8-point GoHighLevel audit take?
Manually, expect 6 to 10 hours to filter, count, and document each leak. With a tool like Clint, the audit is one text command and runs in under 5 minutes.
02Which leak is usually biggest in dollar terms?
Missed calls from non-GHL phone systems (#7) almost always wins by dollar size, followed by stuck opportunities (#1) and dormant contacts with no winback (#5).
03Can I fix all 8 leaks inside GoHighLevel alone?
You can fix 6 of the 8 inside GHL with disciplined Workflow building. Leaks #3 partially and #7 require external phone-system data and external email data, which GHL cannot read.
04Should I switch CRMs if my GoHighLevel is leaking?
No. Switching CRMs is a 6-month project that loses data and trains nobody. The leaks come from gaps in workflows and external data, not from the CRM itself.
05How often should I re-run this audit?
Quarterly. Most leaks reopen within 90 days as new Workflows replace old ones, agencies make changes, or staff turnover happens.
06What if I have multiple sub-accounts in GoHighLevel?
The audit runs per sub-account. The leaks are usually identical across locations because the templates were built once at the agency level.
See Clint in action
Clint is the pre-built AI for home service shops. Connect your CRM, email, and phone system in minutes and the agents run on your real data.