What counts as a "reactivation campaign," exactly
A reactivation campaign is not a single email. It is a short, sequenced series (usually 3 to 5 touches over 2 to 4 weeks) sent to a specific, defined list: people who paid you before and have not paid you since, past a reasonable window for your trade. For a roofer that window might be 3 to 5 years. For an HVAC company running maintenance plans, it might be 12 to 18 months since the last tune-up. For a pressure washing outfit, it could be as short as one season.
The sequence has a job to do beyond "say hi." It reminds the customer who you are, gives them a specific, low-friction reason to act (a seasonal check, a referral thank-you, a plan renewal, a simple "still happy with the work?" check-in), and makes responding as easy as replying to a text or tapping a link. It is not a newsletter. It is not a blast. It is a targeted push at a defined list with a start date and an end date.
The trigger for building one is almost always the same realization: an owner looks at their customer list, sees hundreds or thousands of names who already paid once, and realizes almost none of them have been contacted since the invoice cleared. That list sat there generating zero dollars while the owner kept buying new leads to fill the same calendar those old customers could have filled for free.
- Defined list. Past customers past a set window, pulled from your job history or CRM, not your whole database.
- Sequenced touches. 3 to 5 messages across email and SMS, spaced days apart, each with a slightly different angle.
- A specific ask. Book a tune-up, claim a referral credit, review the work, renew a plan. Never a vague "thinking of you."
- A close date. Reactivation campaigns run in a window, not forever. That urgency is part of why they work.
Get this right once and it becomes a repeatable play: a seasonal sweep you run every spring and fall, not a one-off experiment.
Why an old customer list outperforms a fresh lead list
Every new lead you buy or earn has to be sold from zero. The homeowner does not know your name, has not seen your work, and does not know if you show up on time. You are spending money and effort just to get them to trust you enough to answer the phone.
A past customer skips all of that. They already know your crew showed up, did the work, and did not disappear with a deposit. They have already handed over a card number once. The only question left is whether you crossed their mind at the moment they needed you again, and reactivation campaigns exist to answer that question for them before a competitor's yard sign does.
| What you are working with | Cold lead (ads, marketplace) | Past customer (reactivation) |
|---|---|---|
| Trust already established | None | Yes, from the last job |
| Cost to reach them | Per click or per lead | Cost of an email/SMS platform |
| Competing for attention | Often, shared or auction-priced | Rarely, direct message to them |
| Decision cycle | Full sales process | Short, often a single reminder |
| Typical response | Depends on channel and season | Usually the strongest list you own |
This is not a claim that reactivation replaces new-lead generation. It does not. It is a claim that most contractors are sitting on an asset they already paid to build (their own customer list) and are not using it at all, while simultaneously paying for cold leads to solve the exact same problem: an empty slot on the calendar.
The trades where this matters most are the ones with a natural repeat cycle: HVAC (seasonal tune-ups), roofing (storm damage, aging roofs, referrals from neighbors), pest control and lawn care (recurring service), and remodelers (the kitchen leads to the bath, the bath leads to the deck). If your trade has any repeat or referral pattern at all, your old customer list is underpriced attention sitting in a spreadsheet or a CRM export nobody has opened in a year.
Who should be on the reactivation list (and who should not)
Not every name in your job history belongs on a reactivation list. Sending to the wrong people wastes the campaign and, worse, can hurt your sender reputation with email providers or trip TCPA rules on the SMS side. Build the list with the same discipline you would use to bid a job: define the criteria first, then pull the names.
Start with your job history or CRM export and filter for:
- Actual past customers. People who paid for completed work, not quoted-but-never-closed leads (that is a different sequence, covered in quote follow-up).
- Past the natural repeat window for your trade. Long enough that a nudge is welcome, not so long the relationship has gone cold and the contact info is stale.
- A working email or phone number. Bounced emails and disconnected numbers do not just fail to convert, they can flag your sending reputation. Clean the list before you send anything.
- Consent on file for SMS. If you never got explicit opt-in for texting, that segment goes into an email-only track. Do not text people who never agreed to be texted. That is a TCPA problem, not a marketing nuance.
Leave off the list: anyone who explicitly asked not to be contacted, anyone with an open dispute or unresolved complaint (a reactivation email to an unhappy customer just reopens the wound), and anyone still under an active warranty or service agreement (they are not dormant, they are current, and belong in a different track).
One more filter worth running before you send: segment by job type and value. A homeowner who bought a full roof replacement gets a different message than one who bought a single repair. A maintenance-plan lapse gets a different message than a one-time remodel. Reactivation works best when the ask matches what that specific customer is actually likely to need again, not a generic "we miss you" blast to the whole list at once.
What the sequence actually looks like, message by message
A reactivation sequence is short on purpose. Nobody wants a monthlong drip from a contractor they have not heard from in two years. The goal is 3 to 5 touches across 2 to 4 weeks, each one earning the right to the next.
- Touch 1, email: the reminder. Short, personal-feeling, references the actual work you did if your CRM has the job detail ("It's been about three years since we did your roof on Maple Street"). No hard pitch yet. The ask is soft: a seasonal check, an offer to look at anything that has come up, or simply an invite to reply if anything needs attention.
- Touch 2, SMS (if opted in): the nudge. Short and direct, 3 to 5 days later. References the email lightly. Gives a specific, easy action: reply YES for a callback, or a link to book a slot.
- Touch 3, email: the specific offer. This is where the ask gets concrete: a seasonal tune-up slot, a referral credit for sending a neighbor, a plan renewal with a real expiration date. Vague "let us know if you need anything" emails underperform a specific, dated offer every time.
- Touch 4, SMS or email: the close. Final touch in the window, often with a real deadline ("booking through the end of the month"). This is not manufactured urgency for its own sake, it should match a real scheduling constraint (crew availability, seasonal cutoff, plan pricing that changes).
- Optional touch 5, email: the quiet close. For anyone who has not responded, a short note that you will stop the sequence and they can reach out whenever they are ready. This protects your sender reputation and respects the list; it is not a place to guilt anyone.
Every touch should make replying, calling, or texting back the path of least resistance. A phone number and a text-back option belong in every message. Someone reading this on a phone in a driveway should not have to hunt for how to reach you.
Deliverability, TCPA, and the mistakes that get a list flagged
Reactivation lists are old by definition, which makes them riskier to send to than a fresh opt-in list, and that risk is exactly where most DIY attempts go wrong. Email providers watch bounce rates, spam complaints, and engagement closely. A stale list blasted without cleanup can tank your sender reputation for every email you send after, including invoices and appointment confirmations.
The practical safeguards, in order of importance:
- Clean the list before the first send. Verify emails, remove hard bounces immediately, and do not keep hammering an address that has failed twice.
- Warm up if the list is large or the domain is new to bulk sending. Sending 5,000 emails in one shot from a domain that has never sent bulk mail is a fast way to land in spam folders for everyone, not just this campaign.
- Respect consent on SMS specifically. TCPA requires prior express consent for marketing texts. "They gave us their number for the job" is not the same as consent to text them marketing offers years later. If consent is not clearly on file, that segment is email-only.
- Give an easy opt-out, every message. CAN-SPAM requires it on email; a clear STOP path is standard and expected on SMS. This is not optional legal boilerplate, it is what keeps your number and domain from getting flagged as spam by carriers and providers.
- Watch complaint rate, not just open rate. A handful of spam complaints on a small campaign can do more damage to future deliverability than a mediocre open rate ever will.
None of this is exotic. It is the same discipline any legitimate sender uses. The difference is that a reactivation list, being old and less engaged by definition, has less room for error than a fresh newsletter list. Treat the compliance and deliverability side as part of the campaign, not an afterthought bolted on after the copy is written.
How often to run it, and what a realistic result looks like
Reactivation is not a one-time event. The strongest version of this is a seasonal sweep run on a schedule that matches your trade's natural cycle: spring and fall for HVAC and lawn care, post-storm season for roofing, annually for remodelers checking in on last year's kitchen client about the bath they mentioned wanting. Run it, let the list rest, run it again next season with a fresh angle.
Set expectations honestly. Not every name on the list will respond, and that is normal, not a sign the campaign failed. A list of past customers with real intent behind the outreach (a genuine seasonal reason to reach out, a specific and dated offer, an easy way to respond) will consistently outperform cold outreach to strangers, because you are working a warm list instead of starting from zero. The actual response rate depends heavily on list quality, how long since the last job, and how specific the offer is. A generic "we miss you" blast underperforms a dated, specific offer sent to a well-segmented list every time.
Track it the way you would track any other lead source: jobs booked from the campaign, revenue from those jobs, and cost of the platform and time to run it. That comparison, cost per booked job from reactivation versus cost per booked job from paid leads, is usually the number that convinces an owner to make this a standing quarterly habit instead of a one-off experiment.
The other thing worth tracking: referrals and reviews generated as a side effect. A reactivation touch that reminds a happy past customer you exist is also a natural moment to ask for a review or a referral, since they are already thinking about your work. Build that ask into the sequence rather than running it as a separate campaign, and one list does two jobs.
The tools and the manual-labor version, and where they differ
You do not need an enterprise platform to run a reactivation campaign. A basic email service provider that supports segmented lists and a texting platform that handles opt-in and STOP compliance automatically will cover the mechanics. What matters more than the tool is whether the list is clean, the segments are real, and the offer is specific. A five-dollar-a-month email tool used with a well-built list beats an expensive platform pointed at a messy one.
The manual version looks like this: export job history to a spreadsheet, filter by date and job type by hand, write the sequence in a plain email client, and track replies in a shared inbox or a notes doc. It works for a shop with a few hundred past customers and an owner willing to spend a weekend on it. It gets painful fast past a thousand names, multiple trades, or more than one sequence running at a time, because manual tracking of who got which touch and who replied breaks down exactly when the list is large enough to matter most.
Where this tends to go wrong without a system behind it: the sequence gets sent once and never repeated, because building the list and writing the copy took a full weekend and nobody wants to redo that work every season. The fix is not more effort, it is turning the one-time push into a repeatable template: the segmentation logic, the message copy, and the send schedule get built once and reused, with only the seasonal specifics (the offer, the deadline, the reference to the actual work) swapped in each time.
- List segmentation. Build the filter logic once (trade cycle, job type, consent status), save it, and rerun it each season instead of starting from a blank spreadsheet.
- Message templates. Write the 3 to 5 touch sequence once as a template with placeholders for the job detail, the date, and the offer, so the next run is an edit, not a rewrite.
- Compliance built in. Opt-out links, STOP handling, and consent flags should live in the list itself, not be reconstructed by hand every time someone sends.
This is the piece that separates a contractor who ran reactivation once as an experiment from one who runs it every season as a standing part of the business. The second version is where the real return shows up, because the cost of each additional run drops close to zero once the system exists.