mcpField
C
churn-prevention

churn-prevention

github.com/borghei营销与增长1.0k83 次安装1 周前更新
代码仓库

关于 churn-prevention

churn-prevention 是面向 SaaS 团队的客户流失预防技能,涵盖主动取消和支付失败导致的流失。它提供取消流程、挽留方案、催款和召回活动的设计框架。

主要功能

  1. 01设计取消流程与退出调查
  2. 02按退出原因匹配挽留方案
  3. 03规划失败付款重试与催款邮件
  4. 04设计取消后的召回活动
  5. 05建立流失健康评分与影响测算

适用场景

  1. 01改进 SaaS 取消流程并收集流失原因
  2. 02针对支付失败设计催款与恢复流程
  3. 03按客户取消原因提供挽留方案
  4. 04规划取消后的客户召回活动

安装

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

$npx skills add https://github.com/borghei/claude-skills --skill churn-prevention

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

scripts/
churn_impact_calculator.py
dunning_sequence_analyzer.py
exit_survey_analyzer.py

详细介绍

防止客户流失

面向生产环境的 SaaS 客户流失减少框架,涵盖取消流程架构、动态挽留优惠映射、退出调查设计、催款序列工程、付款挽回优化、客户召回活动和流失影响建模。针对主动流失(客户决定离开)和被动流失(因付款失败而离开)。


目录


先确认

设计客户流失防范系统前,请确认以下信息。如果有任何信息未知或含糊不清,请提问,不要自行假设:

  • 主动流失与被动流失的比例 — 哪种占主导(决定是构建取消流程和挽留优惠,还是催款和付款挽回)
  • 现有取消流程,还是立即取消/通过支持取消 — 决定是从头构建还是进行优化
  • 当前 MRR、ARPU 和计费周期 — 用于估算金额影响和挽留优惠预算
  • 付款处理商 — Stripe/Braintree/Paddle/Recurly(决定卡片更新和催款重试的实现方式)

停止规则:只询问对输出影响最大的 2-3 项。如果用户说“直接起草”,就继续,并在交付内容开头列出假设。

初步评估

所需背景信息
问题重要性
当前月流失率是多少?(主动流失与被动流失的比例)决定应采取哪种措施
是否有取消流程,还是取消会立即生效/需通过支持取消?决定是构建还是优化
使用哪种付款处理商?(Stripe、Braintree、Paddle)影响催款的实现方式
平均合同金额和计费周期是多少?用于估算挽留优惠预算
当前 MRR 是多少?用于计算降低客户流失带来的金额影响
SaaS 模式是什么?(自助服务还是销售辅助)决定干预类型
目前是否收集退出原因?决定挽留优惠映射的数据是否可用

流失分类

主动流失(客户决定离开)
类型信号是否可挽回?
价值差距获得的价值不足以匹配价格可以——挽留优惠、功能介绍
产品与市场不匹配ICP 不合适,产品不适用于其使用场景部分可以——降级或调整方向
转向竞争对手找到了更好的替代方案可以——提供竞争性反报价
削减预算无力继续承担费用可以——折扣或暂停
项目完成季节性需求或基于项目的需求可以——提供暂停选项
体验不佳支持服务差、存在漏洞、令人沮丧可以——人工介入
从未激活注册后从未使用部分可以——取消前重新激活
被动流失(付款失败)
原因失败付款占比是否可挽回?
卡片过期40-50%可以——使用卡片更新服务
资金不足20-30%可以——智能安排重试时间
银行拒绝(欺诈标记)10-15%有时可以——客户必须联系银行
账户已关闭5-10%不可以——客户必须提供新卡
网络错误5-10%可以——自动重试

取消流程架构

取消流程的 5 个阶段
[Cancel Button] → [Exit Survey] → [Dynamic Save Offer] → [Confirmation] → [Post-Cancel]
阶段 1:触发取消
  • 取消选项应易于找到(设置 > 账户 > 取消)。不要隐藏它。
  • 点击“取消”后启动流程——不会立即取消账户
  • 同时适用于桌面端和移动端
第 2 阶段:退出调查(必填,共 1 个问题)

问题:“您取消的主要原因是什么?”

以单选按钮呈现(不要使用下拉菜单)。最多 8 个选项:

