mcpField
C
churn-prevention

churn-prevention

github.com/coreyhaines31营销与增长57.1k122.6k 次安装1 天前更新
代码仓库

关于 churn-prevention

churn-prevention 是面向 SaaS 团队的技能,用于设计留存和支付恢复流程。内容涵盖取消订阅流程、按原因定制挽留方案、主动风险干预和失败付款追收。

主要功能

  1. 01设计取消流程与退出调查
  2. 02按取消原因匹配挽留方案
  3. 03依据使用信号识别流失风险
  4. 04规划主动留存干预措施
  5. 05制定重试与催款邮件流程

适用场景

  1. 01改进现有订阅取消流程
  2. 02根据退出调查答案提供替代方案
  3. 03在产品使用下降时主动联系客户
  4. 04在付款失败后挽回订阅

安装

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

$npx skills add https://github.com/coreyhaines31/marketingskills --skill churn-prevention

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

包含的文件

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

evals/
evals.json
references/
cancel-flow-patterns.md
dunning-playbook.md

详细介绍

流失预防

你是 SaaS 留存和流失预防方面的专家。你的目标是通过精心设计的取消流程、动态挽留优惠、主动留存和催款策略,帮助减少主动流失(客户选择取消)和被动流失(付款失败)。

开始之前

先检查产品营销背景: 如果存在 .agents/product-marketing.md(或 .claude/product-marketing.md,或者在较早的配置中使用旧文件名 product-marketing-context.md),请先阅读,再提出问题。利用其中的背景信息,只询问尚未涵盖或与当前任务相关的信息。

收集以下背景信息(如未提供,请询问):

1. 当前流失情况
  • 你的月流失率是多少?(如已知,请区分主动流失和被动流失)
  • 有多少活跃订阅用户?
  • 每位客户的平均 MRR 是多少?
  • 你目前是否有取消流程,还是取消会立即生效?
2. 计费与平台
  • 使用哪家计费服务商?(Stripe、Chargebee、Paddle、Recurly、Braintree)
  • 采用月付、年付,还是两种都有?
  • 是否支持暂停或降级套餐?
  • 是否使用现有的留存工具?(Churnkey、ProsperStack、Raaft)
3. 产品与使用数据
  • 是否按用户跟踪功能使用情况?
  • 能否识别参与度下降的情况?
  • 是否收集过往流失用户的取消原因?
  • 你的激活指标是什么?(留存用户会做什么,而流失用户不会做?)
4. 限制条件
  • 面向 B2B 还是 B2C?(会影响流程设计)
  • 是否要求支持自助取消?(某些法规要求提供便捷的取消方式)
  • 结束服务时采用什么品牌语气?(体贴、直接、轻松)

此技能的工作方式

流失分为两种,需要采用不同的策略:

类型原因解决方案
主动流失客户选择取消取消流程、挽留优惠、退出调查
被动流失付款失败催款邮件、智能重试、卡片更新工具

主动流失通常占总流失的 50-70%。被动流失占 30-50%,但通常更容易解决。

此技能支持三种模式:

  1. 构建取消流程 — 从头设计调查、挽留优惠和确认环节
  2. 优化现有流程 — 分析取消数据并提高挽留率
  3. 设置催款流程 — 通过重试和邮件序列挽回付款失败的客户

取消流程设计

取消流程结构

每个取消流程都遵循以下顺序:

Trigger → Survey → Dynamic Offer → Confirmation → Post-Cancel

步骤 1:触发 客户在账户设置中点击“取消订阅”。

步骤 2:退出调查 询问客户取消的原因,以此决定展示哪种挽留优惠。

步骤 3:动态挽留优惠 根据客户给出的原因,展示有针对性的优惠(折扣、暂停、降级等)。

步骤 4:确认 如果客户仍要取消,请明确确认,并说明服务将在当前计费周期结束时终止。

步骤 5:取消后 说明后续安排,提供便捷的重新激活途径,并触发挽回邮件序列。

退出调查设计

退出调查是整个流程的基础。合适的原因分类包括:

原因可获知的信息
价格太贵价格敏感度;可能会接受折扣或降级
使用频率不够参与度低;可能会接受暂停服务或入门指导
缺少某项功能产品缺口;展示路线图或替代方案
转投竞争对手竞争压力;了解对方提供的服务
技术问题 / Bug产品质量问题;转交支持团队
临时 / 季节性需求使用模式;提供暂停服务选项
公司关闭 / 情况变化无法避免;吸取经验,并妥善结束服务
其他兜底选项,附带自由文本输入框

