mcpField
C
churn-risk-detector

churn-risk-detector

github.com/gooseworks-ai营销与增长1.3k46 次安装3 天前更新
代码仓库

关于 churn-risk-detector

churn-risk-detector 面向没有客户成功平台的早期团队,整合支持、沟通、使用和账单信号,为账户评分并提出挽留行动。

主要功能

  1. 01分析支持与沟通信号
  2. 02评估使用和账单模式
  3. 03为账户评分并划分风险等级
  4. 04为高风险账户生成行动建议
  5. 05生成每周风险报告

适用场景

  1. 01找出需要重点挽留的账户
  2. 02每周检查客户健康状况
  3. 03在续约前安排联系优先级

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/gooseworks-ai/goose-skills --skill churn-risk-detector

安装后在 Claude Code 中输入/churn-risk-detector确认已加载。

附带文件skill.meta.json

详细介绍

客户流失风险检测器

在为时已晚之前,找出有流失风险的客户。汇总支持服务、沟通和使用模式中的信号,生成带有具体挽回措施的风险评分报告。

适用对象: 没有客户成功平台(如 Gainsight、ChurnZero)的早期团队。你有一份客户电子表格、一个 Slack 频道和一个支持服务收件箱。此技能会将这些原始信号转化为可采取行动的流失风险清单。

适用场景

  • “哪些客户有流失风险?”
  • “运行每周流失风险扫描”
  • “标记出我应该担心的客户”
  • “我们有多久没联系过哪些客户了?”
  • “生成客户健康报告”

阶段 0:信息收集

客户数据
  1. 客户名单 — CSV 或电子表格,包含:公司名称、主要联系人邮箱、合同金额(MRR/ARR)、合同开始日期、续约日期(如已知)
  2. 产品/服务类型 — 客户付费购买的是什么?(有助于校准预期互动程度)
信号来源(提供你能提供的数据)
  1. 支持工单 — 从 Intercom、Zendesk 或电子邮件导出的数据(CSV,包含:客户、日期、主题、状态、解决时间)
  2. Slack 频道历史记录 — 客户 Slack 频道或共享频道中的消息
  3. NPS/CSAT 评分 — 最近的调查结果,包含评分和评论
  4. 使用数据 — 你跟踪的任何指标:登录次数、API 调用次数、已用功能、活跃用户(CSV 导出)
  5. 电子邮件/沟通记录 — 每个客户最近的联系记录(日期 + 背景信息)
  6. 账单数据 — 支付失败、降级、折扣请求
校准
  1. “健康”客户是什么样的? — 描述一位健康客户(例如:“每天登录,使用 3 个以上功能,在 24 小时内回复邮件”)
  2. 已知流失原因 — 过去客户流失的原因是什么?(有助于调整信号权重)

阶段 1:信号提取

1A:支持信号分析

根据支持工单数据,按客户计算:

信号计算方式风险权重
工单量激增过去 30 天的工单量超过其平均值的 2 倍高
未解决工单已开放超过 7 天的工单高
升级投诉用语关键词:“cancel”“frustrated”“alternative”“not working”“disappointed”严重
响应时间变长你对该客户的平均响应时间呈上升趋势中
重复问题同一问题被报告 2 次以上高
1B:沟通信号分析

根据 Slack/电子邮件历史记录:

信号计算方式风险权重
突然沉默30 天以上没有消息(此前一直活跃)高
联系频率下降与之前 90 天相比,消息频率下降超过 50%中
情绪转差语气从积极转为中性或消极中
关键联系人不再参与主要联系人停止回复严重
新相关方提问新联系人提出“这有什么用?”之类的基础问题中(可能发生了组织调整)
1C:使用信号分析(如有数据)
信号计算方式风险权重
登录量下降活跃用户数较上月下降超过 30%高
放弃功能停止使用此前定期使用的关键功能高
使用浅显付费购买多个功能,却只使用 1 个功能中
没有增长席位数/用户数连续 6 个月以上保持不变低
导出量激增数据导出量突然增加严重(可能正在迁移)
1D:商务信号分析
信号计算方式风险权重
请求折扣客户要求降低价格高
咨询降级客户询问更低级别的套餐严重
支付失败支付失败后超过 7 天仍未解决高
合同即将续约距续约不足 60 天,且尚未讨论续约中
提及竞争对手在任何渠道中提及竞争对手高

阶段 2:风险评分

评分模型

每个账户都会获得一个综合风险评分(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
风险等级
等级评分标签行动紧迫性
Red70-100严重风险 — 可能流失本周
Orange40-69风险升高 — 需要关注两周内
Yellow20-39早期预警 — 密切监控30 天内
Green0-19健康 — 无需采取行动常规跟进

阶段 3:生成挽回方案

为每个 Red 和 Orange 账户生成具体的挽回方案:

挽回方案模板
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].

阶段 4:输出格式

# Churn Risk Report — Week of [DATE]
Total accounts scanned: [N]
Data sources: [list what was available]

---

## Risk Summary

| Tier | Count | Total 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)

---

## 🔴 Critical Risk Accounts

### [Company Name 1] — Score: [X]/100 | MRR: $[X]
**Signals:** [bullet list]
**Root cause:** [hypothesis]
**Save play:** [specific actions]
**Owner:** [who should act]
**Deadline:** [date]

### [Company Name 2] — ...

---

## 🟠 Elevated Risk Accounts

### [Company Name] — Score: [X]/100 | MRR: $[X]
**Signals:** [bullet list]
**Recommended action:** [1-2 sentences]

---

## 🟡 Early Warning Accounts

| Account | Score | Key Signal | Suggested Action |
|---------|-------|------------|-----------------|
| [Name] | [X] | [Signal] | [Action] |
| [Name] | [X] | [Signal] | [Action] |

---

## 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 Type | Accounts Affected |
|------------|-------------------|
| Support ticket spike | [N] |
| Gone silent | [N] |
| Usage decline | [N] |
| Competitor mention | [N] |
| Payment issue | [N] |
| Champion disengagement | [N] |

---

## Recommended Focus This Week

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

将文件保存到当前工作目录下的 risk-report-[YYYY-MM-DD].md。

定时安排

每周运行:

0 8 * * 1 python3 run_skill.py churn-risk-detector --client <client-name>

费用

组成部分费用
所有信号分析免费(LLM 推理)
Slack/电子邮件解析免费
总计免费

所需工具

  • 来自 CSV/表格的输入数据(支持工单、使用情况、NPS)
  • 可选: 读取 Slack 频道以获取沟通信号
  • 无外部 API 费用 — 纯分析

触发短语

  • “哪些客户面临风险?”
  • “运行流失风险扫描”
  • “每周客户健康报告”
  • “标记有风险的账户”

评论

支持 Markdown