Gone doesn't mean gone for good.
A canceled subscription isn't always final. How a win-back sequence works, when to send it, and how to trigger one automatically after a Stripe cancellation.
Voluntary cancellation isn't always the end
A canceled subscription looks final — the billing stops, the access ends — but the customer relationship doesn't have to. Someone who canceled because a project ended, because they downgraded to a competitor during a busy month, or because the timing was wrong is a different case from someone who churned in frustration. Both are worth a well-timed, low-pressure offer to come back.
That's the point of a win-back sequence: not to argue with the decision to leave, but to make returning easy if circumstances change.
What a win-back sequence includes
Timing. Too soon looks desperate; too late and they've fully moved on or forgotten why they liked the product. A window of days to a couple of weeks after cancellation is usually the sweet spot — long enough that the decision has settled, short enough that the product is still fresh in mind.
The offer. A discount on their previous plan is the most common lever, but it doesn't have to be a price cut — a feature that shipped since they left, or simply "your data and settings are still here," can be enough.
The channel. Email is the default because it's the one channel a canceled customer is guaranteed to still have. Keep it short: what changed (if anything), the offer, one link.
Where it sends them. The link should go straight to a checkout pre-filled with their previous plan and the offer already applied — not to a generic pricing page that makes them start over.
Knowing why before you win back
A cancellation reason changes what the win-back email should say. Someone who left over price responds to a discount; someone who left because a feature was missing needs to hear that it shipped, not another coupon. Stripe’s Customer Portal can collect that reason at cancel time — not weeks later in a generic follow-up — which is what makes targeting possible.
It also tells you when not to send a win-back offer at all: a customer who left because the product wasn't a fit for their business isn't going to be swayed by 20% off.
Before it gets to this point
Not every departure has to become a cancellation in the first place — a pause offered at the right moment captures customers who would cancel today and come back in six weeks anyway. That's a different conversation, at an earlier moment: see the cancellation flow guide for reaching someone before the cancellation is final.
Why this is where churnhook is actually good
The reason captured the moment someone cancels is what makes the win-back that follows worth sending instead of generic — an actual answer, not a guess. If they cancel anyway, a win-back sequence starts automatically: a coupon already sitting on your own Stripe Connect account, applied to a real checkout on their previous plan, valid for a window you set. The moment that exact checkout is paid, it's marked recovered — nothing to reconcile by hand.
None of it is a separate tool bolted onto Stripe: the checkout is the same billing relationship the customer already had, just resumed.
The full picture — voluntary and involuntary churn, and what each one costs — is in the churn guide.
FAQ
Does a win-back offer work for customers who never gave a reason? Less well, but it's not wasted — a generic "come back" email with a modest offer still recovers some of these. It's the segmented version, built on a cancellation reason, that performs meaningfully better.
What if the customer already started a new subscription elsewhere? They'll simply not click the checkout link — there's no downside to sending the offer, it just won't convert.
Can I combine a pause offer and a win-back sequence? Yes — they cover different moments. Pause is offered before the cancellation goes through; win-back runs after it already has.