原因内部代码
价格与我获得的价值不相称PRICE
使用频率不够LOW_USAGE
缺少我需要的功能MISSING_FEATURE
改用其他产品COMPETITOR
我的项目或需求已结束PROJECT_END
使用起来太复杂COMPLEXITY
只是试用,并未打算继续使用TESTING
其他(可选填文字)OTHER

规则:

  • 显示挽留优惠前必须完成调查(答案决定提供哪种优惠)
  • 只能有一个问题。不要使用多页调查。
  • “其他”选项可填写文字;也可在选择任何选项后补充填写
  • 按月跟踪回复分布,以发现系统性问题
第 3 阶段:动态挽留优惠

为每个退出原因恰好匹配一项挽留优惠:

退出原因挽留优惠优惠文案
PRICE优惠 30%–50%,持续 2–3 个月“我们希望为您提供 [X]% 的折扣,为期 [N] 个月”
LOW_USAGE暂停账户 1–3 个月“暂停您的账户,等您有需要时再回来”
MISSING_FEATURE产品路线图预览 + 替代方案“[Feature] 将于 [Q] 推出。以下是目前实现该功能的方法”
COMPETITOR竞品对比 + 折扣“以下是我们与 [competitor] 的对比。另外,还可享受 [X]% 折扣”
PROJECT_END暂停选项“暂停账户,而不是取消——您的数据会安全保留”
COMPLEXITY免费上手辅导“让我们为您完成设置——我们的团队提供免费的 30 分钟辅导”
TESTING不提供优惠——让他们离开“感谢您试用我们的产品。欢迎随时回来。”
OTHER通用挽留优惠“离开之前——我们很乐意解决您的问题。[Contact support]”

优惠呈现规则:

  • 每个屏幕只展示一项明确的优惠(不要提供多个选项)
  • 明确量化优惠价值:“未来 3 个月为您节省 $120”,而不是“享受折扣”
  • CTA:“接受优惠”与“继续取消”(两者都要清楚标明)
  • 不使用倒计时器或虚假的紧迫感
  • 不使用让用户内疚的文案
第 4 阶段:确认

如果他们拒绝挽留优惠,或没有可提供的优惠:

┌────────────────────────────────────────┐
│  We're sorry to see you go             │
│                                        │
│  What happens when you cancel:         │
│  - Your data is saved for 90 days     │
│  - Access continues until [date]      │
│  - You can reactivate anytime         │
│                                        │
│  [Yes, Cancel My Account]             │
│  [Wait, I Changed My Mind]            │
│                                        │
│  No pre-checked boxes.                │
│  No confusing language.               │
└────────────────────────────────────────┘
第 5 阶段:取消后
时间渠道消息
立即Email取消确认 + 数据保留政策 + 重新激活链接
第 7 天Email“我们想念您” + 重新激活的单一 CTA + 您将错过的内容
第 30 天Email产品更新 + 相关改进 + 重新激活优惠
第 60 天Email最终挽回优惠,提供力度最大的优惠(如适用)

退出调查设计

数据分析框架

按月跟踪退出调查回复并计算:

指标公式行动阈值
原因分布每种原因对应的取消比例任一原因 > 30% = 系统性问题
按原因划分的挽留率成功挽留数量 / 每种原因对应的取消尝试数任一原因的挽留率 < 5% = 优惠不匹配
原因趋势环比变化呈上升趋势 = 问题恶化
功能缺口频率统计用户提及具体功能的“缺少功能”回复数量缺少频率最高的 3 项功能 = 产品路线图输入
通过退出调查获取竞品情报

当用户选择“改用其他产品”时:

  • 追问:“您要改用哪款产品?”(选填,可自由输入或从下拉菜单选择)
  • 跟踪赢得您流失用户的排名前 3 位的竞品
  • 将这些数据提供给 competitive-teardown skill,用于季度分析

动态挽留优惠系统

