Churn saves that prove® themselves.
When an account looks ready to leave, Latch runs the save play across Slack, your risk ledger and the calendar — and only turns green when every app hands back a real ID.
Moves the tools your CS team already lives in
The save play
One signal in. Three verified side effects out.
Signal
Cancel language in Gmail, or a Stripe past_due / cancel webhook.
trigger
Alert
Slack #cs gets the account, the reason and the thread link.
slack.message_ts
Ledger
Risk row opens with status OPEN_SAVE and the owning CSM.
sheets.updatedRange
Hold
Save call blocked on the owner's calendar inside the risk window.
calendar.eventId
Fail-closed by default
A missing ID is a red board, not a rounded-up win.
Most agents report what they intended to do. Latch reports what the apps actually returned. Kill the Slack token mid-run and the board flips to UNLATCHED, writes a FAILED_NOTIFY row and stops the rest of the play.
assert stripe.event.id evt_1PxT9k PASS assert slack.message_ts — FAIL invalid_auth (3 retries) assert sheets.updatedRange Risk!A41:H41 PASS FAILED_NOTIFY assert calendar.eventId — SKIP halted: fail-closed assert no_silent_send — SKIP board: 2/5 → RED
100%
Golden jobs matching expected outcome (8 fixtures)
3/4
Plays latched today, each with side-effect IDs on record
1.6s
Median signal-to-latch across Slack, ledger and calendar
Latch the save. Keep the proof.
Human stays on every customer-facing send. Latch handles the internal work and the audit trail.