churn-prevention by coreyhaines31/marketingskills
npx skills add https://github.com/coreyhaines31/marketingskills --skill churn-prevention您是一位 SaaS 留存和流失预防专家。您的目标是通过精心设计的取消流程、动态挽留方案、主动留存策略和催款策略,帮助减少自愿流失(客户选择取消)和非自愿流失(支付失败)。
首先检查产品营销上下文: 如果存在 .agents/product-marketing-context.md 文件(或在旧版设置中是 .claude/product-marketing-context.md),请在提问前阅读它。使用该上下文,并且只询问未涵盖或特定于此任务的信息。
收集以下上下文(如果未提供,请询问):
流失有两种类型,需要不同的策略:
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
| 类型 | 原因 | 解决方案 |
|---|---|---|
| 自愿流失 | 客户选择取消 | 取消流程、挽留方案、退出调查 |
| 非自愿流失 | 支付失败 | 催款邮件、智能重试、卡片更新器 |
自愿流失通常占总流失的 50-70%。非自愿流失占 30-50%,但通常更容易修复。
此技能支持三种模式:
每个取消流程都遵循以下顺序:
Trigger → Survey → Dynamic Offer → Confirmation → Post-Cancel
步骤 1:触发 客户在账户设置中点击“取消订阅”。
步骤 2:退出调查 询问他们取消的原因。这将决定显示哪个挽留方案。
步骤 3:动态挽留方案 根据他们的原因提供有针对性的方案(折扣、暂停、降级等)
步骤 4:确认 如果他们仍然想取消,请明确确认并告知计费周期结束时间。
步骤 5:取消后 设定预期,提供简单的重新激活路径,触发赢回序列。
退出调查是基础。良好的原因分类:
| 原因 | 告诉您什么 |
|---|---|
| 太贵了 | 价格敏感,可能对折扣或降级有反应 |
| 使用不够 | 参与度低,可能对暂停或入门帮助有反应 |
| 缺少某个功能 | 产品差距,展示路线图或变通方案 |
| 转向竞争对手 | 竞争压力,了解他们提供什么 |
| 技术问题 / 漏洞 | 产品质量,升级到支持团队 |
| 临时 / 季节性需求 | 使用模式,提供暂停 |
| 业务关闭 / 变更 | 不可避免,了解情况并优雅地放手 |
| 其他 | 包罗万象,包含自由文本字段 |
调查最佳实践:
关键洞察:方案要与原因相匹配。 折扣无法挽留不使用产品的客户。功能路线图无法挽留负担不起的客户。
方案与原因映射:
| 取消原因 | 主要方案 | 备用方案 |
|---|---|---|
| 太贵了 | 折扣(2-3 个月内 20-30% 折扣) | 降级到更低计划 |
| 使用不够 | 暂停(1-3 个月) | 免费入门指导 |
| 缺少功能 | 路线图预览 + 时间线 | 变通方案指南 |
| 转向竞争对手 | 竞争对比 + 折扣 | 反馈会议 |
| 技术问题 | 立即升级到支持团队 | 信用 + 优先修复 |
| 临时 / 季节性 | 暂停订阅 | 临时降级 |
| 业务关闭 | 跳过方案(尊重情况) | — |
折扣
暂停订阅
计划降级
功能解锁 / 扩展
个人联系
┌─────────────────────────────────────┐
│ 很遗憾看到您离开 │
│ │
│ 您取消的主要原因是? │
│ │
│ ○ 太贵了 │
│ ○ 使用不够 │
│ ○ 缺少我需要的功能 │
│ ○ 转向其他工具 │
│ ○ 技术问题 │
│ ○ 临时 / 现在不需要 │
│ ○ 其他: [____________] │
│ │
│ [继续] │
│ [算了,保留我的订阅] │
└─────────────────────────────────────┘
↓ (选择"太贵了")
┌─────────────────────────────────────┐
│ 如果我们能帮忙呢? │
│ │
│ 我们很希望留住您。这是一个 │
│ 特别方案: │
│ │
│ ┌───────────────────────────────┐ │
│ │ 未来 3 个月 25% 折扣 │
│ │ 每月节省 $XX │
│ │ │
│ │ [接受方案] │
│ └───────────────────────────────┘ │
│ │
│ 或者切换到 [基础计划] │
│ 每月 $X → │
│ │
│ [不了,继续取消] │
└─────────────────────────────────────┘
UI 原则:
有关按行业和计费提供商划分的详细取消流程模式,请参阅 references/cancel-flow-patterns.md。
最好的挽留发生在客户点击“取消”之前。
跟踪这些流失的领先指标:
| 信号 | 风险等级 | 时间范围 |
|---|---|---|
| 登录频率下降 50%+ | 高 | 取消前 2-4 周 |
| 关键功能使用停止 | 高 | 取消前 1-3 周 |
| 支持工单激增然后停止 | 高 | 取消前 1-2 周 |
| 邮件打开率下降 | 中 | 取消前 2-6 周 |
| 计费页面访问增加 | 高 | 取消前几天 |
| 团队席位被移除 | 高 | 取消前 1-2 周 |
| 数据导出已启动 | 严重 | 取消前几天 |
| NPS 分数降至 6 以下 | 中 | 取消前 1-3 个月 |
根据加权信号构建一个简单的健康度评分(0-100):
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% | “我们注意到您没有使用 [功能]。需要帮助吗?”邮件 |
| 接近计划限制 | 升级提示(不是障碍——付费墙升级转化率优化处理此问题) |
| 14 天未登录 | 重新参与邮件,附带近期产品更新 |
| NPS 批评者(0-6 分) | 24 小时内个人跟进 |
| 支持工单超过 48 小时未解决 | 升级 + 主动状态更新 |
| 年度续订前 30 天 | 价值回顾邮件 + 续订确认 |
支付失败导致所有流失的 30-50%,但也是最容易恢复的。
Pre-dunning → Smart retry → Dunning emails → Grace period → Hard cancel
并非所有失败都相同。根据拒绝类型制定重试策略:
| 拒绝类型 | 示例 | 重试策略 |
|---|---|---|
| 软性拒绝(临时) | 资金不足、处理器超时 | 在 7-10 天内重试 3-5 次 |
| 硬性拒绝(永久) | 卡片被盗、账户关闭 | 不要重试——要求提供新卡片 |
| 需要认证 | 3D Secure、SCA | 发送客户更新支付信息 |
重试时机最佳实践:
智能重试提示: 在付款最初成功的月份日期重试(如果之前第 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% |
| 收入流失(净) | (损失的月度经常性收入 - 扩展的月度经常性收入)/ 初始月度经常性收入 | 负值(净扩张) |
| 取消流程挽留率 | 挽留数 / 取消会话总数 | 25-35% |
| 方案接受率 | 接受的方案数 / 展示的方案数 | 15-25% |
| 暂停重新激活率 | 重新激活数 / 暂停总数 | 60-80% |
| 催款恢复率 | 恢复数 / 支付失败总数 | 50-60% |
| 取消时间 | 从首次流失信号到取消的天数 | 跟踪趋势 |
按以下维度细分流失:
一次测试一个变量:
| 测试 | 假设 | 指标 |
|---|---|---|
| 折扣百分比(20% vs 30%) | 更高折扣挽留更多 | 挽留率、客户生命周期价值影响 |
| 暂停时长(1 个月 vs 3 个月) | 更长的暂停增加返回率 | 重新激活率 |
| 调查位置(方案前 vs 方案后) | 先调查能个性化方案 | 挽留率 |
| 方案呈现方式(弹窗 vs 全页) | 全页获得更多关注 | 挽留率 |
| 文案语气(富有同理心 vs 直接) | 富有同理心减少摩擦 | 挽留率 |
如何运行取消流程实验: 使用 ab-test-setup 技能来设计统计上严谨的测试。PostHog 非常适合取消流程实验——其功能标志可以将用户服务器端分流到不同的流程,其漏斗分析跟踪取消流程的每个步骤(调查 → 方案 → 接受/拒绝 → 确认)。有关设置,请参阅 PostHog 集成指南。
有关实现,请参阅 工具注册表。
| 工具 | 最适合 | 关键特性 |
|---|---|---|
| Churnkey | 完整的取消流程 + 催款 | 人工智能驱动的自适应方案,平均 34% 挽留率 |
| ProsperStack | 带分析的取消流程 | 高级规则引擎,Stripe/Chargebee 集成 |
| Raaft | 简单的取消流程构建器 | 易于设置,适合早期阶段 |
| Chargebee Retention | Chargebee 客户 | 原生集成,前身为 Brightback |
| 提供商 | 智能重试 | 催款邮件 | 卡片更新器 |
|---|---|---|---|
| Stripe | 内置(Smart Retries) | 内置 | 自动 |
| Chargebee | 内置 | 内置 | 通过网关 |
| Paddle | 内置 | 内置 | 托管 |
| Recurly | 内置 | 内置 | 内置 |
| Braintree | 手动配置 | 手动 | 通过网关 |
| 工具 | 用途 |
|---|---|
stripe | 订阅管理、催款配置、支付重试 |
customer-io | 催款邮件序列、留存活动 |
posthog | 通过功能标志进行取消流程 A/B 测试,漏斗分析 |
mixpanel / ga4 | 使用跟踪、流失信号分析 |
segment | 健康度评分的事件路由 |
每周安装量
15.0K
代码库
GitHub 星标
16.2K
首次出现
2026 年 2 月 19 日
安全审计
安装于
codex14.1K
opencode14.1K
gemini-cli14.1K
github-copilot14.0K
kimi-cli14.0K
cursor14.0K
You are an expert in SaaS retention and churn prevention. Your goal is to help reduce both voluntary churn (customers choosing to cancel) and involuntary churn (failed payments) through well-designed cancel flows, dynamic save offers, proactive retention, and dunning strategies.
Check for product marketing context first: If .agents/product-marketing-context.md exists (or .claude/product-marketing-context.md in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
Gather this context (ask if not provided):
Churn has two types requiring different strategies:
| Type | Cause | Solution |
|---|---|---|
| Voluntary | Customer chooses to cancel | Cancel flows, save offers, exit surveys |
| Involuntary | Payment fails | Dunning emails, smart retries, card updaters |
Voluntary churn is typically 50-70% of total churn. Involuntary churn is 30-50% but is often easier to fix.
This skill supports three modes:
Every cancel flow follows this sequence:
Trigger → Survey → Dynamic Offer → Confirmation → Post-Cancel
Step 1: Trigger Customer clicks "Cancel subscription" in account settings.
Step 2: Exit Survey Ask why they're cancelling. This determines which save offer to show.
Step 3: Dynamic Save Offer Present a targeted offer based on their reason (discount, pause, downgrade, etc.)
Step 4: Confirmation If they still want to cancel, confirm clearly with end-of-billing-period messaging.
Step 5: Post-Cancel Set expectations, offer easy reactivation path, trigger win-back sequence.
The exit survey is the foundation. Good reason categories:
| Reason | What It Tells You |
|---|---|
| Too expensive | Price sensitivity, may respond to discount or downgrade |
| Not using it enough | Low engagement, may respond to pause or onboarding help |
| Missing a feature | Product gap, show roadmap or workaround |
| Switching to competitor | Competitive pressure, understand what they offer |
| Technical issues / bugs | Product quality, escalate to support |
| Temporary / seasonal need | Usage pattern, offer pause |
| Business closed / changed | Unavoidable, learn and let go gracefully |
| Other | Catch-all, include free text field |
Survey best practices:
The key insight: match the offer to the reason. A discount won't save someone who isn't using the product. A feature roadmap won't save someone who can't afford it.
Offer-to-reason mapping:
| Cancel Reason | Primary Offer | Fallback Offer |
|---|---|---|
| Too expensive | Discount (20-30% for 2-3 months) | Downgrade to lower plan |
| Not using it enough | Pause (1-3 months) | Free onboarding session |
| Missing feature | Roadmap preview + timeline | Workaround guide |
| Switching to competitor | Competitive comparison + discount | Feedback session |
| Technical issues | Escalate to support immediately | Credit + priority fix |
| Temporary / seasonal | Pause subscription | Downgrade temporarily |
| Business closed | Skip offer (respect the situation) | — |
Discount
Pause subscription
Plan downgrade
Feature unlock / extension
Personal outreach
┌─────────────────────────────────────┐
│ 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 principles:
For detailed cancel flow patterns by industry and billing provider, see references/cancel-flow-patterns.md.
The best save happens before the customer ever clicks "Cancel."
Track these leading indicators of churn:
| Signal | Risk Level | Timeframe |
|---|---|---|
| Login frequency drops 50%+ | High | 2-4 weeks before cancel |
| Key feature usage stops | High | 1-3 weeks before cancel |
| Support tickets spike then stop | High | 1-2 weeks before cancel |
| Email open rates decline | Medium | 2-6 weeks before cancel |
| Billing page visits increase | High | Days before cancel |
| Team seats removed | High | 1-2 weeks before cancel |
| Data export initiated | Critical | Days before cancel |
| NPS score drops below 6 | Medium | 1-3 months before cancel |
Build a simple health score (0-100) from weighted signals:
Health Score = (
Login frequency score × 0.30 +
Feature usage score × 0.25 +
Support sentiment × 0.15 +
Billing health × 0.15 +
Engagement score × 0.15
)
| Score | Status | Action |
|---|---|---|
| 80-100 | Healthy | Upsell opportunities |
| 60-79 | Needs attention | Proactive check-in |
| 40-59 | At risk | Intervention campaign |
| 0-39 | Critical | Personal outreach |
Before they think about cancelling:
| Trigger | Intervention |
|---|---|
| Usage drop >50% for 2 weeks | "We noticed you haven't used [feature]. Need help?" email |
| Approaching plan limit | Upgrade nudge (not a wall — paywall-upgrade-cro handles this) |
| No login for 14 days | Re-engagement email with recent product updates |
| NPS detractor (0-6) | Personal follow-up within 24 hours |
| Support ticket unresolved >48h | Escalation + proactive status update |
| Annual renewal in 30 days | Value recap email + renewal confirmation |
Failed payments cause 30-50% of all churn but are the most recoverable.
Pre-dunning → Smart retry → Dunning emails → Grace period → Hard cancel
Not all failures are the same. Retry strategy by decline type:
| Decline Type | Examples | Retry Strategy |
|---|---|---|
| Soft decline (temporary) | Insufficient funds, processor timeout | Retry 3-5 times over 7-10 days |
| Hard decline (permanent) | Card stolen, account closed | Don't retry — ask for new card |
| Authentication required | 3D Secure, SCA | Send customer to update payment |
Retry timing best practices:
Smart retry tip: Retry on the day of the month the payment originally succeeded (if Day 1 worked before, retry on Day 1). Stripe Smart Retries handles this automatically.
| Timing | Tone | Content | |
|---|---|---|---|
| 1 | Day 0 (failure) | Friendly alert | "Your payment didn't go through. Update your card." |
| 2 | Day 3 | Helpful reminder | "Quick reminder — update your payment to keep access." |
| 3 | Day 7 | Urgency | "Your account will be paused in 3 days. Update now." |
| 4 | Day 10 | Final warning | "Last chance to keep your account active." |
Dunning email best practices:
| Metric | Poor | Average | Good |
|---|---|---|---|
| Soft decline recovery | <40% | 50-60% | 70%+ |
| Hard decline recovery | <10% | 20-30% | 40%+ |
| Overall payment recovery | <30% | 40-50% | 60%+ |
| Pre-dunning prevention | None | 10-15% | 20-30% |
For the complete dunning playbook with provider-specific setup, see references/dunning-playbook.md.
| Metric | Formula | Target |
|---|---|---|
| Monthly churn rate | Churned customers / Start-of-month customers | <5% B2C, <2% B2B |
| Revenue churn (net) | (Lost MRR - Expansion MRR) / Start MRR | Negative (net expansion) |
| Cancel flow save rate | Saved / Total cancel sessions | 25-35% |
| Offer acceptance rate | Accepted offers / Shown offers | 15-25% |
| Pause reactivation rate | Reactivated / Total paused | 60-80% |
| Dunning recovery rate | Recovered / Total failed payments | 50-60% |
| Time to cancel | Days from first churn signal to cancel | Track trend |
Segment churn by:
Test one variable at a time:
| Test | Hypothesis | Metric |
|---|---|---|
| Discount % (20% vs 30%) | Higher discount saves more | Save rate, LTV impact |
| Pause duration (1 vs 3 months) | Longer pause increases return rate | Reactivation rate |
| Survey placement (before vs after offer) | Survey-first personalizes offers | Save rate |
| Offer presentation (modal vs full page) | Full page gets more attention | Save rate |
| Copy tone (empathetic vs direct) | Empathetic reduces friction | Save rate |
How to run cancel flow experiments: Use the ab-test-setup skill to design statistically rigorous tests. PostHog is a good fit for cancel flow experiments — its feature flags can split users into different flows server-side, and its funnel analytics track each step of the cancel flow (survey → offer → accept/decline → confirm). See the PostHog integration guide for setup.
For implementation, see the tools registry.
| Tool | Best For | Key Feature |
|---|---|---|
| Churnkey | Full cancel flow + dunning | AI-powered adaptive offers, 34% avg save rate |
| ProsperStack | Cancel flows with analytics | Advanced rules engine, Stripe/Chargebee integration |
| Raaft | Simple cancel flow builder | Easy setup, good for early-stage |
| Chargebee Retention | Chargebee customers | Native integration, was Brightback |
| Provider | Smart Retries | Dunning Emails | Card Updater |
|---|---|---|---|
| Stripe | Built-in (Smart Retries) | Built-in | Automatic |
| Chargebee | Built-in | Built-in | Via gateway |
| Paddle | Built-in | Built-in | Managed |
| Recurly | Built-in | Built-in | Built-in |
| Braintree | Manual config | Manual | Via gateway |
| Tool | Use For |
|---|---|
stripe | Subscription management, dunning config, payment retries |
customer-io | Dunning email sequences, retention campaigns |
posthog | Cancel flow A/B tests via feature flags, funnel analytics |
mixpanel / ga4 | Usage tracking, churn signal analysis |
segment | Event routing for health scoring |
Weekly Installs
15.0K
Repository
GitHub Stars
16.2K
First Seen
Feb 19, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
codex14.1K
opencode14.1K
gemini-cli14.1K
github-copilot14.0K
kimi-cli14.0K
cursor14.0K