churn·6 min read·
Your first churn-save flow: build a cancel page that actually saves customers (UK, Claude Code 2026)
The cancel button is a conversation, not a door. Build a reason-matched save flow with Claude Code and Stripe that keeps 15-30% of churning UK SaaS customers.

You raised your price last week. You grandfathered your founders. Now the next thing that happens to every UK SaaS at this stage is the one nobody plans for: somebody clicks "cancel".
Here is the part most solo founders get wrong. They treat the cancel button as a door. It is actually a conversation, and right now it is the single highest-leverage 30 minutes of build work left in your product. A well-built cancel flow with reason-matched offers saves 15-30% of the people who reach it, and the best ones hit 30-42%. That is not a rounding error. At 200 customers and 8% monthly churn, 16 people try to leave each month. Save a quarter of them and you keep 4 customers you were about to lose, every single month, for the price of one afternoon with Claude Code.
This is the first churn-save flow. Here is exactly how to build it.
Why this is the next beat, not a "later" job
When you have 3 customers, a cancel flow is theatre. You will know personally why anyone leaves. But the moment your launch cohort has stuck around long enough that you raised the price, you have crossed a line: you now have enough paying customers that cancellations stop being personal and start being a number. That number is the leakiest part of your funnel, because every saved customer is pure retained revenue with zero acquisition cost.
Acquisition gets all the attention. A saved customer is cheaper than a new one, stays predictable, and tells you precisely why your product nearly failed them. The cancel flow is the only place in your whole product where unhappy customers tell you the truth on their way out. Build it to listen first and save second.
The one rule: one question, then an offer matched to the answer
The entire flow is two screens.
Screen one is a single multiple-choice question: "What's making you cancel?" Resist every urge to ask more. The data here is brutal and consistent: every question you add beyond the first drops your save rate by roughly 6.7%. One question, six options, done.
The six reasons that cover almost all real-world cancellations:
- Too expensive
- Not using it enough
- Missing a feature I need
- Switching to a different tool
- Technical issues / it's not working
- Other (free text, optional)
Screen two is an offer, and the offer must match the reason. This is the whole game. A blanket "here's 20% off, please stay" is the lazy version and it trains your best customers to threaten to leave for a discount. Match it instead:
- Too expensive -> offer a one-time discount or a cheaper tier (a downgrade, not a giveaway).
- Not using it enough -> offer a pause. Let them freeze the subscription for 1-3 months instead of cancelling. Customers who accept a pause stay an average of 5.5 extra months.
- Missing a feature -> capture the feature, tell them honestly if it's on the roadmap, and offer to email them when it ships. Sometimes a credible "it's coming in three weeks" is the save.
- Switching tools -> ask which one (gold-dust competitor intel) and offer help migrating data out if they still go. You won't save many, but you'll learn who's beating you.
- Technical issues -> route straight to you. A bug-driven cancellation is the easiest save of all because the fix is on your side.
Customers who downgrade instead of cancelling stay 7-8 months longer. A pause or a downgrade is almost always worth more than the full price you're clinging to, because the alternative is zero.
The dark-pattern trap that will cost you more than it saves
If they still want to go after the offer, let them. Gracefully. One click.
Do not hide the cancel button. Do not bury it three menus deep. Do not require an email to support or a phone call. The US is now actively enforcing "click to cancel" rules, the UK's consumer protection regime under the CMA frowns hard on subscription traps, and beyond the legal risk it is simply bad business. A customer you trap leaves a one-star review, charges back, and tells everyone. A customer you let go cleanly might come back, and will say nice things either way. Your save rate target is 20-30% through honest, reason-matched offers. Anyone chasing higher than that is usually doing it with friction, and friction is a debt you repay with your reputation.
Build it with Claude Code in an afternoon
You already have Stripe wired in from your billing build. The cancel flow sits on top of it. The moves:
-
Add the Stripe MCP server to Claude Code so it can read your live prices, subscriptions, and customer records mid-session. One command, and now Claude can verify a subscription's status or look up the exact Price ID for your downgrade tier while it writes the code, instead of guessing.
-
Build the two screens as a self-contained route, e.g.
/cancel. Screen one logs the reason to your Supabase database (you want this data forever). Screen two renders the matched offer. Hand Claude Code the rule table above and ask for a narrow, single-purpose component. -
Wire the offers to real Stripe actions. Pause = set the subscription to
pause_collection. Downgrade = swap the subscription item to your cheaper Price ID. Discount = apply a coupon to the existing subscription. Keep each action additive and reversible, and run a money-path regression check in Stripe test mode before it touches a real customer. This is the one place where a sloppy diff can double-charge or wrongly cancel someone, so review it like it's load-bearing, because it is. -
Store every cancellation reason in Supabase even when you save them. After a month you'll have a ranked list of why people nearly left. That list is your roadmap.
A focused session with Claude Code, the rule table, and Stripe MCP gets you a working, reason-matched, regression-checked cancel flow before dinner. The Stripe Customer Portal can handle the plumbing of plan changes and invoices, but build the survey-plus-offer layer yourself, because that layer is where the saves happen and it's too important to outsource to a generic portal.
Measure the save rate, then leave it alone
Track exactly one number to start: of everyone who lands on /cancel, what percentage do not complete the cancellation? That's your save rate. Watch it for four weeks. Anything in the 15-30% band is healthy.
Then read the reasons. If "too expensive" dominates, your price or your value story needs work (you just raised prices, so watch this closely). If "not using it enough" leads, your onboarding and activation are the real problem and the cancel flow is just where the symptom shows up. If "missing a feature" keeps naming the same feature, you've found your next build.
And then stop fiddling. At 3-30 customers you do not need a churn-prediction model, a win-back email sequence, or a retention dashboard with twelve charts. You need the two screens, the reason data, and the discipline to act on what it tells you. Build the flow, ship it, read it monthly, and get back to making the product worth keeping.
The cancel button isn't where customers leave. It's where they tell you how to keep them.
Frequently asked
What is a churn-save flow?
It is the screen a customer sees when they click cancel. Instead of cancelling immediately, it asks one question about why they are leaving, then offers a response matched to that reason, such as a pause, a downgrade, or a fix. A good one saves 15-30% of would-be churners.
How many questions should the cancel survey ask?
Exactly one. A single multiple-choice question with around six options collects enough signal to personalise the offer. Every question you add beyond the first drops your save rate by roughly 6.7%, so resist the urge to ask more.
Should I just offer everyone a discount to stay?
No. A blanket discount trains your best customers to threaten cancellation for money off, and it does not address the real reason most people leave. Match the offer to the reason: a pause for low usage, a downgrade for price, a roadmap promise for a missing feature.
Is it legal to make cancelling difficult in the UK?
Making cancellation deliberately hard is risky. UK consumer protection under the CMA treats subscription traps unfavourably and the US enforces click-to-cancel rules. Beyond the legal risk, friction costs you chargebacks, bad reviews, and word of mouth. Let customers go in one click if they still want to.
How do I build a cancel flow with Claude Code and Stripe?
Add the Stripe MCP server to Claude Code so it can read your live subscriptions and prices. Build a /cancel route with two screens: a one-question reason survey logged to Supabase, and a reason-matched offer wired to Stripe actions (pause_collection, swapping the Price ID to downgrade, or applying a coupon). Run a money-path regression check in test mode before going live.





