Short version: Your past customers are the cheapest appointments you will ever book. Clean the list, split it into a few groups, and message each group when there’s a real reason: maintenance is due, the season is turning, the warranty check is coming, or you’re working on their street. Offer something useful rather than a deep discount, follow the consent and unsubscribe rules, and count the appointments it produces.
Plain definitions
- Reactivation: reaching out to past customers, or past leads, to win new work from them.
- Segment: a group of contacts with something in common, such as the type of job or when it was done.
- Consent: a customer’s permission to receive marketing messages, which matters most for texts.
- Converted lead: a lead that turned into an appointment.
Your past customer list is a shoebox of 90s baseball cards in the closet. It’s worth more than you think, but only if somebody takes it out and looks.
These people already trust you. You already have their address and number. And most companies never contact them again unless they call first.
Start by cleaning the list
A messy list wastes money and annoys people. Before anything goes out:
- Remove duplicates. One customer, one record.
- Remove opt-outs. Anyone who unsubscribed or replied STOP stays off the list.
- Fix or drop bad contact info. Bounced emails, disconnected numbers.
- Flag people who moved. The new owner of the house can be a great lead, but they aren’t your past customer.
- Note who agreed to texts. Text only the people who said yes.
Who to message: five groups
| Group | Example | Reason to reach out |
|---|---|---|
| Maintenance customers | HVAC tune-up 12 months ago | Next tune-up is due |
| Big-ticket past jobs | Roof or system installed years ago | Inspection or warranty check |
| One-time repair customers | Fixed a leak two years ago | Seasonal check, related service |
| Unsold estimates | Quote older than 60 days | Still need it? Schedule or price update |
| Happy customers | Left a great review | Referral ask |

Each group gets a different message. A one-size-fits-all blast to the whole list is how reactivation turns into spam.
When: tie every message to a real trigger
- The anniversary of the job. “It’s been a year since we serviced your system.”
- The season. AC checks before summer, furnace checks before winter, roof checks after a big storm.
- Equipment age. Systems and roofs reaching the age when problems usually start.
- Work nearby. “We’re on your street next week” makes scheduling easy for them and for you.
A message with a reason gets read. A message without one gets deleted.
What to offer
- Something useful. An inspection, a tune-up, a check on the work you did before.
- Priority scheduling. First pick of appointment times before the busy season.
- A maintenance plan, if you offer one. Reactivation is the natural time to ask.
- One offer per message. Same rule as a good mailer.
Skip the deep discount. Past customers already chose you once. A good reason to call beats a coupon.
Three messages to start from
HVAC tune-up reminder, by email:
Subject: Your AC tune-up is due
Hi Tom, it’s been a year since we serviced your system. A quick tune-up before the summer rush can catch small problems before they turn into a no-cool call in July. Reply or call us to grab a spot. Past customers get first pick of dates through May 15.
After a storm, roofing, by text to customers who agreed to texts:
Hi Linda, this is Example Roofing. After Tuesday’s storm, we’re offering free roof checks for past customers in your area. Want us to take a look? Reply YES and we’ll set a time.
An unsold estimate, 60 days later:
Hi Mark, Dana from Example Plumbing. A couple of months ago we quoted your water heater replacement. Is that still on your list? I can update the price and get you on the schedule if it is.
A simple calendar for the year
- Every month: anniversary reminders go out automatically for jobs done that month last year.
- Each season: one message to the matching group, such as AC checks in spring and furnace checks in fall.
- After major weather: storm or freeze checks for the trades it affects.
- Twice a year: a referral ask to your happiest customers.
That’s enough to stay in touch without wearing out your welcome.
Channels, and the rules for each
This is not legal advice. Have your attorney review your setup. The basics:
- Email: the FTC’s CAN-SPAM compliance guide lays out the rules for commercial email. Include a clear way to opt out, your physical mailing address and an honest subject line, and honor unsubscribes within 10 business days.
- Text: marketing texts generally need the customer’s prior written consent, and opt-outs must be honored. Only text people who agreed to it.
- Mail: no consent needed, and past customers are the best list you’ll ever mail. See direct mail for home services.
- Phone: a personal call to a best customer still works. Keep it to people you have a real relationship with.
Don’t forget the leads that never bought
Past customers aren’t the only list worth working. Leads who called but never booked, and estimates you lost on timing, are a second list. They already know your name, and their situation may have changed.
Treat them with the same care: a real reason to reach out, one offer, and the same consent rules. Keep them in their own group, so you can see whether they respond differently from past customers.
What a reactivation push can produce
These numbers are made up to show the method. Swap in your own.
| Step | Illustrative number |
|---|---|
| Past customers on the list | 2,000 |
| Reachable after cleanup | 1,400 |
| Book an appointment, at 3% | 42 |
| Closed jobs, at 50% | 21 |
| Revenue at a $1,200 average ticket | About $25,000 |

The cost is a few emails, some texts and maybe a mail drop. And these customers tend to close at higher rates, because they already know your work.
Track it like any other source: give reactivation its own lead source in your CRM, so the appointments and jobs it produces show up in your monthly numbers.
Field note
During a shoulder-season lull, a client was preparing to ramp up ad spend to fill a two-week gap in the schedule. Instead, we pulled a segment from their CRM: past customers who received estimates over $1,500 in the last nine months but never closed. We ran a simple, non-pushy SMS reactivation campaign offering a small seasonal booking incentive. Within 48 hours, they booked six high-ticket jobs, completely filling the open schedule slots at virtually zero cost per lead. Database reactivation is almost always the fastest, cheapest way to plug a seasonal hole before turning up the ad faucet.
What we would check first in your account
- How many past customers you have, and when each last heard from you.
- Whether the list is clean: duplicates, opt-outs, bad numbers and bounced emails.
- Which customers have agreed to receive texts.
- Whether maintenance and anniversary reminders go out automatically.
- Whether reactivation has its own lead source, so you can count what it books.
Want help running it? See our reactivation and marketing automation work.


