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
/settings/billing/c/acme-analyticsOne link swap. No frontend work, no SDK, no change to how you bill.
Reason given
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.
Sample data — the hosted flow, not a customer result.
Stripe connected · LiveStripe-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
Customer clicks Cancel
The click is the whole conversation
Subscription ends
Nothing asked, nothing offered
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
Customer clicks Cancel
Lands on your hosted RetainCue page
“Why are you leaving?”
A structured reason, plus written detail
An option that fits the answer
Discount, free cycle, pause, or support
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.
The customer said
Too expensive
“Good product. The price stopped working for us this quarter.”
Rule that matched
Too expensive → Percentage 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.
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.
- 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 · LiveTest and live mode run side by side. Rehearse in test, switch when ready.
- 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.
- 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/billingNow/c/acme-analyticsOne link swap. No frontend work in your app.
- 04
Track the confirmed outcome
Follow each session through displayed, accepted, processing, and applied — or record that the customer left anyway.
Session 4821
- Displayed
An eligible offer was shown to the customer.
- Accepted
Intent recorded. Nothing has changed in Stripe yet.
- Processing
The subscription update is in flight.
- 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- Displayed
An eligible offer was shown to the customer.
- Accepted
Intent recorded. Nothing has changed in Stripe yet.
- Processing
The subscription update is in flight.
- Applied
Confirmed by Stripe. Only this state counts as a save.
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
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 feature—Continued
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 SOLOSFor solo founders adding a professional Stripe cancellation flow.
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 valueFor growing SaaS teams actively reducing customer churn.
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 AGENCIESFor agencies and operators managing retention across multiple SaaS products.
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.
RetainCue can collect cancellation feedback and route customers to your existing billing flow. For supported Stripe-connected setups, it can also apply eligible retention offers before the customer continues cancelling.
Yes. Before an offer is applied, the customer sees the exact billing effect — the discount or pause, the dates, and their next expected charge — and must explicitly accept it. They can always decline and keep cancelling.
RetainCue separates displayed, accepted, processing, applied, and failed outcomes, so an offer is not counted as a successful save until the billing result is confirmed.
Yes. Test-mode cancellation sessions and Stripe test subscriptions can be used to verify the experience without modifying live customer billing.
The feedback-only cancellation page remains available, so you can collect reasons and customer requests without claiming an automatic billing change. Automatic offers need a connected Stripe account and a supported subscription.
No. RetainCue sits in front of your billing so you can collect feedback and present save offers first. In feedback-only mode it hands off to Stripe or your billing page to finish the action.
No. Create a page, connect Stripe (optional), add your offers, and use the hosted RetainCue URL wherever your cancel button currently lives.
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
- Displayed
- Accepted
- Processing
- AppliedConfirmed
Sample session. The subscription stayed active on a 30% discount for three billing cycles.