Low Engagement Smb B2B SAAS easy

Build a Cancellation Save Flow That Rescues 10-15% of Churning Customers

30 minutes
407 views
Last updated:
By Mark Ashworth · Founder, ChurnTools
Sponsored Experiment

This experiment is sponsored by UniqueSide

Ships retention experiments in days, not months

Learn More
📊

Want a personalized score for your situation?

Take the free 60-second Churn Health Check

Score me →

Why does this churn problem matter?

Most SaaS products treat cancellation as a single button click. A customer hits "Cancel Subscription" and they are gone instantly with no conversation, no understanding of why, and no chance to address the issue. This means you lose every single customer who considers cancelling, even the ones who would have stayed if you had simply asked what was wrong and offered to help. Without a cancellation save flow, you are leaving recoverable revenue on the table every single day. Even worse, you have zero data on why people leave, making it impossible to fix the root causes of churn.

How do we solve it?

Build a multi-step cancellation intercept flow that replaces the instant cancel button with a short, respectful conversation. Step one asks why they are leaving with a simple multiple-choice exit survey. Step two presents a targeted save offer based on their specific reason: a discount for price complaints, a pause option for temporary situations, a feature walkthrough for confused users, or a plan downgrade for those who need less. Step three is a final confirmation. This entire flow can be built as an MVP in one to two days using your existing frontend framework and a few database tables. No third-party tools required for the first version.

How do you implement it step by step?

  1. 1

    Replace your current cancel button with a link to a new multi-step cancellation modal or page. Do not remove the ability to cancel. The goal is to insert a conversation before the final action, not to create a dark pattern. Customers must always be able to complete their cancellation within the flow.

  2. 2

    Build Step 1 — the Exit Survey screen. Show 5-7 cancellation reason options: "Too expensive", "Missing features I need", "Switched to a competitor", "Not using it enough", "Technical issues or bugs", "Temporary — I will be back", and "Other" with a free-text field. Store the selected reason and any comments in a cancellation_attempts table with the user ID, timestamp, and reason.

  3. 3

    Build Step 2 — the Targeted Save Offer screen. Map each cancellation reason to a specific offer. For "Too expensive": offer 20-30% off for 3 months or a plan downgrade. For "Not using it enough": offer a subscription pause for 1-3 months. For "Missing features": show upcoming roadmap items or suggest a feature request. For "Technical issues": offer an immediate support escalation. For "Temporary": offer the pause option. Display only the single most relevant offer based on their selected reason.

  4. 4

    Build Step 3 — the Final Confirmation screen. If they decline the save offer, show a clean confirmation screen that says "We are sorry to see you go" with a final "Confirm Cancellation" button. Include a brief note that they can reactivate anytime. Process the actual cancellation only when they click this final button.

  5. 5

    Create the database schema. You need one table: cancellation_attempts with columns for id, user_id, reason (string), reason_details (text, nullable), offer_shown (string), offer_accepted (boolean), cancelled (boolean), and timestamps. This gives you everything you need to measure the flow and iterate on offers.

  6. 6

    Wire up the save offers to real actions. The discount offer should apply a coupon code via your billing provider API (Stripe, Chargebee, etc.). The pause offer should set the subscription to pause at period end. The downgrade offer should switch their plan. Start simple: even if you can only automate the discount offer on day one, the other offers can trigger a Slack notification to your team for manual follow-up.

  7. 7

    Add basic tracking. Log every step of the flow: how many users entered step 1, how many submitted a reason, how many saw the offer, how many accepted, and how many completed cancellation. You need these numbers to calculate your save rate and optimize each step.

  8. 8

    Deploy the MVP and monitor for one week. Watch the save rate (percentage of users who enter the flow and do not cancel). A good initial save rate is 10-15%. Check that the flow is not frustrating users by monitoring support tickets and social mentions. Read every free-text cancellation comment to find patterns your predefined reasons missed.

What outcome should you expect?

Save 10-15% of customers who initiate cancellation by addressing their specific concern with a targeted offer. Collect structured cancellation reason data from 100% of churning users, giving your team actionable intelligence to fix the root causes of churn.

How do you measure if it's working?

Track these metrics to know if the experiment is working:

  • Save rate: percentage of users who enter the cancellation flow but do not cancel (target: 10-15% within the first month)
  • MRR saved: monthly recurring revenue retained from customers who accepted a save offer
  • Exit survey completion rate: percentage of cancelling users who select a reason (target: 85%+)
  • Offer acceptance rate by reason: which save offers work best for which cancellation reasons
  • Flow completion rate: percentage of users who enter step 1 and reach a final outcome (cancel or save) without abandoning the flow
  • Support ticket volume related to cancellation friction (should not increase)
  • Top 3 cancellation reasons ranked by frequency and revenue impact, reviewed weekly

What do you need before you start?

Make sure you have these before starting:

  • A subscription billing system with API access to apply discounts, pause subscriptions, and change plans (Stripe, Chargebee, Recurly, Paddle, etc.)
  • An existing cancel button or account settings page where customers currently initiate cancellation
  • A frontend framework or templating system to build the multi-step modal or page (React, Vue, Blade, or even plain HTML and JavaScript)
  • A database to store cancellation attempts and reasons (your existing application database works fine)
  • Permission from your team to offer discounts or pauses — agree on the maximum discount percentage and pause duration before you build

What mistakes should you avoid?

Don't make these errors that cause experiments to fail:

  • Making it impossible or confusing to actually cancel. A save flow must be respectful. If users feel trapped, they will complain publicly and file chargebacks. Always show a clear path to complete cancellation at every step.
  • Offering the same generic discount to everyone regardless of their reason. A customer leaving because of bugs does not want 20% off — they want their bugs fixed. Map offers to reasons or the flow feels tone-deaf.
  • Asking too many questions in the exit survey. More than 7 options or a required long-form comment will frustrate users and reduce completion rates. Keep it to one click plus an optional text field.
  • Not tracking the data. If you build the flow but do not log reasons and save rates, you cannot improve it. The exit survey data is just as valuable as the saved revenue — it tells you exactly what to fix in your product.
  • Offering a discount to users who would have stayed anyway. Only show the save flow when users actively initiate cancellation, never as a proactive popup. You do not want to train customers to threaten cancellation for discounts.
  • Forgetting to handle the billing side. If you offer a 25% discount but forget to actually apply the coupon in Stripe, the customer will be charged full price and churn even harder. Test every offer end-to-end before launching.
Community feedback

Did running this work for you?

Tap what it helped you fix. You'll get a tailored next step, and it helps other teams see what actually moves the needle.

See what's working →

Be the first to share what this helped you fix

Free interactive tool

Score your retention setup in 60 seconds

8 questions. Get your tier (Critical to Best-in-Class), your weakest spots, and 3 specific things to fix next.

Take the Health Check
MA

Written by Mark Ashworth

Founder of ChurnTools. I spend my time studying how SaaS companies lose customers and building tools to help them stop. I've documented 80+ retention experiments and run the Churn Health Check diagnostic.

More ways to reduce churn

Explore more experiments or browse our tool directory