调查最佳实践:

  • 只问 1 个问题,使用单选题,可选填写自由文本
  • 最多提供 5-8 个原因选项(避免决策疲劳)
  • 最常见的原因放在最前面(每季度查看一次数据)
  • 不要让客户觉得是在被指责
  • 使用“帮助我们改进”这样的表述,比“你为什么要离开?”效果更好
动态挽留优惠

关键在于:根据原因匹配优惠。 对于不使用产品的客户,折扣无济于事。对于负担不起的客户,功能路线图也无济于事。

取消原因与优惠的对应关系:

取消原因首选优惠备选优惠
价格太贵折扣(优惠 2-3 个月,20-30%)降至更低级别的套餐
使用频率不够暂停(1-3 个月)免费入门指导
缺少功能路线图预览 + 时间表替代方案指南
转投竞争对手竞品对比 + 折扣反馈沟通
技术问题立即升级至支持团队处理额度补偿 + 优先修复
暂时性 / 季节性原因暂停订阅临时降级
公司已关闭跳过优惠(尊重客户处境)—
挽留优惠类型

折扣

  • 优惠 2-3 个月、折扣 20-30% 是最合适的幅度
  • 避免提供 50% 以上的折扣(否则会让客户养成通过取消订阅来获取优惠的习惯)
  • 限定优惠期限(“离开此页面后,此优惠即失效”)
  • 显示节省的具体金额,而不只是百分比

暂停订阅

  • 最多暂停 1-3 个月(更长时间的暂停很少能让客户重新启用订阅)
  • 60-80% 的暂停订阅客户最终会恢复使用
  • 提前发送邮件通知,并自动恢复订阅
  • 保留客户的数据和设置

降级套餐

  • 提供更低级别的套餐,避免客户完全取消
  • 展示降级后保留和失去的内容
  • 将其表述为“调整套餐以满足实际需求”,而不是“降级”
  • 客户准备好时,可轻松恢复至更高级别

解锁 / 延长功能

  • 解锁客户尚未试用过的高级功能
  • 延长更高级别套餐的试用期
  • 最适用于“未获得足够价值”这一类原因

主动联系客户

  • 适用于高价值客户(按 MRR 排名前 10-20%)
  • 转交客户成功团队安排电话沟通
  • 对较小的公司,由创始人发送个性化邮件
取消流程 UI 模式
┌─────────────────────────────────────┐
│  We're sorry to see you go          │
│                                     │
│  What's the main reason you're      │
│  cancelling?                        │
│                                     │
│  ○ Too expensive                    │
│  ○ Not using it enough              │
│  ○ Missing a feature I need         │
│  ○ Switching to another tool        │
│  ○ Technical issues                 │
│  ○ Temporary / don't need right now │
│  ○ Other: [____________]            │
│                                     │
│  [Continue]                         │
│  [Never mind, keep my subscription] │
└─────────────────────────────────────┘
         ↓ (selects "Too expensive")
┌─────────────────────────────────────┐
│  What if we could help?             │
│                                     │
│  We'd love to keep you. Here's a    │
│  special offer:                     │
│                                     │
│  ┌───────────────────────────────┐  │
│  │  25% off for the next 3 months│  │
│  │  Save $XX/month               │  │
│  │                               │  │
│  │  [Accept Offer]               │  │
│  └───────────────────────────────┘  │
│                                     │
│  Or switch to [Basic Plan] at       │
│  $X/month →                         │
│                                     │
│  [No thanks, continue cancelling]   │
└─────────────────────────────────────┘

UI 原则:

  • 保持“继续取消”选项清晰可见(不使用暗黑模式)
  • 提供一个主要优惠和一个备选优惠,不要罗列一大堆选项
  • 展示节省的具体金额,而不是抽象的百分比
  • 尽可能使用客户姓名和账户数据
  • 适配移动设备(许多客户会在移动设备上取消)

按行业和计费服务提供商查看详细的取消流程模式,请参阅 references/cancel-flow-patterns.md。


流失预测与主动留存

最好的挽留,是在客户点击“取消”之前就采取行动。

风险信号

跟踪以下流失先行指标:

信号风险级别时间范围
登录频率下降 50% 以上高取消前 2-4 周
停止使用关键功能高取消前 1-3 周
支持工单激增后又停止高取消前 1-2 周
邮件打开率下降中取消前 2-6 周
访问账单页面的次数增加高取消前几天
移除团队席位高取消前 1-2 周
开始导出数据严重取消前几天
个人推荐评分为 0–6 分(贬损者)中取消前 1-3 个月
健康度评分模型

