Introduction
What churnhook does and how the recovery flow works.
What churnhook does
churnhook recovers the revenue your Stripe subscriptions lose, in three ways:
- Failed payments — when an invoice can't be charged, an email sequence follows up until it's paid, then stops on its own.
- Scheduled cancellations — when a still-live subscription is set to end at period close, a save sequence can start before that date and try to keep them.
- Voluntary cancellations — an embeddable cancel widget asks why the customer is leaving, offers a pause instead of a hard cancel, and starts a win-back if they leave anyway.
Everything runs on your own Stripe account, through Stripe Connect. churnhook reads your customers and subscriptions, reacts to Stripe events, and never writes anything without your action.
The recovery flow
- You connect Stripe — a two-click OAuth, test mode first if you'd rather start there.
- A recovery event fires — a failed invoice starts dunning, a scheduled cancel starts a save, a hard cancel can start a win-back. Events that already happened before you connected are not replayed automatically: Enroll starts the live sequence for those customers whenever you're ready.
- The customer gets an email on your brand, from your own domain once you verify it in Email branding. Every email links to a page hosted by churnhook — updating a card, confirming they'll stay, claiming an offer, or confirming a pause, depending on the case.
- The goal is met when the invoice is paid (dunning), when the customer confirms they're staying or undoes their cancellation (save), or when they pay the win-back Checkout (win-back).
Where things live
The product menu is grouped by job:
| In the menu | What you do there |
|---|---|
| Overview | Track what's been recovered, and current exposure on each flow |
| To handle → Unpaid | Act on failed payments: retry, send a payment link, enroll |
| To handle → Leaving | See who scheduled a cancel, open the Customer Portal, enroll |
| To handle → Canceled | Reach canceled subscriptions still in a win-back window |
| Activity → Runs | Follow every sequence execution, stop or retry it |
| Automations → Sequences | Compose the emails and waits |
| Automations → Templates | Write the emails, with customer variables |
| Cancellations → Exit surveys | Understand why customers leave |
| Settings | General, Billing, Stripe, Email, Widget |
| Simulation | A demo lab, if you're an owner on Stripe test mode |
