More than 70% of dormant customers stop calling not because of price, but because they felt forgotten - and one targeted message can bring them back. Jupiter-Tequesta Air Conditioning, Plumbing & Electric proved it: they sent one email to past customers and pulled in $60,000+ in total campaign revenue.
They didn't run a single ad. They just remembered to talk to the people who already trusted them.
If you have 500 past customers sitting in a spreadsheet or a CRM you barely log into, you are holding the same asset. The only difference is whether you use it.
Why do contractors leave this money on the table?
Most contractors are not ignoring their past-customer list on purpose. They just never built a system to work it.
Robin Cody, Director of Marketing at Cody & Sons Plumbing, Heating & Air in Dallas, said it plainly: "Before, we just didn't have the time or tools to target existing customers." That's most shops.
FieldEdge analyzed contractor customer churn patterns and found that roughly 70% of customers who stop calling don't leave because of price. They leave because they felt forgotten and never heard from you again.
What does reactivation actually cost vs. what you're paying for new leads?
WebFX's 2026 home services marketing benchmarks put the average cost per lead for HVAC and electrical at $100 to $250 per lead through paid ads. That's what you're paying right now to reach someone who has never met you, never seen your truck, never shaken your tech's hand.
Contractor Marketing Pros audited more than 200 HVAC companies and tracked one client who sent a simple "winter prep" email to 2,000 past customers. Total cost: $150. Result: 17 service calls at $285 average each, producing $4,845 in revenue from a $150 spend.
That's a cost per sale of $8.82. Compare that to the $100 to $250 you're paying Google or Angi for a lead that may or may not pick up the phone.
If you want to understand the broader revenue math behind how to scale an HVAC company, the past-customer list is the single most underutilized lever most shops have.
Why segmenting by service type is what makes this work
Here's where most contractors get this wrong. They pull their list, drop everyone into Mailchimp, write one generic "we miss you" subject line, and wonder why open rates are low.
Campaign Monitor's research, cited in Lean Marketing's 2024 analysis, found that segmented campaigns produce 760% more revenue than non-segmented sends. That number is not a typo.
The reason is simple: an HVAC customer who got a tune-up from you last spring does not care about your drain cleaning special. But they will care deeply about a spring AC inspection offer timed to the week before temperatures spike.
The segmentation logic for a contractor list is straightforward:
| Segment | Trigger Message | Best Timing |
|---|---|---|
| HVAC | Seasonal tune-up offer | March (AC) / September (Heat) |
| Plumbing | Inspection or pre-freeze pitch | October / April |
| Electrical | Safety check / panel inspection | June / November |
| Multi-trade | "It's been a while" with service menu | Any slow season |
Those natural touchpoints per year are free revenue sitting on a calendar you already own. If you're thinking about how to sell maintenance agreements as a follow-on product, this is exactly the customer base to pitch - people who already bought from you once.
How do you actually build this without an IT team?
This is a no-code flow. You do not need a developer. You need 3 hours and a CSV export from your CRM.
Step one: pull your customer list and filter by last job date greater than 12 months. If you're on ServiceTitan, Jobber, or Housecall Pro, this is a standard report. Export it as a CSV.
Step two: tag each row by service type based on the job category in your records. HVAC, plumbing, electrical. If your data is messy, do a rough sort by job description keyword - "furnace," "drain," "panel" - and tag manually for the first pass. Workable data beats perfect data every time.
Step three: import into GoHighLevel, Mailchimp, or whatever platform you use, then create separate segments for each trade. Build one email sequence per segment - ideally 2 to 3 touches spaced a week apart. The first message is a soft "we've been thinking about you and the season is changing," the second is a specific offer, and the third is a last-chance or value-add close.
GoHighLevel's Starter plan runs $97/month and handles the automation natively. If you're already on Jobber or ServiceTitan, you may already have email campaign tools included in your plan.
For contractors thinking about how to grow their plumbing business or looking at HVAC growth with service agreements, this reactivation flow is the foundation. You build the list hygiene and segmentation once, then it runs on autopilot every quarter.
See the Full Reactivation Recipe
Get StartedWhat kind of results should you actually expect?
Lead Care Team, a contractor-specific reactivation service, tracks industry benchmarks at 3 to 8% response rate on well-executed dormant customer campaigns. Of those who respond, roughly 20 to 30% convert to a booked job.
Run the conservative math: 1,000 past customers at 3% response equals 30 contacts. At 25% conversion, that's 7 to 8 booked jobs. At $500 average ticket, that's $3,500 to $4,000 from one campaign.
The aggressive case - 8% response, 30% conversion - produces 24 booked jobs at $500 each, totaling $12,000 from one email sequence to people who already like you.
ServiceTitan has documented that simply having a defined follow-up process in place can recover up to $1 million per year in revenue that HVAC contractors were previously leaving uncollected. That figure comes from their own published case study data across contractor accounts.
For anyone tracking home service KPIs, reactivation rate on dormant customers deserves its own metric on your dashboard. Across dozens of contractor accounts, this number alone can shift monthly revenue by 10 to 20% without adding a single new lead source.
What about compliance - can you get in trouble for emailing or texting past customers?
Email to past customers you have an established business relationship with is lower risk than cold outreach, but you still need to follow CAN-SPAM rules: a clear unsubscribe option, your physical business address in the footer, and no deceptive subject lines. GoHighLevel and ServiceTitan Marketing Pro handle this automatically in their templates.
For SMS, the TCPA (Telephone Consumer Protection Act) applies and non-compliance can cost $500 to $1,500 per unsolicited message. Stick to customers who gave you their number directly and have an existing relationship.
Most platforms will flag or block campaigns that don't include opt-out language. Build your list from your own CRM, never from a purchased contact list.
If you're also thinking about how to reduce no-shows as part of your follow-up infrastructure, a compliant SMS workflow built for reactivation can do double-duty as an appointment reminder system.
Frequently Asked Questions
Do this today
Log into your CRM right now and pull a report filtered by last job date greater than 12 months. If that list has more than 100 names on it, you have a campaign worth running this week.
For contractors also focused on increasing revenue per technician, pairing this reactivation flow with upsell messaging inside each job sequence can push average ticket values up alongside booking volume. The full automation setup, copy framework, and segmentation logic are in our step-by-step recipe for dormant customer reactivation - 3 hours of setup, and it runs every quarter without you touching it again.