Nebo · tutorial 07 · keep customers

See churn coming while it is still fixable

A ranked watch list every week with the evidence attached, so you intervene in week two rather than reading a cancellation in week six.

TimeAbout 45 minutes
Rolessuccess-manager
Triggerschedule

Churn is rarely a surprise in hindsight. The signals were there — usage tailed off, a champion stopped replying, three support tickets went unanswered — but nobody was looking across all of them at once. That correlation is exactly what an employee is good at, and it needs no ability to act at all.

Steps

1

Decide what risk means, numerically

Put thresholds in the persona so the weekly output is comparable week over week. Without them, the definition of "at risk" drifts and you cannot tell whether last week's list got better.

Risk signals, in order of weight: - Weekly active usage down more than 40% month over month - No login from the named champion in 21 days - Two or more support escalations in 30 days - Renewal inside 60 days with no conversation logged - Invoice more than 30 days overdue Rank by combined weight. Show the signals that fired.
2

Connect everything, write nothing

Product usage, support, CRM, billing. Every one read-only. In Controls, block customer contact and CRM writes outright — this role prepares, it never acts.

3

Demand evidence, not scores

A risk score alone is unusable, because you cannot act on a number. Require the specific fact behind every ranking.

Review this portfolio. For each at-risk account give: the signals that fired with their actual values, what changed and when, who the human relationship is with, and one suggested next step that a person could do this week. Do not contact any customer. Do not edit the CRM.
4

Run it before your pipeline review, not after

"trigger": { "type": "schedule", "cron": "0 7 * * 1" }

Monday morning, so the list is the input to your week rather than a report about it. A churn list read on Friday is a list of things you will do next week.

5

Wire the handoff

Once you trust the list, have it emit so a save motion can pick up automatically. The employee that watches is not the employee that acts.

"emit": "accounts.at_risk"

Verify

  • Run it against a customer you already lost and confirm it would have flagged them
  • Confirm every signal value matches the source system
  • Confirm no customer was contacted and no record changed
  • Check the suggested next steps are things a person could actually do

When it goes wrong

Every account is at risk

Thresholds too loose, or usage data that dips normally at month end. Add duration to each signal.

It misses accounts you knew were wobbling

The signal that mattered was not in the list, and it was probably qualitative — tone in support tickets, a champion who changed jobs. Add it explicitly.