Skip to main content

Does Churn.io Work With My Tech Stack?

A
Written by Andreas H

Churn.io is designed to drop into almost any product, whatever your site or app is built with. There are two ways to add a cancel flow — an embedded widget and a hosted cancel page — and both work with any technology stack. This article covers both options and which billing platforms Churn.io can take action against.

Two ways to add a cancel flow

When a customer tries to cancel, Churn.io shows your retention flow — surveys, offers, and a goodbye step. You choose per flow whether it runs as a Widget or a Page:

  • Widget — a small piece of JavaScript that opens your flow as an overlay on your own app, right where the customer clicks cancel.

  • Page — a hosted cancel page that you redirect customers to, hosted and rendered by Churn.io.

Both options live under Embed, on a Widget tab and a Page tab. You can use one or both.

The widget works on any website or app

The widget is added with a single script tag that you paste once into your HTML, before the closing body tag. It does not matter whether your site is built with React, Vue, Angular, plain HTML, WordPress, or Webflow — if you can add a script tag, the widget works.

After the script is in place, you initialise it once with your API key, then call the widget's show command from whatever already handles your cancel button. You pass in the customer's details (such as their email, plan, and revenue), and Churn.io uses that data to pick the right flow and personalise the offer automatically.

💡 You only need one embed

The widget automatically loads all of your live flows and evaluates each one's audience conditions against the data you pass in. The first matching flow is shown; if none match, your default flow is used as a fallback — so you never add the snippet more than once.

The hosted page needs no frontend changes

If you would rather not touch your front-end code, use the hosted cancel page instead. Every account gets a ready-made cancel page URL that you redirect customers to when they click cancel.

For the best experience you create the cancel session from your server when the customer clicks cancel, passing the same customer details (email, subscription, revenue, plan, and a return URL). Churn.io returns a unique link for that customer, which you redirect them to. The link is personalised per customer and expires after 24 hours. Because the page is hosted by Churn.io, it works with any stack — your only job is the redirect.

Using your own domain for the hosted page

By default the hosted cancel page lives on a Churn.io URL. On the Page tab you can also point your own subdomain at it — for example cancel.yourcompany.com — by adding a single CNAME record with your DNS provider. SSL is handled automatically, and the domain serves only your cancellation page.

⚠️ Custom domains are a Pro feature

Custom domains require the Pro plan. On other plans you can still use the default hosted cancel page URL.

Which billing platform do you need?

For Churn.io to apply offers like discounts, pauses, free months, or trial extensions — and to cancel subscriptions on your behalf — it connects to your billing platform. Today, Stripe is the supported gateway for that automation. You connect it under Integrations by clicking Connect.

Other providers — Chargebee, Recurly, Braintree, Adyen, and Mollie — appear in the list as placeholders we are working toward, but offer automation and automatic cancellation are not yet available for them. If you use one of these today, you can still run flows that gather cancellation reasons and feedback, present "book a call" or custom-page offers, and have Churn.io notify you or send a webhook when a customer cancels — none of which require Stripe.

When you set up a flow, you choose what happens when a customer cancels:

  • Cancel automatically — Churn.io cancels the subscription in Stripe, immediately or at the end of the billing period. Requires a connected Stripe account.

  • Send email — Churn.io emails the account owner so your team processes the cancellation. Works with any platform.

  • Webhook only — Churn.io sends the cancellation details to a URL you specify, so your own system handles it. Works with any platform.

💡 Test before you connect billing

You can build, preview, and try flows end to end with test customer data before connecting Stripe — test sessions skip live billing actions entirely. The Status panel on the Embed screen shows whether you have live flows and whether your gateway is connected.

Did this answer your question?