优惠方案经济性
优惠类型企业成本挽留率基准何时盈利
30% 折扣(3 个月)3 个月收入的 30%15-25%挽留后的 LTV 高于折扣成本时
50% 折扣(2 个月)2 个月收入的 50%20-30%留存客户继续使用 6 个月以上时
暂停(1-3 个月)$0(暂停期间无收入)25-40%暂停后重新激活的客户超过 50% 时
免费入门指导客户成功团队时间(约 $50-100)10-20%ARPU 高于 $100/月时
降级至较低套餐收入减少30-50%有部分收入胜过没有收入时
解锁功能$0(功能已开发)5-15%始终盈利
挽留优惠决策树
User selects exit reason →
├── PRICE →
│   ├── Customer ARPU > median? → Offer 30% discount
│   └── Customer ARPU < median? → Offer downgrade to cheaper plan
├── LOW_USAGE →
│   ├── Last login > 30 days? → Offer pause
│   └── Last login < 30 days? → Offer usage tips + discount
├── MISSING_FEATURE →
│   ├── Feature on roadmap? → Share roadmap + workaround
│   └── Feature not planned? → Offer discount or acknowledge gap
├── COMPETITOR →
│   ├── Known competitor? → Show comparison + retention offer
│   └── Unknown competitor? → General retention offer
├── PROJECT_END →
│   └── Always → Offer pause
├── COMPLEXITY →
│   ├── Enterprise/high-value? → Offer dedicated onboarding session
│   └── SMB/low-value? → Offer guided tutorial link
└── TESTING →
    └── Always → No offer, let go gracefully

逾期付款处理序列设计

支付失败会造成总流失量的 20-40%。其中大部分可以通过妥善的逾期付款处理挽回。

智能重试计划

失败后不要立即重试。银行卡通常会在 3-7 天内恢复正常。

重试时间选择此时间的原因
初次扣款第 0 天正常计费周期
重试 1第 3 天大多数银行卡问题会在 72 小时内解决
重试 2第 7 天配合发薪周期
重试 3第 12 天配合第二次发薪周期
重试 4第 18 天采取服务措施前的最后一次尝试
服务措施第 21 天降级或取消
银行卡自动更新服务

启用银行卡自动更新,避免因银行卡过期导致客户流失:

支付处理商服务启用方式
Stripe自动更新银行卡大多数套餐默认启用
BraintreeAccount Updater必须在商户设置中启用
Paddle内置自动
RecurlyAccount Updater需要配置
逾期付款邮件序列
天数邮件主题正文重点CTA
0“您的 [Product] 付款未能成功”陈述事实,不归咎于客户。银行卡可能已过期或余额不足。[更新付款方式]
3“需要采取行动:更新您用于 [Product] 的付款方式”提醒客户将无法再使用哪些内容。[更新付款方式]
7“您的 [Product] 账户面临风险”列出他们创建的功能和数据。适度提醒紧迫性。[更新付款方式]
14“最后通知:您的 [Product] 使用权限将在 7 天后结束”明确截止日期。如果是银行问题,提供帮助。[更新付款方式] + [联系支持团队]
21“您的 [Product] 账户已暂停”说明账户状态变更。数据安全无虞。可轻松重新激活。[重新激活账户]

邮件规则:

  • 每封邮件都直接链接到付款信息更新页面(而非控制面板)
  • 不要让客户感到内疚或羞愧。银行卡支付失败时有发生。
  • 主题行要明确(包含产品名称)
  • 包含欠款金额和银行卡后 4 位数字
  • 为需要帮助的客户提供支持渠道

客户挽回活动框架

客户挽回时间安排
时间窗口成功率方式
取消后第 7 天5-10%温和提醒,不施加压力
取消后第 30 天3-7%产品更新 + 优惠
取消后第 60 天2-5%最优惠方案 + 重新开始
取消后第 90 天及以后1-3%仅在产品有重大变化时联系
客户挽回邮件序列

第 7 天邮件:

  • 主题:“您的 [Product] 账户正在等您回来”
  • 正文:介绍他们离开后留下的内容(数据、项目、团队)。只设一个 CTA:重新激活。
  • 不提供折扣,只提醒产品价值。

第 30 天邮件:

  • 主题:“[Product] 的最新动态”
  • 正文:列出离开后新增的 2-3 项具体改进。只设一个 CTA:重新激活。
  • 小额优惠:“回来即可享受 1 个月免费”

第 60 天邮件:

  • 主题:“我们期待您回来 -- [offer]”
  • 正文:提供最优惠方案(3 个月 5 折或延长免费期)。明确截止日期。
  • 最后一次重要的联系尝试。

