Churn Recovery
How to win back churned customers with a structured win-back campaign: timing, offer, channel, and re-onboarding.
Why
Winning back a churned customer is 5-10x cheaper than acquiring a new one: the customer already knows your product, you already have their email, and the churn reason tells you what to fix. The win-back economics work because 20-30% of churn is circumstantial — the customer's budget was frozen, their champion left the company, or they switched projects — and when the circumstance changes, they will come back if you ask. The key is timing: the win-back email at month 1 (when the churn is fresh) gets 5-10% reactivation; at month 3 (when they have settled into the alternative) it gets 1-2%; at month 6 it gets < 0.5%. The offer matters: a 50% discount for 3 months is the standard win-back offer (enough to overcome the switching cost back to you, not so much that it trains them to churn-and-return). The channel matters: email is the primary channel, but for high-value churned customers, a personal email from the founder or a LinkedIn message has 3x the response rate. The most common mistake is not running win-back at all — the churned customer is written off, and the 20-30% who would have returned are gone forever.
When
Set up the win-back sequence at launch. Trigger it automatically when a customer churns — do not wait to do it manually.
How
1. Trigger the win-back sequence automatically when a customer cancels: email at day 3, day 14, day 45, and day 90 — each with a different angle 2. Day 3 email: 'we are sorry to see you go — what could we have done better?' (1-question survey) — this captures the churn reason and shows you care; some customers re-activate from this alone 3. Day 14 email: 'we have added [feature released since you left] — here is what is new' — this re-engages with product momentum; if you have not shipped anything, skip this email 4. Day 45 email: 'we would love to have you back — 50% off for 3 months if you re-activate by [date]' — this is the offer email; the deadline creates urgency 5. Day 90 email: 'last chance — 50% off for 3 months expires [date]' — final attempt; after this, move them to a cold list and stop emailing 6. For high-value churned customers (LTV > $500), send a personal email from the founder or a LinkedIn message — this has 3x the response rate of the automated sequence 7. Track win-back rate by cohort and churn reason: which reasons have the highest reactivation rate? (circumstantial churn recovers 30-40%, product-fit churn recovers < 5%) 8. When a customer re-activates, re-onboard them: show what is new since they left, restore their projects (do not delete data on churn — keep it for 12 months so re-activation is seamless)
Example
# Win-back sequence (triggered on cancellation)
const winBackEmails = [
{ day: 3, subject: "Sorry to see you go — what could we have done better?",
body: "We noticed you cancelled. Reply with one thing we could have improved." },
{ day: 14, subject: "We have added [new feature] since you left",
body: "Here is what is new: [features]. Log in to try them." },
{ day: 45, subject: "We would love to have you back — 50% off for 3 months",
body: "Re-activate by Nov 30 for 50% off for 3 months. [Re-activate]" },
{ day: 90, subject: "Last chance — 50% off expires Nov 30",
body: "This is your last chance to re-activate at 50% off. [Re-activate]" },
];
# High-value churn (personal email from founder)
// If customer.ltv > 500:
// founder@ez4code.com sends personal email:
// "Hi [name], I noticed you cancelled. I am the founder —
// what could we have done better? Reply directly."
# Win-back tracking
# Churned: 100 customers
# Reactivated: 18 (18% win-back rate)
# By reason:
# circumstantial (budget, champion left): 30% reactivation
# product-fit (did not need it): 3% reactivation
# price (too expensive): 15% reactivation (with 50% off)
# Re-activation flow
// 1. Customer clicks re-activate link
// 2. Stripe re-activates the subscription with 50% coupon for 3 months
// 3. App shows: "Welcome back! Here is what is new since you left: [features]"
// 4. Projects restored (data was kept for 12 months)Common Problems
- ⚠Not running win-back at all — the 20-30% of churned customers who would have returned are gone forever. Set up the automated sequence at launch.
- ⚠Sending the win-back email at month 6 — by then the customer has settled into the alternative and reactivation is < 0.5%. Send at day 3, 14, 45, 90.
- ⚠Deleting customer data on churn — when they re-activate, their projects are gone and the re-onboarding is a cold start. Keep data for 12 months so re-activation is seamless.
Best Practices
- ✓Run an automated 4-email win-back sequence (day 3, 14, 45, 90) triggered on cancellation — this captures the 20-30% of circumstantial churn that would have returned.
- ✓Send a personal email from the founder for high-value churned customers (LTV > $500) — this has 3x the response rate of the automated sequence.
- ✓Keep customer data for 12 months after churn so re-activation is seamless — restoring their projects and settings makes the win-back a continuation, not a cold start.