churn-risk-detector

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Churn Risk Detector

流失风险检测器

Surface accounts at risk of churning before it's too late. Aggregates signals from support, communication, and usage patterns into a scored risk report with specific save actions.
Built for: Early-stage teams with no CS platform (no Gainsight, no ChurnZero). You have a spreadsheet of customers, a Slack channel, and a support inbox. This skill turns those raw signals into an actionable churn risk list.
在为时已晚之前识别出有流失风险的客户账户。将来自支持、沟通和使用模式的信号整合为带有具体挽回措施的风险评分报告。
适用场景: 尚未配备客户成功平台(无Gainsight、无ChurnZero)的早期团队。你有一份客户电子表格、一个Slack频道和一个支持收件箱。本技能可将这些原始信号转化为可执行的流失风险列表。

When to Use

使用时机

  • "Which customers are at risk of churning?"
  • "Run the weekly churn risk scan"
  • "Flag accounts I should worry about"
  • "Who haven't we heard from in a while?"
  • "Produce a customer health report"
  • "哪些客户存在流失风险?"
  • "运行每周流失风险扫描"
  • "标记我需要关注的账户"
  • "哪些客户我们很久没有联系了?"
  • "生成客户健康报告"

Phase 0: Intake

阶段0:数据收集

Account Data

账户数据

  1. Customer list — CSV or sheet with: company name, primary contact email, contract value (MRR/ARR), contract start date, renewal date (if known)
  2. Product/service type — What are they paying for? (Helps calibrate expected engagement)
  1. 客户列表 — CSV或表格,包含:公司名称、主要联系人邮箱、合同金额(MRR/ARR)、合同开始日期、续约日期(如有)
  2. 产品/服务类型 — 客户付费购买的产品/服务是什么?(有助于校准预期参与度)

Signal Sources (provide what you have)

信号来源(提供你已有的数据即可)

  1. Support tickets — Export from Intercom, Zendesk, or email (CSV with: customer, date, subject, status, resolution time)
  2. Slack channel history — Customer Slack channel or shared channel messages
  3. NPS/CSAT scores — Recent survey results with scores and comments
  4. Usage data — Any metrics you track: logins, API calls, features used, active users (CSV export)
  5. Email/communication log — Last touchpoints per account (dates + context)
  6. Billing data — Payment failures, downgrades, discount requests
  1. 支持工单 — 从Intercom、Zendesk或邮件导出的CSV,包含:客户、日期、主题、状态、解决时长
  2. Slack频道历史记录 — 客户Slack频道或共享频道的消息
  3. NPS/CSAT评分 — 近期调研结果,包含评分和评论
  4. 使用数据 — 任何你追踪的指标:登录次数、API调用、功能使用情况、活跃用户数(CSV导出)
  5. 邮件/沟通记录 — 每个账户的最近接触记录(日期+上下文)
  6. 账单数据 — 支付失败、降级请求、折扣申请

Calibration

校准设置

  1. What does "healthy" look like? — Describe a healthy customer (e.g., "logs in daily, uses 3+ features, responds to emails within 24h")
  2. Known churn reasons — Why have customers churned in the past? (helps weight signals)
  1. “健康”客户的定义是什么? — 描述健康客户的特征(例如:“每日登录,使用3个以上功能,24小时内回复邮件”)
  2. 已知的流失原因 — 过往客户流失的原因是什么?(有助于为信号分配权重)

Phase 1: Signal Extraction

阶段1:信号提取

1A: Support Signal Analysis

1A:支持信号分析

From support ticket data, calculate per account:
SignalCalculationRisk Weight
Ticket volume spike>2x their average in last 30 daysHigh
Unresolved ticketsOpen tickets older than 7 daysHigh
Escalation languageKeywords: "cancel", "frustrated", "alternative", "not working", "disappointed"Critical
Response time degradationYour avg response time to this customer trending upMedium
Repeat issuesSame problem reported 2+ timesHigh
从支持工单数据中,为每个账户计算以下指标:
信号计算方式风险权重
工单数量激增过去30天内工单数量超过平均水平的2倍
未解决工单未解决工单时长超过7天
升级类语言包含关键词:“取消”、“失望”、“替代方案”、“无法使用”、“不满意”严重
响应时长恶化对该客户的平均响应时长呈上升趋势
重复问题同一问题被报告2次以上

1B: Communication Signal Analysis

1B:沟通信号分析

From Slack/email history:
SignalCalculationRisk Weight
Gone silentNo messages in 30+ days (was previously active)High
Decreasing frequencyMessage frequency dropped >50% vs prior 90 daysMedium
Negative sentiment shiftTone changed from positive to neutral/negativeMedium
Champion disengagementPrimary contact stopped respondingCritical
New stakeholder questionsNew person asking basic "what does this do?" questionsMedium (potential reorg)
从Slack/邮件历史记录中提取:
信号计算方式风险权重
突然沉默过去30天无消息(此前为活跃状态)
沟通频率下降消息频率较过去90天下降超过50%
负面情绪转变语气从积极变为中立/负面
关键联系人失联主要联系人停止回复消息严重
新利益相关者疑问新联系人询问基础的“这个功能有什么用?”类问题中(可能存在组织变动)

