Recovered 11 jobs from old estimates in one quarter for a residential roofing company
Client snapshot
A residential roofing company with three crews, two estimators and one office manager. Replacements and repairs, mostly from storm damage and older roofs. GoHighLevel held every lead, estimate and job.
The problem
Two things never got done. Estimates were followed up once, maybe twice, and then left. Homeowners who said "not yet" in spring were never asked again in autumn, after the next storm. Hundreds of old estimates sat in the CRM with nobody working them.
Reviews were the other gap. Roofing customers are happy on the day the job finishes, and the crew is already at the next house. Nobody asked, so the company had far fewer reviews than its competitors, despite doing better work.
What we built
Two flows that run on their own, both inside the GoHighLevel account the company already had.
When a job is marked complete, the homeowner gets a text the next day thanking them and a one-tap link to the Google review page, then an email the day after if they haven't left one. Replies that are real questions go to the office manager. "Thanks!" replies are logged and left alone.
Every estimate that hasn't turned into a job enters a 30, 60 and 90-day cadence. Claude writes each message from the estimate notes, so a homeowner who was waiting on an insurance decision hears something different from one who wanted to wait for spring. After a storm passes through the area, the cadence adds a short check-in to everyone in the affected zip codes. Anyone who replies gets routed to an estimator, and anyone who says stop is removed at once.
Every Monday the owner gets a summary: reviews received, reactivated estimates, replies waiting and jobs booked from old leads.
Results, one quarter in
- Old estimates that turned into booked jobs: 11 in the first quarter, from a list nobody had touched.
- Google reviews: about three a month → about 18.
- Estimates followed up past the first week: around 10% → every one.
- The office manager spends minutes a week on it, answering the replies that need a person.
Quote
"Those estimates were dead to us. Eleven of them turned into roofs." Owner
Build snapshot
- Timeline: 5 business days
- Stack: GoHighLevel, n8n, Claude, Twilio
- Investment: $1,800
- Who owned it: the owner approved the message tone; the office manager handles the routed replies.
The pattern
This is the pattern we ship in the Review & Reactivation engagement. If your CRM is full of estimates nobody calls back, the build is the same, with your job stages swapped in.
This is an illustrative composite drawn from operator engagements. Names, identifying details, and exact metrics are anonymised. The workflow, stack, and approach are real.
Looks like your situation?
A 30-minute call tells us whether the same pattern fits your operation, and what it would cost to ship it.