流失健康度评分

流失的领先指标
信号权重检测方式
登录频率下降(周环比)高使用分析
功能使用量下降高功能事件跟踪
支持工单升级高服务台数据
NPS 回复 < 7高调查数据
对发票提出争议或付款问题中计费系统
关键联系人离职高联系人监控
距离合同续约不到 90 天中CRM 数据
检测到正在评估竞品高销售情报
风险评分计算
Risk Score = Sum of (Signal Weight x Signal Present)

0-20: Low risk (monitor)
21-40: Moderate risk (proactive outreach)
41-60: High risk (intervention required)
61+: Critical risk (executive escalation)

指标与基准

关键指标
指标公式良好优秀
挽留率成功挽留的客户数 / 取消尝试次数10-15%20%+
主动流失率主动取消数 / 客户总数(月度)< 3%< 1.5%
非主动流失率因付款失败而取消的数量 / 客户总数(月度)< 1.5%< 0.5%
付款追回率追回的失败付款数 / 失败付款总数25-35%40%+
挽回率重新激活数 / 取消数(90 天窗口期)5-10%10%+
退出调查完成率已完成的调查数 / 取消尝试次数> 70%> 90%
挽留优惠接受率已接受的优惠数 / 已展示的优惠数15-25%30%+
危险信号
信号诊断行动
挽留率 < 5%优惠与流失原因不匹配重建优惠与原因的映射关系
退出调查完成率 < 60%调查过长或可选设为必填,仅保留 1 个问题
追回率 < 20%重试逻辑或邮件出现故障审查催款序列
单一原因 > 40%存在系统性产品/定价问题上报产品团队/管理层
月流失率 > 5%业务可能正在萎缩仅靠流失预防无法解决;重新审视 ICP 和产品

流失影响计算器

快速估算
Monthly MRR at risk = Total MRR x Monthly churn rate
Annual MRR saved by 1% churn reduction = Total MRR x 0.01 x 12
Annual MRR saved by 20% save rate = (Monthly MRR at risk x 0.20) x 12

Example:
  MRR: $500,000
  Monthly churn: 4% = $20,000/month lost
  Reduce to 3% = $5,000/month saved = $60,000/year
  Add 20% save rate on remaining = $3,000/month saved = $36,000/year
  Total annual impact: $96,000

输出产物

产物格式描述
取消流程设计包含文案的 5 阶段流程从触发到取消后的完整流程
退出调查单选按钮选项 + 映射关系6-8 个原因及对应的挽留优惠
挽留优惠系统决策树原因与优惠的映射关系及经济效益
催款序列5 封邮件的序列主题行、正文文案、时间安排、重试计划
挽回活动3 封邮件的序列第 7、30、60 天发送的邮件,包含主题行和优惠
流失记分卡指标表格当前指标与基准对比,并分析差距
影响模型收入计算不同改善幅度下减少流失带来的金额影响

相关技能

  • customer-success-manager -- 用于健康度评分、QBR 和扩张收入。不用于取消流程或催款设计。
  • pricing-strategy -- 当流失根因是定价或套餐不匹配时使用。不用于挽留优惠设计。
  • onboarding-cro -- 当流失可追溯到激活效果不佳时使用。如果用户从未体验到价值,应先改进引导流程。
  • referral-program -- 用于获客。流失预防关注的是漏斗的另一端。

工具参考

1. churn_impact_calculator.py

用途: 计算不同改善幅度下减少流失带来的收入影响。

python scripts/churn_impact_calculator.py --mrr 500000 --churn-rate 4.0 --save-rate 20
python scripts/churn_impact_calculator.py --mrr 500000 --churn-rate 4.0 --save-rate 20 --json
标志必需描述
--mrr是当前每月经常性收入,单位为美元
--churn-rate是当前月流失率(百分比,例如 4.0 表示 4%)
--save-rate否取消流程挽留率(百分比,默认值:15)
--target-churn否目标流失率(百分比,默认值:当前值减 1)
--json否以 JSON 格式输出结果
2. dunning_sequence_analyzer.py

用途: 分析催缴邮件序列的效果,并建议优化重试时间。