1C: Usage Signal Analysis (if data available)

1C:使用信号分析(如有可用数据)

SignalCalculationRisk Weight
Login dropActive users down >30% vs prior monthHigh
Feature abandonmentStopped using a key feature they previously used regularlyHigh
Shallow usageOnly using 1 feature when they're paying for manyMedium
No growthSame number of seats/users for 6+ monthsLow
Export spikeSudden increase in data exportsCritical (may be migrating)
信号计算方式风险权重
登录量下降活跃用户数较上月下降超过30%
功能弃用停止使用此前经常使用的关键功能
浅度使用仅使用1个功能,但付费购买了多个功能
无增长席位/用户数连续6个月无变化
数据导出激增数据导出量突然增加严重(可能在迁移至其他平台)

1D: Commercial Signal Analysis

1D:商业信号分析

SignalCalculationRisk Weight
Discount requestAsked for pricing reductionHigh
Downgrade inquiryAsked about lower tierCritical
Payment failureFailed payment not resolved in 7+ daysHigh
Contract approaching renewal<60 days to renewal with no renewal discussionMedium
Competitor mentionMentioned a competitor in any channelHigh
信号计算方式风险权重
折扣申请客户要求降低价格
降级咨询客户询问更低层级的服务严重
支付失败支付失败且7天内未解决
合同即将到期距离续约不足60天且未进行续约讨论
提及竞争对手在任何渠道中提及竞争对手

Phase 2: Risk Scoring

阶段2:风险评分

Scoring Model

评分模型

Each account gets a composite risk score (0-100):
Risk Score = Σ (signal_weight × signal_present)

Weights:
  Critical signal = 25 points each
  High signal     = 15 points each
  Medium signal   = 8 points each
  Low signal      = 3 points each

Score cap: 100
每个账户都会获得一个综合风险评分(0-100):
Risk Score = Σ (signal_weight × signal_present)

Weights:
  Critical signal = 25 points each
  High signal     = 15 points each
  Medium signal   = 8 points each
  Low signal      = 3 points each

Score cap: 100

Risk Tiers

风险等级

TierScoreLabelAction Urgency
Red70-100Critical risk — likely to churnThis week
Orange40-69Elevated risk — needs attentionWithin 2 weeks
Yellow20-39Early warning — monitor closelyWithin 30 days
Green0-19Healthy — no action neededRoutine check-in
等级评分标签行动优先级
红色70-100严重风险 — 极有可能流失本周内处理
橙色40-69较高风险 — 需要关注2周内处理
黄色20-39早期预警 — 密切监控30天内处理
绿色0-19健康 — 无需采取行动常规回访

Phase 3: Save Play Generation

阶段3:挽回策略生成

For each Red and Orange account, generate a specific save play:
针对每个红色和橙色风险账户,生成具体的挽回策略:

Save Play Template

挽回策略模板

ACCOUNT: [Company Name]
RISK TIER: [Red/Orange]
RISK SCORE: [X/100]
MRR/ARR: $[X]

SIGNALS DETECTED:
- [Signal 1] — [Evidence: specific data point]
- [Signal 2] — [Evidence]
- [Signal 3] — [Evidence]

ROOT CAUSE HYPOTHESIS:
[1-2 sentences: What do you think is actually going wrong?
 E.g., "Champion left the company and new stakeholder hasn't been onboarded"
 or "They hit a technical limitation with [feature] that's blocking their primary use case"]

RECOMMENDED SAVE PLAY:
1. [Immediate action — e.g., "Schedule a call with [contact] this week"]
2. [Follow-up — e.g., "Send a personalized Loom showing how to solve [specific issue]"]
3. [Structural fix — e.g., "Assign a dedicated onboarding session for new stakeholder"]

TALK TRACK:
"[2-3 sentences the CSM/founder can use to open the conversation naturally,
 without saying 'we noticed you might be churning']"

ESCALATION TRIGGER:
If [specific condition] by [date], escalate to [founder/CEO call].
ACCOUNT: [公司名称]
RISK TIER: [红色/橙色]
RISK SCORE: [X/100]
MRR/ARR: $[X]

检测到的信号:
- [信号1] — [证据:具体数据点]
- [信号2] — [证据]
- [信号3] — [证据]

根本原因假设:
[1-2句话:你认为实际存在什么问题?
例如:“关键联系人已离职,新的利益相关者尚未完成入职培训”
或 “他们遇到了[功能]的技术限制,阻碍了其核心使用场景”]

推荐的挽回策略:
1. [立即行动 — 例如:“本周与[联系人]安排一次通话”]
2. [跟进措施 — 例如:“发送个性化Loom视频,展示如何解决[具体问题]”]
3. [结构性修复 — 例如:“为新的利益相关者安排专属入职培训”]

