OpSkills
Marketing Automation · 11 min read

The 90-Day Win-Back Workflow — Reactivating Cold Leads in GHL

Your dormant list is a revenue asset, not a graveyard. The 90-day reactivation sequence that consistently recovers 8-15% of cold leads — and the segmentation that decides which list segments are worth the effort.

Every operator has a dormant list. The 5,000 contacts who signed up two years ago, opened three emails, then went silent. The 800 customers who churned. The 1,200 webinar registrants from last year who never came back.

The conventional wisdom says: write them off. They’re cold. They’re not buying. They’re hurting deliverability.

The conventional wisdom is half right. They are hurting your deliverability. They aren’t worthless — they’re misclassified. About 8-15% of them are warm leads who just needed a different message or a different moment. Another 5-10% are former customers who’d come back if you asked the right way. The remaining 75-85% should be archived, not deleted, but stopped from receiving regular sends.

The 90-day win-back workflow does both jobs at once: surfaces the latent demand AND cleans the list. After running it across coaching, agency, e-commerce, and B2B service lists, the math is consistent. Reactivation costs about 10% of new-lead acquisition cost, and the leads it surfaces convert at 3-5x the rate of cold new leads.

This post is the practical workflow, segmentation, and copy patterns. Built in GoHighLevel.

Four touches across 90 days. Each escalates intent. Day 90 archives the unresponsive — protecting deliverability for the engaged.

Segment before you sequence

The single mistake that kills reactivation campaigns: treating the dormant list as one homogeneous segment.

A former paying customer is not the same as a lead who downloaded a free guide and ghosted. A lead who used to open 50% of your emails for a year and then stopped is not the same as a lead who never opened anything.

Three tiers worth treating separately:

Tier 1 — Former customers (paid before, no purchase in 90+ days). Reactivation rate: 15-25%. These people already crossed the trust threshold and bought something. The reason they stopped is usually circumstantial (price, timing, fit). The message: “we noticed you paused — what changed?”

Tier 2 — Engaged-but-cold (opened in the past, no open in 90+ days). Reactivation rate: 8-12%. These are leads who once cared and stopped. The cause is usually relevance drift — you sent too much of the wrong thing. The message: “I think we drifted apart — here’s what we’re focused on now.”

Tier 3 — Never-engaged (zero open history). Reactivation rate: 2-5%. These are leads whose email address you have but who never opened a single send. Often bad email addresses, role-based emails (info@), or signups under coercion (gated content they regretted). Worth one polite probe before removal.

In GHL: pull the segments using filters in the contact list (last activity date + tag history). Apply different sequences. Don’t run one universal sequence — you’ll dilute the message for the high-reactivation tiers and waste sends on the low-reactivation tiers.

The 90-day arc

The full workflow runs in four phases:

Days 1-7 — Re-engagement. Honest, short, single CTA. Goal: get any signal — open, click, reply, unsubscribe. Any of those is information.

Days 14-30 — Re-introduction. For leads who engaged in week one. Reintroduce who you are and what you do, as if they’re new. No selling.

Days 45-60 — Re-offer. For leads who stayed engaged through re-introduction. A specific offer tied to their original interest tag. Direct.

Day 90 — Final removal. For everyone still silent. One last “I’m cleaning the list” email. Click to stay or get archived.

The arc respects the lead’s pace. Forcing offers in week one to cold contacts is why most reactivation campaigns fail. The first job is to get a signal, not a sale.

Phase 1 — Re-engagement (days 1-7)

Three emails over seven days. Honest subject lines. Short bodies.

Email 1 (Day 1):

Subject: Did I lose you?

Body: Hey [First name],

Quick honest check — we haven’t connected in a while. I’m wondering if I should keep sending you the weekly note or if it’s not landing anymore.

Two options: – Hit reply with anything (even “still here”) and I’ll keep going. – Or hit unsubscribe at the bottom and I’ll stop. No hard feelings.

Either way, thanks for being on the list this far.

— Swapnil

Email 2 (Day 4):

Subject: One more before I stop

Body: Hey [First name],

Following up on the note from earlier this week — no rush, just wanted to make sure it didn’t get buried.

If the content’s not relevant anymore, totally fine — link at the bottom takes 2 seconds.

If you want to stay, here’s a recent piece I think you’d actually like: [link to your single best piece in their interest tag].

— Swapnil

Email 3 (Day 7):

Subject: Is this still you?

Body: Last one in this little reactivation series.

If you’re still reading these — perfect, glad you’re around. The next email goes back to the regular schedule.

If not, all good. The list will quietly archive in a few weeks.

Thanks for being here either way.

— Swapnil

Subject-line note: “Did I lose you?” and “Is this still you?” consistently outperform every clever subject line I’ve tested. The honesty of the question creates a real pause. The brain treats it as a question to actually answer, not a marketing line to scroll past.

Phase 2 — Re-introduction (days 14-30)

Anyone who opened, clicked, or replied to phase 1 gets moved here. They’re warm enough to invest in.

Three to four emails over two weeks. Reintroduce who you are and what you focus on. Lead with content, not offers.

The structure:

Email 1 — The reintroduction. “Quick reintroduction in case you forgot what we do here.” Three sentences on focus area. Link to one high-value piece of content.

