Somewhere in your queue this week there is a ticket that says, more or less, “please cancel my account.” How your team answers it tells you more about your company than almost any other ticket. Some teams process it silently, never asking why. Others treat it as a hostage negotiation — three screens of offers, a required phone call, a “are you sure?” that asks twice. Both lose. The silent team learns nothing; the obstructive team loses the customer anyway, plus whatever goodwill they had left, plus the review they write afterward.
There's a better shape, and it rests on one idea: the cancellation request is your last conversation with this customer, not your last chance to trap them. Handled well, it saves some accounts, ends the rest cleanly, and hands you the most honest feedback you'll get all year.
Ask one honest question
The first reply should do two things: confirm you'll take care of it, and ask why — once, plainly, with the option to skip. “Happy to help with that. Before I do, would you mind telling me what's prompting it? Totally fine if you'd rather not — I'll process it either way.” That last sentence is doing the heavy lifting. It tells the customer they aren't being stalled, which is precisely what makes them willing to answer.
Most reasons fall into a handful of buckets: price (too expensive, or budget cut), not using it (never got set up, or the need went away), missing something (a feature, an integration), a bad experience (a bug, an outage, a support interaction), or switching (a competitor, or an internal tool). The bucket matters because each one has a different honest response — and some have none.
Offers matched to the reason
A save offer works only when it answers the reason the customer actually gave. A discount offered to someone who never logged in doesn't solve anything; it just delays the cancellation by a billing cycle. Match instead:
- Price: a lower plan, a pause, or a seasonal downgrade — if you genuinely have one. Offer it once. Don't invent a discount you wouldn't give a new customer; people compare notes.
- Not using it: the honest offer is help, not money — a short setup session, the one article that unlocks the thing they bought it for. If the need truly went away, let them go gracefully.
- Missing something: tell the truth about whether it's coming. The honest no is better than a hopeful maybe that keeps them paying for something that won't arrive.
- Bad experience: acknowledge it specifically, say what changed if something did, and ask if they'd give it another look. This is the bucket where saves happen most often, because the customer wanted it to work.
- Switching: ask what the other option does better, thank them, and let them go. You won't win this one in a ticket, but the answer is gold for product.
The rule across all five: one offer, one time. If they decline, the conversation is over and the next message is the confirmation.
Make the exit clean
When the customer still wants to go, the job becomes making that easy — and fast. Process it in the same reply if you can. Confirm in writing what happens next: when access ends, what happens to their data and how to export it, whether anything will be charged again, and how a refund question will be handled if one applies. Leave the door open in one sentence without a sales pitch: “If you ever want to come back, your account can be restored.”
This isn't only courtesy. Consumer protection rules around cancellation vary by place and have been getting more attention, and a process that is harder to leave than to join is increasingly a legal exposure as well as a reputational one. The simplest safe design is also the kindest: cancelling should take no more effort than signing up did.
The reason log is the real product
Every cancellation reason goes into one place, tagged by bucket, with the customer's words kept verbatim. Once a month, read it. You're looking for patterns, not anecdotes: a reason that keeps repeating, a feature that keeps coming up, a spike after a specific release or outage, a cluster of “never got set up” that points at onboarding rather than product. Many of these cancellations were visible earlier — the same signals show up in CSAT responses weeks before the request — so the log also tells you which early warnings you missed.
Track which offers actually saved accounts, too. An offer that never works is just friction; retire it. An offer that works for one bucket and not another tells you exactly where to use it.
The bottom line
Treat the cancellation request as a final conversation, not a trap. Ask one honest question and make clear they can skip it. Match at most one offer to the reason they gave. When they still want to go, process it quickly and confirm everything in writing. Then log the reason in their own words and read the pile every month. You'll save the customers who wanted to stay, part cleanly with the ones who didn't, and turn every departure into evidence about what to fix next.
— Tom
Cancellations that leave evidence behind
CSByDesign tags every cancellation with its reason, tracks which offers actually worked, and rolls the pattern up where product can see it — so churn becomes a list you can act on instead of a number you dread.
See how CSByDesign works →