Cut missed lead follow-ups from one in four to almost none for a two-owner HVAC and plumbing company
Client snapshot
A family-run HVAC and plumbing company in the Phoenix area: two co-owners and four technicians. Around 30 paid leads a week come in from Angi, Thumbtack, Google Local Services Ads and the company website. Both owners spend the day driving between jobs, and they switch between Spanish and English depending on who they're talking to.
The problem
Lead emails landed in two different inboxes. Whoever saw one first called the customer from the truck, and the shared Google Sheet got updated at night if anyone remembered. Quotes, job stages and follow-up dates lived in text threads and memory. About one paid lead in four never got a second call, which at $30 to $80 per lead added up fast. Nobody knew which lead source actually turned into jobs, and job profit only showed up when the bookkeeper closed the quarter.
What we built
A job tracker the owners run by talking to WhatsApp, with the spreadsheet they already had as the record.
Every lead email from Angi, Thumbtack and Google is picked up by Make, parsed with a fixed parser for each source, and added as a row in the Leads tab with the source, customer, phone, job type and lead cost. Claude handles the occasional email that doesn't match the usual format. Duplicate leads are merged by phone number, and each lead is assigned to an owner by zip code.
At 7am each owner gets one WhatsApp message, sent as an approved template through the official WhatsApp Cloud API, listing only their own follow-ups due that day.
After a visit, an owner sends a voice note or a text to the business number, in Spanish or English: "Martinez on Elm, quoted 6,200 for the condenser, starting Thursday." Only the two owners' numbers are accepted. The voice note is transcribed, Claude pulls out the customer, quote, job stage, next follow-up date and any income or expense, and the matching row is updated. If two customers could match, it asks which one. Every update gets a one-line confirmation in the language it was sent in, and income and expenses land in the Transactions tab.
If any step fails, the owners get an alert on WhatsApp and email instead of a silent gap in the sheet.
Results, 90 days in
- Leads with no follow-up logged within 48 hours: about 1 in 4 → under 1 in 20.
- Time spent updating the sheet: around 5 hours a week → a few minutes, mostly voice notes from the truck.
- Cost per booked job is now tracked by lead source. The owners dropped their weakest source in month two.
- Job profit is visible every week instead of at quarter end.
Quote
"I talk to WhatsApp after every visit and the sheet is right for the first time since we started." Co-owner
Build snapshot
- Timeline: 5 business days, plus one week of live testing with real leads
- Stack: Make, WhatsApp Cloud API, Google Sheets, Gmail, OpenAI Whisper, Claude
- Investment: $1,800
- Who owned it: the office manager owns the lead routing rules and the message templates.
The pattern
This is the pattern we ship in the Missed-Lead Rescue engagement. Here the leads came in by email from paid marketplaces, and the follow-up ran through WhatsApp instead of SMS. If your team updates records from the road, the build is the same, with your channels and columns 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.