Skip to main content

What is the Difference Between the Widget and the Cancel Page?

A
Written by Andreas H

When you build a cancel flow in churn.io, you choose how it reaches your customers: as a Widget or as a Cancel page. Both run the exact same retention experience — surveys, retention offers, feedback prompts and the final cancellation — but they are delivered in two different ways. This article explains the difference so you can pick the right one for your product.

The short answer

The Widget is a pop-up that appears inside your own app when a customer clicks your cancel button. The Cancel page is a standalone, churn.io-hosted page on its own web address that you redirect customers to. The retention content inside both is identical — only the way it shows up on screen is different.

The Widget

The Widget is a pop-up overlay that opens on top of your existing screen. You add a small embed snippet to your app once, and when a customer tries to cancel, the cancel flow appears in a pop-up without leaving the page they are on.

Use the Widget when you want the cancellation experience to feel like a seamless part of your own product and your cancel action lives inside an app or dashboard you control. Key characteristics:

  • Shows as a pop-up inside your app, layered over the current screen.

  • The customer never leaves your site — they stay on the same page the whole time.

  • Triggered the moment a customer clicks cancel in your interface.

  • After the flow finishes, it can close the pop-up, stay on the page, refresh the page, send the customer back to the previous page, or send them to a custom link — depending on how you set up the flow.

The Cancel page

The Cancel page is a complete, churn.io-hosted page that lives at its own web address. Instead of opening a pop-up, you redirect the customer to this page (for example, by linking your cancel button to it). The same survey, offers and feedback steps appear, but as a full standalone page rather than an overlay.

Use the Cancel page when you don't want to embed anything in your product, when your cancel link lives somewhere you can't run a script (such as an email or a billing portal), or when you simply prefer a dedicated page. Key characteristics:

  • Opens as its own full page on a churn.io-hosted address.

  • You can serve it on your own Custom domain so the address matches your brand. Without one, it uses a churn.io-hosted address tied to your business.

  • The customer is taken to this page rather than staying on your site.

  • When the flow ends — whether the customer accepts an offer, cancels, or changes their mind — they are sent back to a return address you provide (or a custom link you configure on the flow).

💡 Custom domains are for the Cancel page only

Connecting a custom domain changes the web address of your hosted Cancel page so it looks like part of your own site. The Widget pop-up already runs inside your app, so it doesn't use a custom domain.

What stays the same

No matter which type you choose, the flow itself works the same way. Both the Widget and the Cancel page support:

  • The same steps — a cancellation survey, retention offers, a feedback prompt, a goodbye screen and the final cancellation step.

  • The same offers — discounts, a free month, a subscription pause, a trial extension, a "book a call" option and a custom page link.

  • The same audience targeting — you can show a flow to everyone, or target specific customers based on their details.

  • The same outcomes and reporting — every session is recorded as saved, cancelled or dismissed, with the survey answers, accepted offer and feedback captured for your analytics.

  • The same cancellation handling — when a customer goes through with cancelling, your flow can cancel the subscription automatically, send a notification email, or trigger a webhook, exactly as you configured it.

Which should you choose?

If you want to…

Choose

Keep customers inside your own app with an embedded pop-up

Widget

Link to the flow from an email, portal, or anywhere you can't run a script

Cancel page

Use a dedicated, hosted page on your own custom domain

Cancel page

⚠️ A flow is either a Widget flow or a Cancel page flow

When you create a flow you pick its type, and that determines which delivery method serves it. A Widget request will only ever show your Widget flows, and a Cancel page request will only ever show your Cancel page flows. If you want both experiences, build a flow of each type.

You can use both at once if it suits you — a Widget pop-up inside your web app and a hosted Cancel page for links in your billing emails. Each picks the matching live flow for the customer in front of it, so your offers run wherever a cancellation starts.

Did this answer your question?