The Cancellation Flow Script

Type: template

Stage: Stage 5: Payment Proof

Difficulty: advanced

An in-app cancellation survey that maps each cancellation reason to a specific retention response. The four reasons: Too expensive → pause offer. Missing feature → roadmap share + credit. Too complicated → onboarding call. No longer needed → win-back permission. After 20 cancellations you'll see a pattern. Build it before you need it.

View resource →

Overview

This template structures the in-app cancellation survey that captures the reason behind every subscription cancellation before the subscription ends. It replaces guesswork about why customers leave with a data stream that, over time, tells you exactly what to build next. Most founders only find out why customers churn by looking at aggregate churn rate. This template gives you the individual reason for every cancellation — and maps each reason to a specific retention response you can trigger immediately.

The structure

When a customer initiates cancellation, show a single question with four answer options before confirming the cancellation:

**"Before you go — what's the main reason you're cancelling?"**

- Too expensive / not in budget right now
- Missing a feature I need
- Too complicated to set up / didn't have time to get started
- No longer need it / my situation changed

Below the options: a free-text field with the prompt "Anything else you want us to know? (optional)"

After they select an answer, trigger a specific response before the cancellation is confirmed:

**If "Too expensive":** Show a pause option. "Before you cancel, would you like to pause your subscription for 30 days? Your account and data stay intact." Add a one-click downgrade option if you have multiple pricing tiers.

**If "Missing a feature":** Show your roadmap. "We're working on [most-requested feature]. Would you be willing to stay for 30 days to see if it solves your problem? We'll send you a note when it ships." Offer a one-month credit.

**If "Too complicated":** Offer a direct call. "It sounds like onboarding didn't go as smoothly as it should have. Can I jump on a 20-minute call to help you get set up? Here's my calendar link."

**If "No longer need it":** Confirm the cancellation and ask for permission to re-engage. "Understood. Can I reach out if we add features that might be relevant to you in the future?" A win-back email six months later often converts at higher rates than initial acquisition.

How to build it

For early-stage products, this can be as simple as a Typeform or Tally form linked from a "cancel subscription" button in your settings page. The cancellation is processed after they submit the form. You review responses manually and follow up by email.

As you scale, move to an in-app implementation that triggers automatically via Stripe webhook.

What the output tells you

After 20 cancellations, you'll have enough data to see a pattern. If 60% of cancellations cite "missing a feature" and that feature is the same one every time, that's your next build priority. If 40% cite "too complicated," you have an onboarding problem. If "no longer need it" dominates, you have a seasonal or situational product — and you need to either find a more recurring use case or build reactivation campaigns into your retention strategy.

The cancellation flow is one of the highest-signal, lowest-effort additions to a Stage 5 product. Most founders don't build it until they're trying to diagnose a churn crisis. Build it before you need it.

← Back to library