- Blog
- Cancel flows
Cancellation flow examples for every reason customers leave
Six cancel flow examples, one per cancellation reason: the offer to show, the words to use, and when to show nothing at all.
The short version
Match one offer to the reason the customer gives. Too expensive gets a time-limited discount, not using it gets a smaller plan or a pause, setup trouble gets a call, a missing feature gets a direct line to your team, and anything else gets a clean cancellation. “Continue cancelling” stays one click away on every screen.
Most cancel flows fail in one of two ways. They show every customer the same discount, or they stack offer after offer until the exit is hard to find. Both treat a leaving customer as a single problem with a single fix.
The flows that work ask one question, “What’s the main reason you’re cancelling?”, and let the answer pick the offer. Here is what that looks like for the six reasons you’ll hear most, written for a SaaS product billed monthly through Stripe.
1. “It’s too expensive”#
- Offer: a discount on the next few invoices, with a clear end date.
- Headline: “Would a lower price help?”
- Button: “Accept the discount”, next to “Continue cancelling”.
The customer told you price is the problem, so a lower price is a direct answer. Keep it time-limited so it doesn’t quietly become your new price, and offer it once per customer, or people learn that clicking cancel is how to get a deal. If your cheapest plan is already small, skip the discount and use the next example instead.
2. “I’m not using it enough”#
- Offer: move to a smaller plan from the next renewal.
- Headline: “Switch to the smaller plan instead?”
- Detail: their workspace, data and settings stay exactly as they are.
Low usage is a mismatch between plan and need, not a verdict on the product. A downgrade keeps the account and the habit, and the customer pays for what they actually use. Schedule it for the next renewal so they keep what they already paid for this month.
3. “I only need it part of the year”#
Seasonal businesses, agencies between clients and teams on a break will come back anyway. A pause means they come back to you. Offer one to three months, resume billing on a set date, and remind them a few days before it restarts. We wrote about this in Pause is the offer founders forget.
4. “Setup was too hard”#
- Offer: fifteen minutes with someone who knows the product.
- Headline: “Want a hand with setup?”
- Button: “Book a call”, which opens your calendar link.
These customers wanted it to work and stalled. A discount on something they can’t use doesn’t help; a short call often does. Only offer it if someone can actually take those calls this week. Otherwise link a setup guide. Every call also tells you exactly where onboarding breaks.
5. “It’s missing something I need”#
Don’t try to save this one with a coupon. A missing feature can’t be discounted away. Ask what they needed in one short text box, tell them it goes straight to the people building the product, then carry on to the cancellation. What you get back is the most precise product feedback you’ll ever collect.
6. “Something else” or “I’m switching”#
Show no offer at all. Thank them, tell them the date their access ends, and email the same confirmation. Some customers are leaving and should be allowed to. The last screen they see is the one they’ll describe to others, and it decides whether they come back later.
What turns a cancel flow into a dark pattern#
- A hidden exit: “Continue cancelling” in faint small text, or only on the last screen.
- Offer stacking: a discount, then a pause, then a bigger discount, then a survey.
- Guilt copy: “Are you sure you want to lose all your hard work?”
- Fake urgency: countdown timers on the offer.
- Channel switching: signed up online, told to phone or email to cancel.
This is also where the rules are heading. California’s AB 2863 says a customer who signed up online must be able to cancel online without steps that obstruct or delay it, and that a discount or retention offer is allowed only while the customer remains able to cancel. A flow where cancelling is always one click away fits that comfortably.
How to know your flow works#
Count four things separately: offers shown for each reason, offers accepted, changes actually confirmed in Stripe, and customers still paying at the next renewal. Accepted offers flatter the flow; the renewal is the number that is revenue. Read the reasons too. If “too expensive” suddenly dominates, that’s a pricing conversation, not a cancel-flow tweak.
ExitLoop builds this kind of flow on Stripe: one question, then a discount, a smaller plan, a pause or no offer for each reason, and reporting on what Stripe confirmed. It records every reason, including the ones you answer with no offer. It doesn’t book calls or collect notes for you, so for those reasons link your own calendar or setup guide. You can try the demo to see it from the customer’s side.
Common questions
How many offers should a cancellation flow show?
One, chosen by the reason the customer gives. A run of offers feels like a negotiation and makes the exit harder to find.
Should every cancellation reason get an offer?
No. A missing feature or a switch to another tool usually can’t be solved with a discount. Record the reason, thank them and confirm the cancellation.
Are cancellation offers legal?
Generally yes, as long as they don’t obstruct cancelling. California’s automatic renewal law, for example, allows a retention offer while the customer remains able to cancel.