Runs
Five statuses: still talking, silence, won, lost, or our fault.
The life of a run
Activity → Runs. A run is one execution of a sequence for one subscription. There are five statuses, shown as dots everywhere in the product:
| Status | Meaning |
|---|---|
| Running | Follow-ups are sending or scheduled, including the 72-hour Closing window after the last instruction. |
| Completed | The closing wait has elapsed, no verdict yet — not a win. |
| Recovered | The run reached its goal. |
| Cancelled | The customer left during this run. |
| Failed | A technical error (Stripe or email) interrupted the run. Hover the dot for the error. |
What "won" and "lost" mean depends on the sequence type:
| Unpaid (failed payment) | Leaving (scheduled cancel) | Win-back (already left) | |
|---|---|---|---|
| Won | The invoice is paid | They stay, claim the coupon, or confirm the pause | They pay the win-back Checkout |
| Lost | The subscription is canceled | The period ends and they actually leave | Never — they had already left when the run started |
| No verdict | Sequence finished, still past due | Emails sent, no response, period not over | Sequence finished, they didn't come back |
Runs stop on their own — you never need to close one. After the last email, offer, or retry, the run stays Running for 72 hours on the sequence's Closing step. A payment or claim during that window recovers it right away. Each sequence type only reacts to its own goal: a paid invoice recovers an Unpaid run, staying or undoing the cancel recovers a Leaving run, paying the Checkout recovers a win-back.
A new event on the same subscription can start another run once the first one is done. After a win, that happens right away — a fresh cancellation or a new failed payment is a new situation, not a repeat. After a Completed run (no verdict), churnhook waits a few days before trying again on that subscription, so the customer doesn't get the same sequence twice for no new reason — how long is set in Settings → Churnhook. After a Failed run, a new run only starts once you've changed the sequence; otherwise it would likely fail the same way, and Retry is the right move instead.
The Runs list
The default view shows what's actionable: running and failed. Open Filters to change status, pick a customer, a sequence, a trigger, a start date, or origin (live vs enrolled). Apply saves the view; closing without Apply discards what you typed. Chips next to the button drop one field. Reset all shows every status, not the default pair.
Each row shows step-by-step progress; hover for the detail. Click a row to open the run without leaving the list.
Recovered totals by flow live on Overview, not here.
An Enrolled badge means the run came from a mass enroll (Unpaid, Leaving, or Win-back), not a live Stripe event. Steps skipped during a win-back enroll show up greyed out, not failed — they count as done on the path.
Stepping in
- Stop a running run (a confirmation is asked) — for example when you've settled things directly with the customer. That marks it Cancelled, not Recovered. Check "don't restart automatically for this customer" to also stop a later matching event from starting a new run on its own — a badge and a Reactivate button appear on the run so you can turn it back on later.
- Retry a failed run — it picks its plan back up from where it stopped. If that step fails again, the row goes back to Failed without you refreshing.
The run detail shows the exact plan it started with, with a preview of each email as the customer received it.