python scripts/dunning_sequence_analyzer.py dunning_data.json
python scripts/dunning_sequence_analyzer.py dunning_data.json --json
标记必填描述
dunning_data.json是包含付款失败和重试数据的 JSON 文件
--json否以 JSON 格式输出结果

输入 JSON 格式:

{
  "failed_payments": [
    {
      "payment_id": "PAY-001",
      "amount": 99.00,
      "failure_reason": "expired_card",
      "retry_attempts": [
        {"day": 0, "recovered": false},
        {"day": 3, "recovered": false},
        {"day": 7, "recovered": true}
      ]
    }
  ]
}
3. exit_survey_analyzer.py

用途: 分析退出调查回复,以识别客户流失模式、挽留优惠效果和系统性问题。

python scripts/exit_survey_analyzer.py survey_data.json
python scripts/exit_survey_analyzer.py survey_data.json --json
标记必填描述
survey_data.json是包含退出调查回复数据的 JSON 文件
--json否以 JSON 格式输出结果
--period否分析周期标签(默认值:"current")

故障排查

问题可能原因解决方案
所有原因的挽留率都低于 5%挽留优惠与退出原因不匹配根据调查数据重新构建退出原因与优惠的映射;运行 exit_survey_analyzer.py,找出不匹配项
退出调查完成率低于 60%调查为可选项或内容过长在显示挽留优惠前,将单题调查设为必填;移除多页流程
付款追回率低于 20%重试逻辑配置错误,或催缴邮件未发送使用 dunning_sequence_analyzer.py 审查催缴序列;验证邮件送达情况和重试计划
单个退出原因占回复量的比例超过 40%产品或定价存在系统性问题提交给产品团队或管理层处理;仅靠取消流程无法解决
月客户流失率高于 5%可能是 ICP、产品市场契合度或定价问题仅靠客户流失预防无法解决;应结合定价策略和产品反馈闭环
挽回邮件没有带来任何重新激活邮件未能进入收件箱,或优惠力度不足检查送达情况(SPF、DKIM、DMARC);测试力度更大的优惠;验证重新激活链接是否有效
非自愿客户流失增加,而自愿客户流失保持稳定未启用卡片自动更新,或重试时间安排不佳在支付处理商处启用自动更新卡片;在 dunning_sequence_analyzer.py 中检查重试计划

成功标准

  • 月自愿客户流失率低于 2.5%(低于 1.5% 为优秀)
  • 月非自愿客户流失率低于 1.0%(低于 0.5% 为优秀)
  • 取消流程挽留率为 15-25%(高于 20% 为优秀)
  • 失败付款的追回率达到 30% 以上
  • 退出调查完成率高于 80%
  • 取消后 90 天内的挽回重新激活率为 5-10%
  • 挽留优惠接受率高于 20%,且留存客户在接受挽留后继续留存 6 个月以上

范围与限制

  • 范围内: 取消流程设计、退出调查架构、挽留优惠映射、催缴序列、付款追回、挽回活动、客户流失影响建模
  • 范围外: 产品市场契合度分析、定价重构、ICP 重新定义、客户获取
  • 数据依赖: 脚本分析来自 JSON 输入的时间点快照;不与 CRM 实时集成
  • 非预测性机器学习: 所有评分均为确定性算法计算,不使用机器学习模型
  • 法律说明: 取消流程必须遵守 FTC 指南(美国)和消费者保护法(欧盟);不得让取消变得不合理地困难
  • 收入估算: 影响计算是基于输入假设的预测,并非保证

集成点

  • customer-success-manager -- 将健康度评分纳入流失风险评估;使用流失数据校准健康度评分阈值
  • pricing-strategy -- 当退出调查数据显示 PRICE 是主要原因(>30%)时,升级至 pricing-strategy 进行定价结构审查
  • onboarding-cro -- 当退出调查数据显示 LOW_USAGE 或 COMPLEXITY 是首要原因时,根本原因通常是激活效果不佳;应先改进引导流程
  • revenue-operations -- 管道和预测模型应将降低流失率对净收入留存率(NRR)的影响纳入考量
  • referral-program -- 接受挽留优惠后留存的客户,在持续使用 90 天后可考虑加入推荐计划

评论

支持 Markdown