Retention flows for Stripe SaaS

Give customers a reason to
stay.

RetainCue asks why someone is cancelling, offers the discount, free cycle, or pause that fits the answer, and records whether Stripe actually applied it.

What changes in your app

Was/settings/billing
Now/c/acme-analytics

One link swap. No frontend work, no SDK, no change to how you bill.

The page your cancel button points at
retaincue.com/c/acme-analytics
Acme Analytics
Step 3 of 3

Reason given

Too expensive
Not using it
Need a break
Technical issue

In their words

“Good product. The price stopped working for us this quarter.”

Offer shown

30% off for the next 3 billing cycles

Keep the plan at a lower rate while the budget is tight.

Plan
Growth Monthly · $49.00
Offer
30% off · 3 cycles
Next invoice
$34.30
After the offer
Back to $49.00

Nothing changes until the customer accepts. The subscription stays active and can still be cancelled at any time.

Nothing is applied until acceptedContinue cancellingKeep my subscription

Sample data — the hosted flow, not a customer result.

Stripe connected · Live
  • Stripe-connected

    Accepted offers are applied to the real subscription through the Stripe account you connect.

  • Reason-based

    What a customer is shown depends on the reason they gave and the rules you set for the project.

  • Confirmed outcomes

    Displayed, accepted, processing, applied, and failed are stored as separate states.

  • Feedback-only fallback

    No Stripe connection, or an unsupported subscription? The page still collects the reason.

The gap

Most cancellation flows end the conversation too early.

A plain cancel button takes the click and moves on. You get a closed subscription, no reason worth reading, and no chance to put a real alternative in front of someone who might have taken it.

A plain cancel button

  1. Customer clicks Cancel

    The click is the whole conversation

  2. Subscription ends

    Nothing asked, nothing offered

  3. You read it in the MRR chart

    Reason unknown, customer gone

Ends with a churned subscription and a guess about why.

The same click, through RetainCue

  1. Customer clicks Cancel

    Lands on your hosted RetainCue page

  2. “Why are you leaving?”

    A structured reason, plus written detail

  3. An option that fits the answer

    Discount, free cycle, pause, or support

  4. Outcome recorded either way

    Applied, failed, or continued cancelling

Ends with a reason on record and — often enough to matter — a subscription that is still running.

Product

Different reasons deserve different answers.

Someone leaving over price and someone leaving over a broken export need two different replies. Pick a reason to see the page a customer would land on.

Cancellation reason

You decide which reasons get an offer, which offer they get, and who is eligible. Reasons with no matching offer fall through to the feedback path.

Hosted cancellation pageStripe connected · Live

The customer said

Too expensive

“Good product. The price stopped working for us this quarter.”

Rule that matched

Too expensivePercentage discount

What they are shown

30% off for the next 3 billing cycles

Keep the plan at a lower rate while the budget is tight.

Plan
Growth Monthly · $49.00
Offer
30% off · 3 cycles
Next invoice
$34.30
After the offer
Back to $49.00

Nothing changes until the customer accepts. The subscription stays active and can still be cancelled at any time.

If accepted: Discount applied to the subscription in Stripe.

Sample data. A working demonstration only — this page is not connected to Stripe.

Setup

Four steps, then it runs on its own.

Setup is configuration, not integration work. The only change inside your product is the address your cancel button points at.

Automatic billing changes need a connected Stripe account. Without one, the feedback-only cancellation page still works.

  1. 01

    Connect Stripe

    Connect the Stripe account your subscriptions run on. Skip it and the page stays in feedback-only mode.

    Connected account

    acct_1QXf···9tRb

    Stripe connected · Live

    Test and live mode run side by side. Rehearse in test, switch when ready.

  2. 02

    Create retention offers

    Set the discount, free cycle, or pause you are willing to give, and the rules that decide who sees each one.

    Reason rules

    • Too expensive30% · 3 cycles
    • Need a breakPause · 60 days
    • Not using it1 free cycle

    Eligibility: active subscriptions, one offer per customer per 90 days.

  3. 03

    Present the right offer

    Point your cancel button at the hosted RetainCue URL. Eligible customers get the option that matches their reason.

    Where your cancel button points

    Was/settings/billing
    Now/c/acme-analytics

    One link swap. No frontend work in your app.

  4. 04

    Track the confirmed outcome

    Follow each session through displayed, accepted, processing, and applied — or record that the customer left anyway.

    Session 4821

    1. Displayed

      An eligible offer was shown to the customer.

    2. Accepted

      Intent recorded. Nothing has changed in Stripe yet.

    3. Processing

      The subscription update is in flight.

    4. Applied

      Confirmed by Stripe. Only this state counts as a save.

Retention options

Three billing changes, and one honest way out.

Each option states its own effect in plain language — the amount, the dates, the next charge — before the customer decides anything.

  • Offer a targeted discount

    Price is the objection, not the product.

    Customer sees
    The exact percentage, how many billing cycles it covers, and what the next invoice becomes.
    Subscription
    Stays active on the same plan. The discount runs for the stated number of cycles, then the regular price resumes.
  • Make the next billing cycle free

    Someone never got started, or hit a short cash-flow gap.

    Customer sees
    One supported billing cycle at no charge, and when billing picks up again.
    Subscription
    Stays active. Normal billing resumes automatically after the free cycle — no calendar-month promise for weekly or annual plans.
  • Pause payment collection

    The need is temporary — a slow season, a paused project.

    Customer sees
    A supported 30, 60, or 90-day pause on payment collection, with the resume date stated up front.
    Subscription
    Payment collection pauses for the chosen period. It pauses collection, not the account.
  • Keep a feedback-only path

    There is no Stripe connection, or no offer fits the reason given.

    Customer sees
    The reason survey, then a handoff to your billing page or the Stripe Customer Portal.
    Subscription
    Untouched. The flow records the reason without claiming a billing change it did not make.

