How we built a client reactivation engine that scores dormant contacts and sends personalized win-back campaigns. Turn your CRM's dead list into revenue.
Every service business has dormant clients - people who came in once or twice, had a good experience, and just... stopped. Not because they were unhappy, but because life happened. HVAC customers who got their tune-up 18 months ago. Dental patients overdue by 8 months. Therapy clients who "took a break" 6 months ago.
These aren't cold leads. These are people who already trust you, already gave you their contact info, and already paid you money. They know your office, your team, your process. The friction to rebook is a fraction of what it takes to convince a stranger off a Google ad.
And yet most service businesses treat these contacts the same way they treat a list they bought from a broker - they ignore them. The CRM fills up, contacts go stale, and nobody touches the list until someone asks "why are we slow this month?"
Reactivating past clients costs roughly 5-7x less than acquiring new ones. You've already spent the marketing dollars to get them in the door. The relationship exists. You just need a system that reminds them you're still here - and gives them a reason to come back.
The question isn't whether your dormant list has value. It does. The question is whether you have a system to extract it. Check out our industry-specific automation approaches to see how this plays out across different verticals.
Generic blast emails get ignored. "We miss you!" texts feel creepy from a business. The problem isn't the channel - it's the lack of segmentation, personalization, and timing strategy.
A client who last visited 90 days ago needs a completely different message than one who's been gone 2 years. A repeat customer with 8 past appointments deserves a different approach than a one-visit wonder who came in for a Groupon deal and never returned.
When you blast the same "come back" message to your entire inactive list, three things happen: (1) your best reactivation candidates get a message that feels impersonal, (2) your long-gone contacts get annoyed and opt out - burning the contact permanently, and (3) your team has no way to prioritize follow-up because everyone looks the same.
The fix is a system that scores contacts before reaching out and tailors the message to the segment. That's what multi-touch sequences are built for - if you want to understand how SMS and email workflows chain together in GoHighLevel, read our breakdown of GHL follow-up sequences.
Here's the high-level architecture. The engine scans your CRM for contacts who've been inactive beyond their service cycle. "Inactive" isn't a flat number - it's calibrated per industry:
Each contact that crosses their threshold gets scored A through D based on four factors: recency, contact info quality, engagement history, and repeat customer status.
Grade A (80+ score): Recent lapse, has both phone and email, repeat customer with multiple past appointments. These are your highest priority - they get personalized SMS plus email, and your team gets a notification to follow up personally if they don't respond within 48 hours.
Grade B (60-79 score): Moderate lapse, decent contact info, may be a repeat or single-visit customer. Standard campaign - SMS on Day 1, email on Day 4, one follow-up SMS on Day 7.
Grade C (40-59 score): Long lapsed, partial contact info (maybe email only, no phone). Lighter touch - email only, with a compelling seasonal offer.
Grade D (below 40 score): Very old contact, minimal info, no engagement history. Skip entirely or send one very light re-engagement email with no offer. If they don't respond, archive them.
Once scored, the engine generates personalized campaigns for each segment: Day 1 SMS with a seasonal hook relevant to the service ("Your AC hasn't been checked since last summer - let's make sure it's ready before the heat hits"), Day 4 follow-up with a specific offer, Day 7 email with a longer narrative about what's changed at the practice since they last visited.
One HVAC client reactivated 23 dormant accounts in the first month - $8,050 in recovered revenue from a $97/month engine.
Hi Sarah,
It's been about 6 months since your last HydraFacial with us, and honestly - we've missed having you in the chair. Your esthetician Lauren still talks about how great your skin responded to the treatment.
We're running a Spring Renewal special this month: book your HydraFacial before March 31 and we'll add a complimentary LED light therapy session (normally $75).
Your favorite Thursday 10am slot is open next week - want me to hold it?
Book My AppointmentLauren & the team at Glow Studio
(480) 555-0192 · Scottsdale, AZ
A Grade A reactivation email for a medspa - personalized with the client's treatment history, esthetician name, and preferred time slot.
First 90 days of reactivation results for a multi-location medspa in Arizona.
See the full product details and pricing on the Client Reactivation Engine page.
Not all dormant clients are equal. The scoring system exists to make sure your best opportunities get the most attention and your team isn't wasting time on dead-end contacts. Here's what the score looks at:
1. How long since last visit vs. their normal service cycle. A dental patient 7 months overdue is significantly hotter than one who's been gone 3 years. The engine weights recent lapses higher because the relationship is still warm - the client remembers you, probably still lives nearby, and likely still needs the service.
2. Do we have good contact info? Phone + email + first name = high score. Email only = moderate. No phone and no email = why is this contact in the system? Contacts with complete profiles convert at 3-4x the rate of partial profiles.
3. Are they a repeat customer? Someone with 5+ past appointments is far more likely to rebook than a one-visit customer. Repeat clients already chose you multiple times - they just need a nudge. The engine gives a significant score boost to anyone with 3 or more past visits.
4. Are they on a Do Not Disturb list? If they've opted out of SMS, replied STOP, or been flagged as DND - the engine skips them entirely. No exceptions. Reaching out to opted-out contacts doesn't just waste effort, it creates compliance risk.
The scoring dashboard segments 847 dormant contacts into priority tiers - each tier gets a different outreach strategy.
Run the scan monthly, not once. Client status changes - someone who was a D-grade six months ago might be a B-grade now if they engaged with a marketing email or visited your website. The engine catches these shifts automatically when it rescans.
You need four things: a CRM data export (contact list with last appointment date, appointment count, and contact info fields), a way to score contacts (a spreadsheet works, automation is better), an SMS/email tool for outreach, and message templates adjusted per industry and season.
The DIY version works at small scale. Export your contacts, sort by last appointment date, manually tag anyone over 90 days as "dormant," write a few reactivation messages, and send them through your existing tools. For a list of 50 contacts, this takes maybe 2-3 hours.
Where it breaks: scoring hundreds of contacts manually every month. Writing personalized messages for each segment. Adjusting the cadence based on who responded, who opened, and who opted out. Running it consistently - not just once when you remember, but every single month without fail.
That's where automation earns its keep. We build this on GoHighLevel because the CRM, messaging, and automation live in one place - no Zapier bridges, no CSV exports, no manual tagging. The contacts, the scoring, the campaigns, and the reporting all happen inside the same system. If you're evaluating whether GHL is worth the investment, read our honest breakdown: Is GoHighLevel worth it for small businesses?
Already know you want it managed? Check our managed automation plans - reactivation is included in the Builder and Elite tiers.
Reactivation doesn't exist in a vacuum. When a dormant client comes back, they re-enter your active customer loop - and that's where the compound effect kicks in.
Once they're back and they've had their appointment, the Review Engine automatically asks them for a Google review. A returning client who had a great experience is one of your highest-probability review sources - they already trust you, and now they feel good about coming back.
If they book and then no-show (it happens, especially with long-dormant clients testing the waters), No-Show Recovery catches them before they disappear again. The system sends a rebooking sequence within minutes of the missed appointment - not days later when the motivation is gone.
And once they're back in the active rotation, Seasonal Campaigns keep them engaged quarter after quarter. Spring AC tune-up reminders. Fall furnace checks. Holiday whitening specials. The client never goes dormant again because the system maintains the relationship automatically.
This is the compound effect of running multiple engines - each one feeds the next. Reactivation brings them back. Reviews build your reputation. No-show recovery protects the rebooking. Seasonal campaigns prevent future dormancy. See the complete system overview for how all the pieces connect.
Simple math. Average service ticket: $200-350. Engine cost: $97/month. You need one reactivated booking per month to break even. One.
Most businesses recover 10-20+ clients in the first month alone, because the dormant list has been sitting untouched for months or years. That initial wave alone can cover the engine cost for the entire year.
But here's the bigger picture: these are clients you've already paid to acquire. The Google Ads spend, the direct mail, the referral bonus, the time your front desk spent onboarding them - that marketing cost was spent years ago. It's a sunk cost. Reactivation is pure margin recovery. You're not paying to find new people. You're paying to remind existing people that you exist.
Compare that to the cost of a new patient or customer through paid ads - $50-200+ per lead depending on your market and industry. Reactivation costs pennies per contact in SMS fees and the monthly engine subscription. The unit economics aren't even close.
Dormant clients tracked in a spreadsheet nobody opens. Front desk makes manual calls when it's slow - maybe 10 per week. Random outreach with no segmentation. No idea which contacts are worth pursuing. 3% win-back rate.
Engine scans CRM monthly and scores every dormant contact A through D. Grade A contacts get personalized SMS + email + staff notification. Campaigns run automatically with seasonal hooks. 23% reactivation rate. Full ROI tracking per segment.
How a medspa in Scottsdale went from manual spreadsheet calls to an automated reactivation pipeline.
Don't reactivate aggressively. One SMS + one follow-up + one email is the right cadence. More than that and you'll get opt-outs, which burns the contact permanently. You can't un-STOP a contact. Every opt-out is a contact you'll never reach again through that channel. Respect the cadence.
Yes, if: You have 100+ contacts in your CRM. You run an appointment-based or service-based model. You've been in business for 2+ years. You have past clients who just stopped coming - no complaint, no bad review, they just drifted away.
Industries where this works best: Dental, HVAC, therapy and mental health, physical therapy, medspa, coaching, wellness clinics, home services (painting, plumbing, electrical), legal and accounting practices with recurring service needs.
Not a fit if: You're a brand-new business with no past client base. If you opened six months ago and have 30 contacts total, reactivation isn't your priority - client acquisition is. Build the list first, then activate the reactivation engine once you have enough history to score against.
Ready to talk through whether this makes sense for your specific situation? Book a free strategy call - we'll look at your CRM together and tell you exactly how many reactivation candidates you're sitting on.
Your best new customers are the ones who already trust you.
We'll help you bring them back. The Client Reactivation Engine scores your dormant contacts, builds the campaigns, and runs the outreach - so your calendar fills up with people who already know your name.
Written by Tim Hershberger, founder of Automate the Journey. Tim has built 500+ marketing automation systems for service businesses. Book a free strategy call to see how we can help.
Everything in this guide runs on GoHighLevel. Try it free for 30 days and see why we chose it.
No credit card required · Cancel anytime