沟通话术:
“[2-3句话,供CSM/创始人自然开启对话,
避免直接提及‘我们注意到你可能会流失’]”

升级触发条件:
如果到[日期]仍未满足[具体条件],则升级至[创始人/CEO]沟通。

Phase 4: Output Format

阶段4:输出格式

markdown
undefined
markdown
undefined

Churn Risk Report — Week of [DATE]

流失风险报告 — [日期]当周

Total accounts scanned: [N] Data sources: [list what was available]

扫描的账户总数: [N] 数据来源: [列出可用的数据源]

Risk Summary

风险摘要

TierCountTotal MRR at Risk
🔴 Red (Critical)[N]$[X]
🟠 Orange (Elevated)[N]$[X]
🟡 Yellow (Early Warning)[N]$[X]
🟢 Green (Healthy)[N]$[X]
Total MRR at risk (Red + Orange): $[X] ([Y]% of total MRR)

等级数量风险MRR总计
🔴 红色(严重风险)[N]$[X]
🟠 橙色(较高风险)[N]$[X]
🟡 黄色(早期预警)[N]$[X]
🟢 绿色(健康)[N]$[X]
风险MRR总计(红色+橙色): $[X](占总MRR的[Y]%)

🔴 Critical Risk Accounts

🔴 严重风险账户

[Company Name 1] — Score: [X]/100 | MRR: $[X]

[公司名称1] — 评分: [X]/100 | MRR: $[X]

Signals: [bullet list] Root cause: [hypothesis] Save play: [specific actions] Owner: [who should act] Deadline: [date]
检测到的信号: [项目符号列表] 根本原因: [假设] 挽回策略: [具体行动] 负责人: [执行人员] 截止日期: [日期]

[Company Name 2] — ...

[公司名称2] — ...



🟠 Elevated Risk Accounts

🟠 较高风险账户

[Company Name] — Score: [X]/100 | MRR: $[X]

[公司名称] — 评分: [X]/100 | MRR: $[X]

Signals: [bullet list] Recommended action: [1-2 sentences]

检测到的信号: [项目符号列表] 推荐行动: [1-2句话]

🟡 Early Warning Accounts

🟡 早期预警账户

AccountScoreKey SignalSuggested Action
[Name][X][Signal][Action]
[Name][X][Signal][Action]

账户评分关键信号建议行动
[名称][X][信号][行动]
[名称][X][信号][行动]

Trends vs Last Week

与上周相比的趋势

  • Accounts moved Red → Green: [list — wins!]
  • Accounts moved Green → Yellow/Orange: [list — new risks]
  • Accounts churned since last report: [list]

  • 从红色转为绿色的账户: [列表 — 成功挽回!]
  • 从绿色转为黄色/橙色的账户: [列表 — 新风险]
  • 自上次报告以来流失的账户: [列表]

Signal Distribution

信号分布

Signal TypeAccounts Affected
Support ticket spike[N]
Gone silent[N]
Usage decline[N]
Competitor mention[N]
Payment issue[N]
Champion disengagement[N]

信号类型受影响账户数量
支持工单激增[N]
突然沉默[N]
使用量下降[N]
提及竞争对手[N]
支付问题[N]
关键联系人失联[N]

Recommended Focus This Week

本周推荐重点关注

  1. [Account] — [Why + what to do]
  2. [Account] — [Why + what to do]
  3. [Account] — [Why + what to do]

Save to `clients/<client-name>/customer-success/churn-risk/risk-report-[YYYY-MM-DD].md`.
  1. [账户] — [原因 + 行动建议]
  2. [账户] — [原因 + 行动建议]
  3. [账户] — [原因 + 行动建议]

保存至 `clients/<client-name>/customer-success/churn-risk/risk-report-[YYYY-MM-DD].md`。

Scheduling

调度设置

Run weekly:
bash
0 8 * * 1 python3 run_skill.py churn-risk-detector --client <client-name>
每周运行一次:
bash
0 8 * * 1 python3 run_skill.py churn-risk-detector --client <client-name>

Cost

成本

ComponentCost
All signal analysisFree (LLM reasoning)
Slack/email parsingFree
TotalFree
组件成本
所有信号分析免费(基于LLM推理)
Slack/邮件解析免费
总计免费

Tools Required

所需工具

  • Input data from CSV/sheets (support tickets, usage, NPS)
  • Optional: Slack channel reading for communication signals
  • No external API costs — pure analysis
  • 来自CSV/表格的输入数据(支持工单、使用数据、NPS)
  • 可选: 读取Slack频道以获取沟通信号
  • 无外部API成本 — 纯分析

Trigger Phrases

触发短语

  • "Which customers are at risk?"
  • "Run the churn risk scan"
  • "Weekly customer health report"
  • "Flag at-risk accounts"
  • "哪些客户存在流失风险?"
  • "运行流失风险扫描"
  • "每周客户健康报告"
  • "标记有风险的账户"