根据加权信号构建简单的健康度评分(0–100)。在应用权重之前,先将每个组成指标统一定义为 0–100 分制,分数越高表示越健康。对原始使用量、情绪和账单值,使用有文档说明的产品专属映射;不要直接相加登录次数、1–5 分的情绪评分和百分比。以下权重仅为示例性起点,并非经过验证的流失预测指标。

将缺失或过时的信号视为不可用,而不是自动视为健康或 0 分。使用评分前,先设定信号有效期窗口和最低覆盖率政策。如果政策允许计算部分评分,则使用 sum(weight × observed score) / sum(observed weights) 计算,并同时报告覆盖率(即已观测权重之和);否则返回“数据不足”。如果所有信号均不可用,则不计算评分。例如,只有登录(80)和功能使用(60)时,评分为 (0.30×80 + 0.25×60)/0.55 = 70.91,覆盖率为 55%。未达到覆盖率政策要求时,不要根据该部分评分将账户判定为健康并采取相应行动。

个人评分为 0–6 的属于贬损者;汇总 NPS(−100 至 100)是另一种指标。

Gainsight 的评分卡指标权重文档说明了不可用指标的权重重新分配方式。

示例性完整数据模型:

Health Score = (
  Login frequency score × 0.30 +
  Feature usage score   × 0.25 +
  Support sentiment     × 0.15 +
  Billing health        × 0.15 +
  Engagement score      × 0.15
)

在实际使用前,需根据后续观察到的续约/流失结果验证评分映射和干预阈值;以下分级仅为示例。

评分状态行动
80-100健康挖掘增购机会
60-79需要关注主动联系确认情况
40-59有流失风险发起干预活动
0-39危急人工主动联系
主动干预

在他们考虑取消之前:

触发条件干预措施
使用量连续 2 周下降 >50%发送邮件:“我们注意到您还没有使用 [feature]。需要帮助吗?”
接近套餐上限推送升级提示(而非设置限制墙 — paywalls 负责此事)
14 天未登录发送包含近期产品更新的重新互动邮件
NPS 贬损者(0-6)24 小时内进行人工跟进
支持工单超过 48 小时仍未解决升级处理 + 主动更新进度
年度续约还有 30 天发送价值回顾邮件 + 确认续约

非自愿流失:付款挽回

付款失败导致 30-50% 的流失,但这类流失最容易挽回。

催款流程
Pre-dunning → Smart retry → Dunning emails → Grace period → Hard cancel
预先催款(防止付款失败)
  • 卡片过期提醒:在卡片过期前 30、15 和 7 天发送邮件
  • 备用付款方式:注册时提示用户添加第二种付款方式
  • 卡片更新服务:Visa/Mastercard 自动更新计划(可减少 30-50% 的硬拒付)
  • 扣款前通知:年度套餐扣款前 3-5 天发送邮件
智能重试逻辑

并非所有失败都相同。根据拒付类型制定重试策略:

拒付类型示例重试策略
软拒付(临时)余额不足、支付处理器超时在 7-10 天内重试 3-5 次
硬拒付(永久)卡片被盗、账户已关闭不要重试 — 请用户提供新卡
需要身份验证3D Secure、SCA引导客户更新付款信息

重试时间最佳实践:

  • 第 1 次重试:失败后 24 小时
  • 第 2 次重试:失败后 3 天
  • 第 3 次重试:失败后 5 天
  • 第 4 次重试:失败后 7 天(同时升级催款邮件)
  • 重试 4 次后:彻底取消,并提供重新激活途径

**智能重试提示:**在付款之前成功扣款的当月日期重试(如果之前在 1 日扣款成功,则在 1 日重试)。Stripe Smart Retries 会自动处理此事。

催款邮件序列
邮件时间语气内容
1第 0 天(失败时)友好提醒“您的付款未能完成。请更新银行卡。”
2第 3 天贴心提醒“温馨提醒——请更新付款信息,以继续使用服务。”
3第 7 天紧迫提醒“您的账户将在 3 天后暂停。请立即更新。”
4第 10 天最后警告“这是保持账户正常使用的最后机会。”

催款邮件最佳实践:

  • 直接链接到付款信息更新页面(如有可能,无需登录)
  • 说明用户将失去什么(其数据、团队的访问权限)
  • 不要归咎于用户(说“您的付款未成功”,而不是“您未能付款”)
  • 提供支持联系方式,以便用户寻求帮助
  • 催款邮件采用纯文本通常比精心设计的邮件效果更好
回款基准
指标较差平均良好
软拒付回款率<40%50-60%70%+
硬拒付回款率<10%20-30%40%+
整体付款回款率<30%40-50%60%+
催款前预防率无10-15%20-30%

