Open your field service software and count the customer records with no job in the last 18 months. In most shops that number is bigger than the list of active customers. Each of those people already hired you once, or asked for a quote. Nobody has contacted them since the invoice went out.
Marketers call this "database reactivation." Owners usually say "reactivate old customers" or "win back past customers." It is the same job: contact people you already have a record for, find the ones who need something now, and book them. This guide covers how to do it without burning your list, your sender reputation or your legal position.
It is the sibling of estimate follow-up, the cluster pillar. Estimate follow-up works the warmest slice of your database, people with an open price. This post works the rest.
Start with the list, not the message
Most reactivation campaigns fail before anyone writes a word, because the list is bad. Contracting Business, in a February 2025 article by an HVAC marketing agency, recommends cleaning the list first:
- Remove customers you should not contact. Anyone with an unresolved complaint, a collections issue or a "do not service" flag.
- Remove people outside your service area. Movers, and addresses that no longer match a customer you can reach.
- Update contact information. Old numbers and email addresses hurt delivery. The article notes that carriers and spam filters keep getting stricter.
- Focus on people likely to need service. The article describes one HVAC contractor that dropped 15% of its inactive list and kept customers serviced in the last three years, and reports a 35% higher email response rate. That is a single unnamed example with no baseline, so treat it as a direction, not a benchmark.
Also look for duplicates. A customer with two records and a landline will get your message twice, which does more damage than skipping a message altogether.
Split the list by why they went quiet
One message to everyone is the weakest version of this. A homeowner who bought a $12,000 system in 2021 is not the same as one who called for a drain clog in 2022 or one who let a maintenance agreement lapse last fall. Build segments from fields you already have:
| Segment | What you know | A reason to reach out |
|---|---|---|
| Lapsed agreement holders | They bought a maintenance plan and did not renew | Tune-up or renewal offer, referencing their last visit |
| Overdue for service | 12 or more months since their last maintenance visit | Seasonal reminder, before cooling or heating season |
| Aged equipment | System installed 10 or more years ago | A no-pressure replacement check |
| Open estimate, never sold | You quoted and they went quiet | Follow-up on that specific quote (see the estimate guide) |
| One-time repair customers | Single visit, no agreement | Introduce the maintenance plan |
| Canceled or no-show appointments | They booked and did not come through | A simple reschedule offer |
Start with the segments closest to a purchase: lapsed agreements, overdue maintenance and old estimates. Those people have already shown they buy from you. A cold one-time drain customer from 2020 is the last segment to work, not the first.
Get consent before you text an old list
This is the step most reactivation guides skip, and it is where the real risk sits. Texting an old list is not the same as emailing it, and "they were my customer" does not settle whether you may send marketing texts to a given person.
What matters includes how and when each number was collected, what the person agreed to receive, whether they have since opted out, and what type of message you are sending. A reminder tied to a service they requested is a different kind of message from a promotional offer.
We cover the rules in plain English, with sources, in TCPA texting rules for contractors. Read it before you send a single message to a list you did not collect text consent for. Two practical points that hold regardless of the details:
- Keep a consent record. For each number, know where it came from, when and what the person agreed to. If your field software does not store that, add a field now.
- Honor opt-outs everywhere. One "stop" reply should remove the number from every campaign, not only the one that triggered it.
If you text from a business number, there is also a carrier registration step that decides whether your messages are delivered at all. Unregistered traffic can be blocked without any error on your side.
This is general information, not legal advice. Have counsel review your list, your consent records and your campaign before you send at scale. Where consent is unclear, email and a phone call from a person are the safer channels while you sort it out.
Write messages that sound like you
Keep messages short, specific and tied to something true about that customer. Generic "we miss you" messages get ignored. Three examples to adapt:
Overdue maintenance
Hi [First name], this is [Name] at [Company]. Our records show your [AC/furnace] was last serviced in [month year]. Cooling season is close, and a tune-up now is easier to schedule than in July. Want me to hold a time this week? Reply STOP to opt out.
Lapsed agreement
Hi [First name], [Name] at [Company]. Your maintenance plan lapsed in [month]. If you want to restart it, I can reinstate it with [specific benefit]. Reply YES and I will call you, or call [Phone]. Reply STOP to opt out.
Aged equipment
Hi [First name], [Name] at [Company]. Your [system] is about [X] years old. No pitch: we can do a quick check and give you a straight answer on how much life is left. Interested? Reply STOP to opt out.
Do not invent a discount or a deadline to make the message work. If you offer one, make it real, and keep the amount in line with what the job can afford. A small discount on a tune-up is a common tactic in trade writing. A deep discount on a replacement trains customers to wait.
Pace the campaign
Do not send to the entire list on one day. Three reasons:
- Your phones. If 300 people reply on the same morning and your CSRs cannot answer, you have made a missed-call problem and wasted the list.
- Your capacity. Booking 80 tune-ups in a week you cannot staff is a different failure.
- Your learning. A small first batch of 100 to 200 names tells you which segment and message work before you commit the rest.
Run waves by segment, starting with the best, and keep the wave size tied to what your schedule can absorb. Time sends to the season: tune-up reminders ahead of cooling and heating season, and replacement outreach when you have install capacity.
Every reply should land with a person quickly. A reactivation campaign that generates interest and then answers it three days later wastes the effort. Speed matters here too.
What the vendor numbers do and do not tell you
If you search for this topic, you will find case studies with large revenue figures from recovering dormant contacts. They are written by agencies and software companies, describe single customers and rarely show a baseline. We did not use them. Contracting Business's piece includes contractor anecdotes with the same limitation, because they are reported without baselines.
The honest summary: nobody has published a trustworthy benchmark for what share of a dormant trades list will book. Your own tracking is the only number that counts.
Measure booked jobs, not replies
Track these for each wave, by segment:
- Delivered messages (not just sent), and opt-outs
- Replies, and how many were real interest
- Appointments booked
- Jobs sold and revenue, tied back to the campaign source in your field software
- Opt-out rate, which tells you if the message or the list is wrong
Reply rate is a vanity number. A campaign that gets 40 replies and books two jobs is not working. The score is booked jobs and the revenue they carry, which is also how our Booked-Jobs Recovery System reports on dormant database reactivation, one of its eight components. If you want help pulling and segmenting your list, our AI lead generation and follow-up work is where this lives.
A simple first project
If you do nothing else, do this in one week:
- Export every customer with no job in the last 12 to 36 months.
- Remove do-not-service, out-of-area and duplicate records.
- Tag lapsed agreement holders and open estimates.
- Check consent status for each channel you plan to use.
- Send one wave of 100 to the best segment, by the channel you have consent for.
- Track booked jobs for 30 days before sending the next wave.
Frequently asked questions
How do I reactivate old customers without annoying them?
Contact them about something true and specific, such as a tune-up due or a lapsed plan, keep it short, honor opt-outs immediately and do not repeat yourself. Segment the list first so the message fits the customer.
What is database reactivation?
It is the marketing term for contacting past customers and old leads in your own records to win repeat business. For a trades company, that means lapsed agreement holders, overdue maintenance customers and old estimates in your field service software.
Can I text my old customer list?
It depends on the consent you have for each number and the type of message. General information, not legal advice: read TCPA texting rules for contractors and confirm with counsel before sending.
How old is too old for a customer list?
There is no fixed cutoff. One Contracting Business example focused on customers served in the last three years. Start with the most recent segments and test older ones in small batches.