Blog

How to reduce subscription cancellations with a cancel flow

A lot of subscription cancellations aren't really a verdict on your product. The customer has too much in the cupboard, money is tight this month, or they're away for the summer. Each of those has a better answer than "goodbye", but only if you find out which one it is before the subscription ends.

That's what a cancel flow is for: a short step between "Cancel subscription" and the confirmation, where you ask why and, when it fits, offer something that solves the actual problem. Done well, it keeps a real share of the customers who started to leave. Done badly, it's a maze that earns you chargebacks and angry reviews. Here's how to build the good kind.

Start by making cancelling easy

It sounds backwards, but it's the foundation. A cancel flow only works if customers trust it, and they only trust it if leaving is clearly possible. Make the confirmation reachable in one tap from every step. Never require a phone call or an email to cancel something they signed up for online. Keep the button labels plain: "Cancel subscription", not "I don't want to save money".

It's also increasingly the law. California, among other places, requires that a subscription bought online can be cancelled online, and the FTC began new rulemaking on cancellation in 2026 after its first "click to cancel" rule was struck down. A flow that asks politely and lets people go is on the right side of all of it.

And customers who know they can leave easily are more willing to subscribe in the first place. There's more on that in how to get more Shopify customers to subscribe.

Ask one question

The heart of the flow is a single question: why are you leaving? Keep it to one screen of choices, with an optional follow-up if you want more detail, and never make answering required. Every extra screen is another chance for a frustrated customer to give up on the flow, and you lose the answer and the save together.

Use reasons that fit a physical product, not the generic list from a software tool. For most replenishment stores, something like this covers nearly everyone:

  • I have too much right now
  • It's too expensive
  • I'm travelling or moving
  • I didn't like the product, or want to try something different
  • There was a problem with a delivery
  • Something else, with a box to explain

Watch the "something else" answers closely in the first few months. If the same thing keeps coming up, it deserves its own reason.

Match the offer to the reason

This is where most cancel flows go wrong. They show everyone the same discount, whatever they said. But a customer drowning in product doesn't want 20% off more of it. They want fewer deliveries. Matching the offer to the reason is what makes it feel like help rather than a sales tactic.

They saidOfferWhy it works
I have too muchDelay the next order by a few weeks, or deliver less oftenIt solves the real problem and keeps the habit going.
It's too expensiveA discount on the next few ordersIt eases a short squeeze without lowering your price for good.
Travelling or movingPause, and resume whenever they're readyNothing is sent or charged while they're away, and they don't have to sign up again.
Didn't like itSwap to another flavour, size or productThey may like your brand but not this item.
Want something differentA different product added at a discountIt gives them something new without leaving.
Delivery problemNo offer. Apologise and fix it.An offer here reads as dodging the complaint.

Notice that only one of these is a discount. It's tempting to lead with a discount everywhere, because it's the easiest offer to say yes to. But a discount costs you on every order it applies to, while a delay, a pause or a swap costs you nothing. Save the discount for the customers who told you price is the problem, and put a limit on how many orders it lasts.

Show one offer, then let them go

Show each customer at most one offer, with a clear way to decline it, and treat declining as final. A customer who says no to a pause doesn't need to be shown a discount, then a swap, then a free gift. Every extra hurdle turns a customer who was leaving politely into one who is leaving angry and will tell people why.

Also skip an offer when it can't work. If the swap would offer products that are all out of stock, or the product you'd add at a discount is sold out, go straight to the confirmation rather than offering something you can't deliver.

Decide when the cancellation takes effect

There are two reasonable options, and the choice matters more than it looks:

  • Immediately. The subscription ends now. Simple, and right for products where the customer hasn't paid for anything still to come.
  • At the end of the paid cycle. If they've paid for this cycle, the subscription runs until then and stops. This feels fair to the customer, and it leaves a window where they can change their mind with one tap ("Keep my subscription") without signing up again.

Either way, the confirmation should say exactly what happens and when, in a sentence: "Your subscription ends on March 14. You won't be charged again."

Treat the reasons as research

Your cancel flow is the most honest survey you'll ever run, because people answer it at the exact moment they're deciding. Read it every month:

  • Lots of "too much" means your default frequency is too short. Fix it on the product page and you prevent cancellations rather than saving them.
  • "Didn't like it" concentrated on one product points to that product, not your subscription.
  • "Too expensive" rising across the board might mean your subscribe-and-save discount is too thin to notice.
  • "Delivery problem" belongs to your fulfilment team.

Measure saves, and what happens after

Track four numbers: how many customers started the flow, how many accepted an offer, how many changed their mind at the confirmation, and how many cancelled. Then follow the saved customers forward. A discount that keeps someone for exactly as long as it lasts has postponed the cancellation, not prevented it. If saved customers on one offer keep leaving a month later, try a different offer for that reason.

And remember that not every lost subscriber chose to leave. A good share of churn is a card that failed and was never fixed, and that needs a different playbook: how to recover failed subscription payments.

The short version

  1. Make cancelling easy and plain. One tap to the confirmation from anywhere.
  2. Ask one question, with reasons that fit a physical product.
  3. Match the offer to the reason. Most fixes aren't discounts.
  4. Show one offer, then let them go.
  5. Let a paid cycle run out where it's fair, and say exactly when it ends.
  6. Read the reasons every month and fix what causes them.
  7. Follow saved customers forward, not just the save rate.
Using Vanix? The cancellation rule does all of this: up to 10 reasons with optional detail, a "Something else" box, and one offer per reason, chosen from delaying the next order, adding a product at a discount, swapping, pausing, or a discount on a set number of orders. Customers can always reach the confirmation in one press, offers are skipped when they couldn't work, and Analytics → Churn & recovery shows how many were kept.

Sources