Getting started
Ship your first cancel flow.
Pick a starter template, tune the offer, publish v1. Three minutes if you trust the defaults; ten minutes if you want to read each step. Cancel flows are FTC click-to-cancel compliant by default — the cancel button is always one tap away.
1. Pick a starter template
- From the workspace nav, open Cancel flows → New flow.
- Pick the closest template to your business — there's about a dozen, spanning common SaaS niches: SaaS Standard, Pause Instead, Annual Upsell, Dev Tool / API Service, Agency / Pro Service, Newsletter / Content, Fitness / Wellness, B2B with Account Teams, Hobby / Consumer App, Education / Course Platform, Productivity / Personal, or Blank (survey + confirm only).
- Click Use template. The flow opens in the canvas builder with the template's nodes wired up — survey, optional save stories, offer, confirm.
2. Tune the offer
Click the Offernode. The right rail shows the variant picker — discount, pause, downgrade, gift (free months), schedule call, trial extension, or annual upsell. Pick the right one for your cohort, fill in the percent / duration / target price, and write your headline + body copy. Add fallback offers if you want a chain — declining the primary discount can route to a pause offer, then to a “schedule call” offer, then to confirm.
3. Simulate it
Click Simulate in the builder header. The simulator walks you through the flow as a customer would, without any Stripe call or session row. Toggle between Draft (your in-progress edits) and Live (what your customers see right now) to compare.
4. Publish
Click Publish. We snapshot the current draft as version 1 with 100% traffic. Future drafts publish as v2, v3, etc. Two ways to A/B test: split traffic across whole published versions on the Versions & traffic page, or — to test just the offer (say 25% vs 40% off, or pause vs discount) — add 2–4 variants right on the Offer node. Each visitor gets a stable arm for their session, and the Versions page shows a per-arm save-rate readout so you can see which is leading.
5. Wire up the customer-facing surface
Publishing makes the flow live; now point something at it. Three ways, and you can use more than one:
- Embedded modal — load the SDK and call
Backstop.cancel(…)on your existing “Cancel subscription” button to open the flow as a modal on your own site. See Embed Backstop. This is the recommended path, and the one that closes the Stripe-portal bypass — route cancellations through Backstop. - Hosted redirect (no SDK) — same backend signer, but instead of a modal your button gets a Backstop-hosted
/cancel/<token>URL and redirects there. Good for CSP-locked sites or anywhere you'd rather not load a script. It's the “Hosted webpage” toggle in the same snippet panel. - Automatic follow-up link — if a customer starts your cancel flow but drops off mid-way, Backstop can email them an offer reminder with a
/cancel/<token>link back to the same flow. Nothing to wire up — it follows whatever you publish here. (Note: failed-payment dunning emails link to card-update, not cancel — those are the recovery side of the product.)