Skip to main content

Customer success · Churn risk

DashboardB2B SaaS

A churn risk score your CS team can explain, built from billing, usage and tickets

Most churn is visible weeks ahead in three places nobody looks at together: billing, product usage and support. This dashboard puts them on one row per account, scores risk with plain rules, and has a Relay prepare the brief before the CSM calls.

Valnora & Elric team5 min read

Churn risk · all accounts (illustrative)
Illustrative example
Last 8 weeksAll plansAll CSMs
Accounts scored412Refreshed nightly
High risk23+5 vs last week
ARR at high risk$318k+$64k vs last week
Renewing in 90 days9 of 23High-risk accounts
Accounts by risk tier, by weekHigh riskMedium risk
W1W2W3W4W5W6W7W8

Highest risk accounts

AccountScoreTop reasonsRenewalCSMTier
Brightline Health9Usage −48%, 2 urgent tickets14 NovLeahHigh
Corvid Freight8Failed payment, seats cut 40→252 DecOmarHigh
Ostara Retail7Champion inactive 30 days19 JanLeahHigh
Pell & Rowe4Complaint ticket open 9 days7 MarSanaMedium
Illustrative

6 weeks

Earliest warning before a renewal

Illustrative: accounts flagged with time left for a real conversation.

Illustrative

1 row

Per account, with the reasons shown

The CSM sees why the score is high, not just the number.

Illustrative

15 min

CSM prep per at-risk account

Illustrative: starting from the brief instead of four tools.

Illustrative example. Figures show how the workflow is measured; they are not customer results.

Renewal calls fail when the CSM learns about the problem on the call. The signs were there weeks earlier: active users halving, a payment that failed and was retried, two urgent tickets about login. Each sat in a different tool, owned by a different team.

This post walks through a churn risk dashboard in Agent Serve that puts billing, product usage and support on one row per account, scores risk with rules your CS lead can read, and starts a Relay to prepare the CSM before anyone calls. All figures are illustrative.

One row per account, refreshed nightly

A workflow on a nightly schedule builds the account health table. For each account it pulls:

  • Billing from Stripe. Plan, seats, renewal date, failed payments in the last 30 days and whether a cancellation is scheduled.
  • Usage from PostHog or Amplitude. Weekly active users and use of two or three features that matter for retention, this period against the previous one.
  • Support from Zendesk or Intercom. Open tickets, urgent tickets and anything tagged as a complaint, with the age of the oldest.

The join key is the hard part. Make sure Stripe customers, analytics groups and help desk organisations all carry the same account ID before you build anything else.

The risk rules

The score is not a black box. Each signal is a rule in plain language that adds points:

  • Weekly active users down 30% or more against the previous four weeks: 3 points.
  • A failed payment in the last 30 days, or seats reduced: 2 points.
  • An urgent ticket open more than 5 days: 2 points.
  • The main admin inactive for 21 days: 2 points.
  • Renewal within 90 days: 1 point, so near renewals rise to the top.

Five points or more is medium, seven or more is high. A named metric, "ARR at high risk", reads the same table, so the tile, the trend and the monitor all count the same way. When the CS lead changes a threshold, every panel follows.

What each panel shows

  • Tiles. Accounts scored, accounts at high risk, ARR at high risk and how many high-risk accounts renew in the next 90 days.
  • Risk tier by week. Whether the book is getting healthier, and whether a product release or price change moved it.
  • Highest risk accounts. Score, the top reasons in words, renewal date, CSM and tier. The reasons column is what makes it usable: a CSM can act on "usage down 48%, two urgent tickets", not on "score 9".

Row-level access gives each CSM their own book by default, while the CS lead sees everything.

The monitor and the Relay

A monitor watches the high-risk rule and alerts the CS lead in Slack and by email when a new account crosses into high risk. Monitors re-check as often as every 5 minutes; with a nightly table, the alert lands each morning after the refresh.

From three signals to a CSM brief

A nightly workflow writes one row per account from Stripe, product analytics and the help desk. Rules score each account, the dashboard shows the risk, a monitor alerts on new high-risk accounts and a Relay drafts the brief for the CSM.

Workflow · Account health

  1. 01Stripe subscriptionsPlan, seats, renewal date, failed payments and scheduled cancellations.
  2. 02PostHog or AmplitudeWeekly active users and key feature use per account, this period against last.
  3. 03Zendesk or IntercomOpen tickets, urgent tickets and conversations tagged as a complaint.
  4. 04Account health tableOne row per account, refreshed nightly by the workflow.