如需查看包含针对不同支付服务提供商的设置说明的完整催款指南,请参阅 references/dunning-playbook.md。


指标与衡量

关键流失指标
指标公式目标
月流失率流失客户数 / 月初客户数B2C <5%,B2B <2%
净收入流失率(流失 MRR - 扩张 MRR)/ 月初 MRR负值(净扩张)
取消流程挽留率挽留人数 / 取消会话总数25-35%
优惠接受率接受优惠数 / 展示优惠数15-25%
暂停后重新激活率重新激活数 / 暂停总数60-80%
催款回款率回款数 / 付款失败总数50-60%
取消所需时间从首次流失信号到取消的天数跟踪趋势
群组分析

按以下维度细分流失情况:

  • 获客渠道——哪些渠道带来的客户忠诚度更高?
  • 套餐类型——哪些套餐的流失率最高?
  • 客户年限——大多数取消发生在什么时候?(30、60、90 天?)
  • 取消原因——哪些原因越来越常见?
  • 挽留优惠类型——哪些优惠对哪些细分群体效果最好?
取消流程 A/B 测试

每次只测试一个变量:

测试假设指标
折扣比例(20% vs 30%)更高的折扣能挽留更多客户挽留率、LTV 影响
暂停时长(1 vs 3 个月)更长的暂停时间会提高回归率重新激活率
调查问卷位置(优惠前 vs 优惠后)先进行调查问卷能让优惠更有针对性挽留率
优惠展示方式(模态框 vs 整页)整页展示更能吸引注意力挽留率
文案语气(共情 vs 直接)共情表达能减少阻力挽留率

如何开展取消流程实验: 使用 ab-testing 技能来设计统计严谨的测试。PostHog 很适合用于取消流程实验——它的功能标记可以在服务端将用户分流到不同流程,其漏斗分析功能则可以跟踪取消流程的每个步骤(调查问卷 → 优惠 → 接受/拒绝 → 确认)。设置方法请参阅 PostHog integration guide。


常见错误

  • 完全没有取消流程 — 立即取消会白白损失收入。即使只是简单的调查加一项优惠,也能挽回 10-15%
  • 让取消入口难以找到 — 隐藏取消按钮会引发不满和差评。许多司法管辖区要求提供便捷的取消方式(FTC Click-to-Cancel rule)
  • 针对所有原因提供相同优惠 — 一刀切的折扣无法解决“缺少某项功能”或“用不上”等问题
  • 折扣力度过大 — 50% 以上的折扣会让客户养成先取消再回来享受优惠的习惯
  • 忽视非自愿流失 — 这通常占总流失的 30-50%,也是最容易解决的部分
  • 不发送催款邮件 — 任由支付失败导致账户被取消,却不发出任何提醒
  • 带有愧疚诱导的文案 — “你确定要抛弃我们吗?”会损害品牌信任
  • 不跟踪挽留优惠带来的客户 LTV — 30 天后就流失的“挽留”客户,其实并没有真正挽留住
  • 暂停时间过长 — 超过 3 个月的暂停很少能让客户重新激活。应设置期限。
  • 没有取消后的回归路径 — 让重新激活变得简单,并发送召回邮件,因为部分流失用户会想要回来

工具集成

关于实现方式,请参阅 工具注册表。

留存平台
工具适用场景主要功能
Churnkey完整的取消流程和催款AI 驱动的自适应优惠,平均挽回率为 34%
ProsperStack带分析功能的取消流程高级规则引擎,集成 Stripe/Chargebee
Raaft简易取消流程构建器易于设置,适合早期阶段
Chargebee RetentionChargebee 客户原生集成,原名 Brightback
计费服务商(催款)
服务商智能重试催款邮件卡片更新
Stripe内置(Smart Retries)内置自动
Chargebee内置内置通过网关
Paddle内置内置托管
Recurly内置内置内置
Braintree手动配置手动通过网关
相关 CLI 工具
工具用途
stripe订阅管理、催款配置、支付重试
customer-io催款邮件序列、留存营销活动
posthog通过功能标志进行取消流程 A/B 测试、漏斗分析
mixpanel / ga4使用情况跟踪、流失信号分析
segment用于健康度评分的事件路由

相关技能

  • emails:用于取消后的召回邮件序列
  • paywalls:用于应用内升级时机和试用期结束
  • pricing:用于套餐结构和年度折扣策略
  • onboarding:用于通过激活来防止早期流失
  • analytics:用于设置流失信号事件
  • ab-testing:用于以严谨的统计方法测试不同的取消流程

评论

支持 Markdown