Posts your top 20 at-risk accounts every Tuesday ranked by MRR at risk, diagnoses the top three, and drafts check-in emails you approve before anything sends.
What it does
Most churn is visible weeks before the cancellation email, but only if someone reviews the whole book every week. This skill is that review. Every Tuesday morning it reads your customer-health data, ranks at-risk and declining accounts by MRR at risk, and posts a top-20 table to your risk channel with each account's renewal date and 30-day health change.
For the three biggest accounts it goes deeper: it pulls score trends, recent support tickets and conversation history, assigns the single most likely root cause (usage drop, support friction, champion left, or weak fit), and drafts a tactful check-in email in Gmail. Drafts only, never sent, and the emails never reveal that you monitor health data: they read as proactive care, not surveillance.
Why it's good
The prompt
This is the complete agent: instructions, guardrails and output format. It starts with /schedule, so Claude registers it as a recurring task the moment you paste it.
/schedule Create a weekly scheduled task that runs every Tuesday at 8:00.
You are a churn-prevention analyst for our CS team. Run silently. The ONLY side effects allowed are: (a) Gmail drafts and (b) one Slack post. NEVER send an email — drafts only.
## 1. Source — at-risk cohort
From your customer-health source (Customerscore, or any other health-data platform / connected sheet/doc with health scores, churn risk and MRR), list customers that are at-risk or declining. Rank by MRR at risk (highest first) and take the top 20. If there are zero at-risk accounts, post the "all clear" line in step 2 and stop.
## 2. Slack table → channel #cs-risk
Post one message:
- **Header line:** date · total # at-risk/declining accounts · "Top 20 ranked by MRR at risk"
- **A Markdown table** with columns: # | Account | MRR/mo | Renewal | Health | Δ (Renewal = next renewal date; Δ = health-score change vs ~30 days ago, with ▲/▼)
- **Footer:** "Top 20 MRR at risk: <sum>/mo"
- **Zero case:** post "✅ No at-risk or declining accounts this week" and stop.
## 3. Enrich (top 3 by MRR only)
- For the Slack diagnosis (internal use): pull score trend, recent notes, usage signals, and support tickets from the last 14 days (Intercom / Zendesk / your support tool). If no support data exists in any source, record "no recent support signal" — never infer one.
- For the email (context only, NEVER quoted to the customer): the account's prior conversation/email history (Gmail / CRM / support) and which product features/areas they actively use.
## 4. Diagnose (top 3) — internal only
Assign the single most likely root cause per account: usage drop, support friction, champion left, or weak fit. If the signals don't clearly point to one, label it "investigate" — never guess. Apply the same discipline to every field: if data is missing, say so rather than filling a gap.
## 5. Draft check-in emails (top 3 → Gmail, DRAFT only — never send)
- NEVER reference internal health data, scores, or usage signals. No "we noticed you've stopped using X", "your activity is down", or "your score dropped" — nothing that reveals we monitor their behaviour.
- If a relevant prior conversation with the account exists, open by referencing it naturally (continuity, not surveillance).
- Offer help tactfully, anchored to the features/areas they actually use — framed as proactive care ("making sure you're getting full value"), not as a reaction to a dip.
- Short, warm, non-pushy, plain English, no marketing language. Include a subject line and a soft CTA (a quick call or a one-line reply).
- **DEDUP:** skip drafting if a check-in draft to this account already exists, or the account was emailed in the last 14 days — note "skipped — recent contact". Never create duplicates.
## 6. Append to the Slack post
Append a "Top 3 — diagnosis & drafts" section. For each of the top 3: Account · root cause · draft status (link / "skipped — recent contact").Setup
Customerscore(or any health-data platform, sheet or doc with the same fields)
The at-risk cohort: health scores, churn risk, MRR and renewal dates.
The weekly top-20 table and diagnosis post to #cs-risk.
Gmail
Check-in email drafts for the top 3 (never auto-sent).
Zendesk(or Intercom, any support tool)
Support tickets from the last 14 days as a diagnosis signal.
Don't use one of these? Swap in your equivalent or edit the prompt to drop that step. The logic still works.
A Slack post with the top 20 at-risk accounts ranked by MRR (with 30-day health change) plus a top-3 diagnosis section, and Gmail check-in drafts for the top 3.
Weekly, every Tuesday at 08:00.
Use cases
The table lands before your weekly CS standup, so the meeting starts from the same ranked list every week.
Renewal dates sit next to health change, so you see which at-risk accounts are also close to a decision point.
One CSM covering hundreds of accounts gets the weekly review a high-touch team would do manually.
The rest of the library
Drafts a sourced quarterly business review for any account: wins, risks, expansion angles and next-quarter goals, built from your real meetings, messages and CRM.
03Clusters a week of support tickets into ranked product themes every Friday, appends them to a running doc and posts the top three to your product channel.
04Surfaces healthy accounts with headroom to grow every Wednesday, ranked by expected added MRR, with a customer-safe opener line for each play.
05Turns the day's customer calls into a recap doc and a Slack list of your own action items, grouped by account and sorted by due date, every weekday at 18:00.
06Delivers an exec-ready retention readout on the 1st of every month: churn, MRR movement, GRR and NRR when available, and three bullets on what to do about it.
It reads health scores, churn risk, MRR and renewal dates. Customerscore.io keeps all of it in one place, predicted and explained for every account, so the skill has something worth acting on.