Dashboard · Churn risk

  1. 05Risk rulesPlain-language checks that each add points to an account’s score.
  2. 06Churn risk dashboardRisk tiles, trend by week and a table of accounts with the reasons.
  3. 07High-risk monitorAlerts the CS lead in Slack and email when an account crosses into high risk.
  4. 08CSM brief RelayStarts on the alert, gathers context and drafts a brief and a suggested next step.

The alert starts a Relay. It reads the account’s row and history in the table, the open tickets in Zendesk or Intercom, the subscription in Stripe and the account owner in HubSpot, then drafts a brief: what changed, since when, what is still open and a suggested next step.

What the solution produces

CSM brief drafted by the Relay (illustrative)

Record
Account
Brightline Health · Growth plan · 60 seats · renews 14 Nov
Score
9 (high), up from 3 four weeks ago
Usage
Weekly active users 41 → 21. Reporting feature unused for three weeks.
Support
Two urgent tickets on SSO login failures, one still open after 6 days.
Billing
No payment issues. No cancellation scheduled.
Suggested next step
Fix the open SSO ticket first, then book a call with the admin. Do not lead with renewal.
Relay task result · for the CSM · no email drafted to the customer

Run it under Observe at first, so it reads and reports without writing anywhere. The brief arrives in the CSM’s chat with the Relay. If you later let it draft a check-in email, sending always waits for the CSM’s approval, at every autonomy level, and an internal-only recipient policy keeps drafts inside the company until you choose otherwise.

What the numbers could look like

How to measure it

Illustrative

6 weeks

Earliest warning before a renewal

Illustrative: accounts flagged with time left for a real conversation.

Illustrative

1 row

Per account, with the reasons shown

The CSM sees why the score is high, not just the number.

Illustrative

15 min

CSM prep per at-risk account

Illustrative: starting from the brief instead of four tools.

Illustrative example. Figures show how the workflow is measured; they are not customer results.

These figures are illustrative, for a SaaS company with about 400 accounts. The point is the order of events: a flag weeks before renewal, a brief ready before the call, and a reason the CSM can repeat to the customer.

Controls and governance

Row-level access

Row-level policies narrow what each person sees in tables, dashboards, exports and scheduled reports.

Roles and permission groups

Admin, write and read roles per workspace, plus permission groups that limit which models, blocks and integrations a team can use.

Approvals before action

Relays never send email or book meetings without an approval, under any autonomy setting. An approval covers the exact payload the reviewer saw and expires if nobody decides.

Audit trail

Proposals, approvals, declines and executed actions are written to the workspace audit log, which admins can export.

Run logs

Every workflow run records each block’s inputs, outputs and errors, so a reviewer can trace how a result was reached.

PII detection

A Guardrails block detects personal data and blocks or masks it before text reaches the next step.

More on how Agent Serve handles access, data and audit on the security page.

Keeping the score honest

Each quarter, list the accounts that actually churned and check their scores in the weeks before. If most were never high risk, a signal is missing. Common gaps are a champion leaving and a competitor mentioned in tickets. Add a rule, rerun, and note the change.

Keep the score internal. It is a prompt for a conversation, not a label to share with the customer. For the sales side of the same habit, see the pipeline hygiene Relay, and for finding patterns in complaints, see complaints root cause.

Questions teams ask

Is the score a prediction model?

No. It is a sum of plain-language rules your team wrote and can read. That makes it easy to explain and to change, at the cost of missing patterns nobody wrote a rule for. Review it against real churned accounts each quarter.

Will the Relay contact the customer?

Not on its own. It drafts a brief for the CSM. If you let it draft an email, sending always waits for approval, and the recipient policy can keep it to internal addresses only.

Before you start

What you need

  • Stripe connected, with customers and subscriptions linked to an account ID
  • PostHog or Amplitude connected, with events carrying the same account or group ID
  • Zendesk or Intercom connected, with tickets tied to an organisation or company
  • A written list of risk signals and points, agreed with the CS lead
  • A CSM owner per account in the CRM or a mapping table
  • Row-level access so each CSM sees their own book by default

Written by the Valnora & Elric team.

Figures, dashboards and sample outputs in this article are illustrative examples, not customer results. This article is for information only and isn't legal or regulatory advice.

Enterprise access

Put AI agents to work across your team

Agent Serve is available to teams by invitation. Tell us what you want to build and we will set up your workspace with you.