Email 2 — Something useful. A recent practical piece, a checklist, a result. No selling, no CTA other than reading.

Email 3 — A specific case or story. Concrete outcome (a client result, a system that worked, a teardown). Demonstrates competence.

Email 4 — Soft offer. Mentions what you do at the end, casually: “If you ever need help with X, here’s how to start the conversation.” Not a hard pitch.

The leads who engage through phase 2 are the actual win-back candidates. About 30-40% of phase 1 engagers will continue engaging through phase 2.

Phase 3 — Re-offer (days 45-60)

Now you can sell. For everyone who stayed engaged through phases 1 and 2.

The re-offer should be:

Conversion rate at this phase: 5-15% of phase-2-engaged contacts will buy. That’s 5-15% of about 30% of phase-1-engaged of the original dormant list. Compounding the funnel, you’ve recovered 1-4% of the original dormant list at this phase. Combined with phase 4 (the “I’m cleaning the list” prompt that pulls another 3-7%), total reactivation lands at 8-15%.

Phase 4 — Final removal (day 90)

For everyone who never engaged through phases 1-3. The honest cleanup email:

Subject: I’m cleaning the list this week

Body: Hey [First name],

I’m cleaning out the list this week. If you want to stay, just click the link below — takes 2 seconds.

[ “Yes, keep me on the list” — large button ]

If you don’t click, I’ll archive your contact and stop sending. No hard feelings.

Thanks for being on the journey this far.

— Swapnil

This single email recovers 3-7% of the previously-silent list. Something about “I’m cleaning the list” creates urgency in a way none of the earlier emails did — the lead realizes they’re about to lose something they didn’t realize they wanted.

Everyone who clicks gets the “stays” tag and moves to the regular list. Everyone who doesn’t click gets archived (not deleted — keep the contact record, just remove from regular sends).

Why removal matters more than people think

Sending email to 5,000 contacts who will never open hurts deliverability for the 200 contacts who would. Gmail and Outlook track sender reputation based on engagement ratios. A 3% open rate on 5,000 sends signals “low-engagement sender” to mailbox providers. They’ll start putting your emails in Promotions or Spam for the engaged 200, too.

After a proper cleanup, the engaged-only list will see:

The cleanup is the deliverability investment. The reactivation is the bonus that pays for the cleanup.

GHL workflow setup

In GHL Workflow Builder, the structure:

  1. Trigger: Tag added (e.g., winback-2026-q2) — added manually via bulk action after pulling the segment list.
  2. Wait + email for each of the 7 emails over 90 days.
  3. Branch on engagement: “If contact opened OR clicked in past 14 days, continue to next phase. Else, skip to final removal email.”
  4. Final step: “If clicked ‘Keep me’ link in day-90 email, tag engaged-2026. Else, tag archived-2026 and remove from regular email lists.”

About 90 minutes of one-time setup. Reusable as a template for every future cleanup cycle (recommend quarterly).

Common mistakes that kill reactivation

1. Selling in week one. The “Hey, we miss you — here’s 50% off!” email feels like a panicked ex. The lead has been gone for 6 months because something didn’t fit. A discount doesn’t change the fit. Lead with the honest question, not the offer.

2. Treating all tiers the same. Former customers respond to “what changed?” Cold leads respond to “is this still you?” Same sequence to both wastes the warmth of one and the gentleness of the other.

3. Not removing the silent ones. Operators who run reactivation but skip the day-90 cleanup defeat the deliverability purpose. The whole arc has to end with removal for the math to work.

4. Running it once and forgetting. Lists go dormant continuously. A list that’s clean today has new dormants in 6 months. The workflow should run quarterly, not once a year.

5. Subject lines that are too clever. “We’ve got something special for you, [First name] 🎁” performs 2-3x worse than “Did I lose you?” Reactivation is a moment for honesty. Cleverness reads as marketing, and marketing is exactly what the dormant lead has been ignoring.

What to do this week

Three concrete actions:

Step 1 — Pull the dormant segment. In GHL, filter contacts by “last engaged 90+ days ago.” Count them. If the number is over 500, this workflow will pay for itself.

Step 2 — Tier the segment. Use existing tags or purchase history to split into former-customers, engaged-but-cold, and never-engaged. Three sublists.

Step 3 — Build phase 1 in GHL. Three emails over seven days, honest subject lines, short bodies. Apply to the engaged-but-cold tier first (largest tier, easiest to measure). Run it. Read the open and reply rates after week one.

Closing

The dormant list isn’t a graveyard. It’s a sorting problem. Some of those contacts are former customers waiting for the right moment, some are warm leads who got the wrong message at the wrong time, and most are addresses that should be quietly removed from regular sends.

The 90-day workflow does all three jobs at once: surfaces the warm, recovers the lapsed, archives the silent. It costs 90 minutes to build and recovers 8-15% of the list every time you run it.

The cheapest acquisition channel you’ll ever have is the list of people who already gave you their email and didn’t say anything since. The question is whether you’ve asked them the right way.


Related reading:

Free PDF · No signup tricks

Free: The GHL Snapshot Library

7 battle-tested GoHighLevel workflows you can steal today. No fluff, no upsell.

Delivered to your inbox in 60 seconds. Unsubscribe anytime.

Keep reading

Related posts