Every supported billing change is shown in full — the effect, the dates, and the next charge — and is applied only after the customer accepts it.

Option 01, as the customer sees it

30% off for the next 3 billing cycles

Keep the plan at a lower rate while the budget is tight.

Plan
Growth Monthly · $49.00
Offer
30% off · 3 cycles
Next invoice
$34.30
After the offer
Back to $49.00

Nothing changes until the customer accepts. The subscription stays active and can still be cancelled at any time.

Sample data — illustrative only, not a customer result.

Outcomes

Accepted is not the same as saved.

A customer clicking “keep my subscription” is intent, not a result. RetainCue keeps five states apart and only counts a save once Stripe confirms the change went through.

Offer redemption · session 4821

30% off · 3 cycles
  1. Displayed

    An eligible offer was shown to the customer.

  2. Accepted

    Intent recorded. Nothing has changed in Stripe yet.

  3. Processing

    The subscription update is in flight.

  4. Applied

    Confirmed by Stripe. Only this state counts as a save.

Failed / continued

The update did not go through, or the customer cancelled anyway. Recorded separately — never as a save.

Every session lands in exactly one of these states, so the number you report as a save is the number Stripe agrees with.

Retention overview

Sample data · last 30 days
Sessions
1,284Customers who started the flow
Offers displayed
902Eligible customers only
Offers applied
318Confirmed by Stripe
Est. retained revenue
$12,470An estimate, not booked revenue

Why customers said they were leaving

Too expensive31%
Not using it24%
Missing feature19%
Technical issue14%
Other12%

What the numbers mean

Offers applied
Confirmed by Stripe. Acceptances that failed are excluded.
Continued cancelling
Sessions that ended in cancellation, with the reason kept.

Sample data, not a RetainCue result. Estimated retained revenue is a projection from applied offers and current plan prices — it is not billed revenue and it does not account for a later cancellation.

Cancellation sessions

Sample data
  • m···@northbeam.ioToo expensive30% · 3 cyclesApplied
  • s···@dropfleet.comNot using it1 free cycleApplied
  • t···@wavelet.devNeed a breakPause · 60 daysProcessing
  • j···@parcelly.coMissing featureContinued

Sample rows. Customer addresses are shortened in the dashboard list view.

For small teams

Built for SaaS teams that can’t afford to guess why customers leave.

You do not need a retention team to run a decent cancellation flow. You need the reason, one good option, and an honest record of what happened.

  • Find out why customers are actually leaving
  • Answer with a discount, free cycle, or pause before they go
  • Apply what they accept through Stripe automatically
  • Match the offer to the reason instead of showing everyone the same thing
  • Keep confirmed saves separate from acceptances
  • Rehearse the whole flow in test mode first

Pricing

Priced per cancellation session.

A session is counted when a customer securely starts your cancellation flow. Every plan includes the hosted page, the Stripe connection, and retention analytics.

Starter

FOR SOLOS

For solo founders adding a professional Stripe cancellation flow.

$29/mo

100 cancellation sessions / month. Cancel anytime.

  • 100 cancellation sessions / month
  • 1 product
  • Hosted cancellation flow
  • Stripe account connection
  • Discount or pause offers
  • Automatic subscription updates
  • Basic retention analytics

Pro

Best value

For growing SaaS teams actively reducing customer churn.

$49/mo

500 cancellation sessions / month. Cancel anytime.

  • 500 cancellation sessions / month
  • 2 products
  • Multiple retention offers
  • Reason-based offer targeting
  • Automatic Stripe execution
  • Advanced retention analytics
  • API access and CSV exports

Agency

FOR AGENCIES

For agencies and operators managing retention across multiple SaaS products.

$99/mo

1,500 cancellation sessions / month. Cancel anytime.

  • 1,500 cancellation sessions / month
  • 8 products
  • Multiple workspaces
  • Everything in Pro
  • No RetainCue branding
  • Client-ready reporting
  • Priority support

Need more sessions later?

Top up extra cancellation credits at any time, on top of your monthly plan.

100 credits
$19
500 credits
$69
1,500 credits
$149

Secure Stripe connection · Automatic offer redemption · Cancel anytime

Questions

Before you connect Stripe.

The things founders ask first, answered without the marketing hedge.

  • Automatic retention offers are eligible discounts, free billing cycles, or payment pauses presented during a secure cancellation flow. When Stripe is connected and the project is configured, an accepted offer is applied to the customer's subscription automatically. Without that setup the flow stays feedback-only.

Get started

Make cancellation the start of a conversation.

Create a hosted cancellation page, rehearse it in test mode, and connect Stripe when you are ready to apply offers for real.

Session 4821

  1. Displayed
  2. Accepted
  3. Processing
  4. AppliedConfirmed

Sample session. The subscription stayed active on a 30% discount for three billing cycles.