Customer Health Monitor

Score customer accounts on churn risk using product usage, support tickets, and engagement signals, then alert CSMs before renewals slip.

Score customer accounts on churn risk using product usage, support tickets, and engagement signals, then alert CSMs before renewals slip. Most CS teams find out about churn the day the customer cancels. This catches it 30 days earlier with the why already attached.

This is the whole blueprint, nothing held back: the model, the tools, the exact prompt, the source on disk, and the setup. Everything you need to run Customer Health Monitor yourself is on this page, and it deploys in an afternoon.

See it running

Agents like Customer Health Monitor run behind a metrics and analytics dashboard. Here is that pattern, live: every action stays visible and reviewable. Click into it.

crescendo.51ultron.com/kits/observability

What it does

Customer Health Monitor handles the work end to end:

  • Ingest product usage, support tickets, NPS, and renewal dates per account
  • Compute a composite 0-100 health score combining at least 3 signal types
  • Detect week-over-week declines beyond a configurable threshold
  • Alert CSMs with the top contributing signals and a specific recommended play

The anatomy

An agent is a composition, not a prompt: a model, the tools it is allowed to call, the integrations that give those tools reach, and the rules that keep it honest. Here is Customer Health Monitor on one card.

Customer Health Monitorblueprint
Model
claude-sonnet-4-6
Tools
ingest_signalsscore_accountdetect_dropnotify_csm
Integrations
SlackZod
Guardrails
health score must combine at least 3 signal types; never score on usage alone.; always include the top 3 signals contributing to a low score

The instructions

Every run is governed by this prompt. It is short on purpose: enough to make Customer Health Monitor reliable, not so much that it can misread itself. Copy it as a starting point for any agent you build.

Customer Health Monitor
You are a customer success analyst. You watch account health and alert humans before deals churn. WORKFLOW: 1. Call ingest_signals across product usage, support tickets, NPS, and renewal dates. 2. Call score_account to compute a 0-100 health score per account. 3. Call detect_drop to flag week-over-week declines beyond a threshold. 4. Call notify_csm with the account, score, top contributing signals, and a recommended play. RULES: - Health score must combine at least 3 signal types; never score on usage alone. - Always include the top 3 signals contributing to a low score. - Recommended plays must be specific (which feature, which contact) not generic. - Never alert if the account is within 5 days of an already-scheduled QBR.

The source, on disk

Three files carry the whole agent: the definition with its tools, the environment it expects, and the setup. Walk them.

customer-health-monitor/customer-health-monitor.ts1.2 KB
1import { agent, tool } from "@agent-sdk"
2import { z } from "zod"
3
4const ingestInput = z.object({
5 accountIds: z.array(z.string()).min(1).max(500),
6})
7
8export default agent({
9 model: "claude-sonnet-4-6",
10 permissionMode: "bypassPermissions",
11 maxTurns: 25,
12 systemPrompt: `...`, // see System Prompt section above
13 tools: {
14 ingest_signals: tool({
15 description: "Pull usage, tickets, NPS, renewal date per account",
16 inputSchema: ingestInput,
17 execute: async ({ accountIds }) => { /* warehouse query */ },
18 }),
19 score_account: tool({
20 description: "Compute composite 0-100 health score",
21 inputSchema: z.object({ signals: z.any() }),
22 execute: async ({ signals }) => { /* { score, contributors[] } */ },
23 }),
24 detect_drop: tool({
25 description: "Flag week-over-week declines beyond threshold",
26 inputSchema: z.object({ accountId: z.string(), threshold: z.number() }),
27 execute: async ({ accountId, threshold }) => { /* delta */ },
28 }),
29 notify_csm: tool({
30 description: "Send Slack alert with recommended play",
31 inputSchema: z.object({ text: z.string() }),
32 execute: async ({ text }) => { /* Slack webhook */ },
33 }),
34 },
35})

The business case

If you run an agency, Customer Health Monitor is also a product. It sells into customer success, revops, b2b saas, and the numbers work at very small scale.

$3,000

setup you can charge

$500/mo

monthly retainer

4

jobs off your plate

Ship it

The whole install is a handful of commands and the keys from the env file. Run the list, then point Customer Health Monitor at real work.

Deploy checklist

0 of 4

That is the entire blueprint: one model, 4 tools, and a prompt. Built by hand it costs you an afternoon. Inside Ultron it costs you a sentence, because you can build this exact agent in the workforce and watch it run before you commit to anything.

Build Customer Health Monitor in Ultron

1
Describe what you want

Start from this blueprint or your own words. Ultron reads the intent and picks the tools.

2
It builds the agent

The model, the tools, the prompt, the console. Assembled in front of you, nothing to wire.

3
Watch it run

Test it live in the chat, then put it to work. You review what it does, it does the rest.

Keep reading