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:

StatusMeaning
RunningFollow-ups are sending or scheduled, including the 72-hour Closing window after the last instruction.
CompletedThe closing wait has elapsed, no verdict yet — not a win.
RecoveredThe run reached its goal.
CancelledThe customer left during this run.
FailedA 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)
WonThe invoice is paidThey stay, claim the coupon, or confirm the pauseThey pay the win-back Checkout
LostThe subscription is canceledThe period ends and they actually leaveNever — they had already left when the run started
No verdictSequence finished, still past dueEmails sent, no response, period not overSequence finished, they didn't come back
A Completed run can still flip later: a late payment, an offer claimed after the last email, or a real cancellation can change its status. Recovered, Failed, and Cancelled stay final.

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.