Subscription cancellation email templates
A cancellation reply should make leaving easy and leave a good last impression. This template confirms the cancellation in the first line, says exactly when access ends and what happens to their data, and asks one optional question about why they left. It has no retention guilt trip: customers who leave on good terms are the ones who come back.
;cs-cancel-done;cs-cancel-done in any app.Variations
The same message for a different channel or tone. Copy the one that fits.
For chat, or when the customer was brief and clearly decided.
When they mention a temporary reason like budget or a quiet season.
When to use it
- A customer asks to cancel and you've processed it.
- Someone mentions a temporary reason for leaving, where a pause might suit them better.
- You want to collect a reason without making it a condition.
What to avoid
- Don't make them justify the cancellation before you process it.
- Don't offer a discount to stay in the same message unless it's your standard policy. It teaches customers to threaten to leave.
- Don't be vague about data deletion. People cancelling care about it.
The fields in this template
Retext fills these in when the snippet expands. In plain text they become [brackets] to replace by hand.
- Customer name
{fill:Customer name} - Their first name.
- Plan name
{fill:Plan name} - The plan they were on, e.g. "Pro monthly".
- Access end date
{fill:Access end date} - The last day of the billing period they've paid for.
- What happens to data
{fill:What happens to data} - e.g. "it's permanently deleted".
- Your name
{fill:Your name} - Your first name.
- Their reason
{fill:Their reason} - The reason they gave, e.g. "a slow few months".
Tips
- •Process the cancellation first, then send this. Confirming something you haven't done yet causes billing tickets.
- •Tag the reason they give in your help desk; a quarter's worth of reasons is worth more than any survey.
- •The pause variant only works if you can actually pause accounts. Delete it if you can't.
Works in Zendesk, Help Scout, Stripe dashboard, Gmail and every other app
Retext types the snippet wherever your cursor is. To use a different version in one app, give it the same trigger and limit it to that app with per-app snippets. They go by app, not website, so every tab in your browser counts as one app.
Keep retention offers out of individual agents' hands by putting the approved wording in the shared pack. Everyone offers the same pause, and nobody invents discounts.
See Retext for TeamsQuestions
What should a cancellation confirmation include?
That it's done, that no more charges will happen, when access ends, and what happens to their data. An optional question about why they left is fine; a mandatory one isn't.
Should you try to stop a customer from cancelling?
Offer an alternative only when it genuinely fits their reason, such as a pause for a seasonal business. Pushing a discount at everyone feels desperate and rarely keeps the customer for long.
Related templates
Failed payment
;cs-card-failedCustomer support
Hi [Customer name], Your payment of [Amount] for [Plan name] didn't go through. That usually means the card has expired…
Reply to positive feedback
;cs-kind-wordsCustomer support
Hi [Customer name], Thank you, this made my day. [What you appreciated] I've shared your message with [Team or person],…
Refund request reply
;cs-refund-askCustomer support
Hi [Customer name], Thanks for letting us know, and sorry [Product] didn't work out for you. I've passed your refund req…
Type ;cs-cancel-done, get the whole reply
Retext expands your snippets in every Mac app and fills in names, dates and order numbers for you.
Free to start. No account required on the Mac.