A cancel flow is the retention experience your customers see when they try to cancel — surveys, retention offers, and a goodbye screen. Before you put it in front of real customers, you'll want to see exactly what they'll see and confirm it behaves the way you expect. This article walks you through testing both the widget and the hosted cancel page, and shows you the checks to run before you go live.
Why test before going live
Testing lets you experience your flow as a customer would — clicking through the survey, viewing your offers, and reaching the goodbye or cancellation screen — without touching a real subscription. It's also how you confirm the right flow shows for the right customer, since your live flows are matched automatically based on the customer details you send.
Before you test
A flow only appears in testing once it's Live. Draft flows are never shown — neither in tests nor to real customers — so publish the flow you want to try first.
Make sure you have at least one Live flow of the type you're testing (Widget or Page).
Connect your payment gateway if you want to test retention offers end to end — offer automation needs it.
💡 Tip
Widget flows and page flows are matched separately. If you're testing the widget, you need a live Widget flow; if you're testing the hosted page, you need a live Page flow.
Testing the widget
The fastest way to preview your widget flow is the built-in test console on the Embed page. It launches your real widget right inside churn.io using sample customer data, so you can click through the live experience without installing anything on your own site.
Open the Embed page and stay on the Widget tab.
Scroll to the Test your flow section and expand it.
Click Launch test flow. Your widget opens as an overlay, populated with a sample customer (a test email, a "Pro" plan, and an example monthly revenue).
Interact with the flow as a customer would — answer the survey, view your offers, and reach the goodbye or cancellation step.
Click Stop at any time to close the test, or Clear log to reset the event list.
As you move through the flow, the console captures each test session and shows it in a live log that refreshes automatically. For every session you'll see its outcome, the customer email, the monthly revenue, and how long ago it happened. Outcomes are colour-coded so you can tell at a glance whether the session ended as saved, cancelled, dismissed, abandoned, or is still in progress.
⚠️ Nothing happens when you launch?
If the widget closes immediately or you see a note that it was dismissed, you likely don't have a live Widget-type flow yet. Publish one, then launch the test again.
Testing the hosted cancel page
If you use the hosted cancel page instead of the widget, you can preview it by opening its unique URL in your browser. Each customer gets their own session link that reflects the flow, branding, and offers they'd actually see.
Your cancel page URL is shown at the top of the Page tab on the Embed page. The Status section on the same tab confirms you have a live page flow and whether your gateway is connected — the same two checks that matter for the widget.
💡 Tip
A cancel-page session link is unique per customer and expires after 24 hours. Generate a fresh one if your test link has stopped working.
Your pre-launch checklist
Both the Widget and Page tabs on the Embed page include a Status panel that tells you whether you're ready. Confirm both items show a green check before going live:
Live flows — you have at least one published flow of the right type. If it warns that you have no live flows, use the Create and publish a flow link to fix it.
Payment gateway connected — required for retention offers to be applied automatically. If it isn't connected, use the Connect your gateway link first.
Once both checks pass and you've clicked through the flow yourself, you're ready to point your real cancel button at churn.io and go live with confidence.
