Communitygithub.com

解約防止

顧客解約率を削減し、解約フローの構築、特別オファーの設定、支払い失敗の回復、リテンション戦略の実装を支援します。

解約防止 とは?

このスキルは、SaaSプロダクトにおける自主的解約(顧客による解約)と非自主的解約(支払い失敗)の両方を減らすための包括的な戦略を提供します。解約理由に基づいた動的セーブオファー(割引、休止、プランダウングレードなど)を提示するキャンセルフローの設計、チャーン予測モデル(ヘルススコア)によるプロアクティブなリテンション、およびスマートリトライとダニングメールによる支払い回復のベストプラクティスをカバーしています。Stripe、Chargebee、Paddleなど主要な請求プロバイダーに対応し、B2B/B2C両方のユースケースをサポートします。このスキルはClaude Code、Cursor、CodexなどのAIエージェントで活用でき、開発者が製品マーケティングコンテキストから解約フロー設計、A/Bテストまでを効率的に実行できるように設計されています。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/coreyhaines31/marketingskills/tree/main/skills/churn-prevention

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

解約防止 は何をしますか?

あなたはSaaSのリテンションと解約防止のエキスパートです。目標は、適切に設計された解約フロー、動的なセーブオファー、プロアクティブなリテンション、ダニング戦略を通じて、自主的解約(顧客が自ら解約すること)と非自主的解約(支払い失敗)の両方を削減することです。

開始前に

まず製品マーケティングコンテキストを確認してください: .agents/product-marketing.md(または.claude/product-marketing.md、古い設定ではproduct-marketing-context.md)が存在する場合は、質問する前にそれを読んでください。そのコンテキストを使用し、既にカバーされている情報やこのタスクに固有の情報についてのみ質問してください。

以下のコンテキストを収集します(提供されていない場合は質問):

1. 現在の解約状況

  • 月間解約率は?(自主的/非自主的がわかれば)
  • アクティブなサブスクライバー数は?
  • 顧客あたりの平均MRRは?
  • 現在解約フローはあるか、それとも解約は即時発生するか?

2. 請求とプラットフォーム

  • 請求プロバイダーは?(Stripe、Chargebee、Paddle、Reclurly、Braintree)
  • 請求間隔は月次、年次、または両方?
  • プランの一時停止またはダウングレードをサポートしているか?
  • 既存のリテンションツールはあるか?(Churnkey、ProsperStack、Raaft)

3. 製品と使用状況データ

  • ユーザーごとの機能使用状況を追跡しているか?
  • エンゲージメントの低下を特定できるか?
  • 過去の解約理由データはあるか?
  • アクティベーションメトリクスは何か?(リテンションされたユーザーが解約ユーザーと異なる行動は?)

4. 制約事項

  • B2BかB2Cか?(フローデザインに影響)
  • セルフサービスでの解約は必須か?(一部の規制で簡単な解約が義務付けられている)
  • オフボーディング時のブランドトーンは?(共感的、直接的、遊び心)

このスキルの仕組み

解約には異なる戦略を必要とする2つのタイプがあります:

タイプ原因解決策
自主的解約顧客が自ら解約を選択解約フロー、セーブオファー、退会アンケート
非自主的解約支払い失敗ダニングメール、スマートリトライ、カード自動更新

自主的解約は通常、全解約の50〜70%を占めます。非自主的解約は30〜50%ですが、修正が容易なことが多いです。

このスキルは3つのモードをサポートします:

  1. 解約フローを構築 — アンケート、セーブオファー、確認を含めてゼロから設計
  2. 既存のフローを最適化 — 解約データを分析し、セーブ率を向上
  3. ダニングを設定 — リトライとメールシーケンスによる支払い失敗の回復

解約フローの設計

解約フローの構造

すべての解約フローは次のシーケンスに従います:

トリガー → アンケート → 動的オファー → 確認 → 解約後

ステップ 1: トリガー 顧客がアカウント設定で「サブスクリプションを解約」をクリック。

ステップ 2: 退会アンケート 解約理由を尋ねます。これにより、表示するセーブオファーが決まります。

ステップ 3: 動的セーブオファー 理由に基づいてターゲットを絞ったオファーを提示(割引、休止、ダウングレードなど)

ステップ 4: 確認 それでも解約したい場合は、請求期間の終了メッセージとともに明確に確認。

ステップ 5: 解約後 期待値を設定し、簡単な再アクティブ化のパスを提供し、再エンゲージメントシーケンスをトリガー。

退会アンケートの設計

退会アンケートは基盤です。適切な理由カテゴリ:

理由それが示すこと
高すぎる価格感度が高い、割引またはダウングレードに反応する可能性
十分に使用していない低エンゲージメント、休止またはオンボーディング支援に反応する可能性
必要な機能がないプロダクトギャップ、ロードマップまたは回避策を表示
競合他社に乗り換え競争圧力、彼らが提供するものを理解
技術的な問題/バグ製品品質、サポートにエスカレーション
一時的/季節的なニーズ使用パターン、休止を提案
事業閉鎖/変更避けられない、学んで潔く手放す
その他キャッチオール、自由記述フィールドを含む

アンケートのベストプラクティス:

  • 1質問、選択式+任意の自由記述
  • 最大5〜8の理由オプション(決定疲れを避ける)
  • 最も一般的な理由を最初に配置(四半期ごとにデータを確認)
  • 罪悪感を感じさせないようにする
  • 「離れる理由は?」よりも「改善にご協力ください」という枠組みの方が効果的

動的セーブオファー

重要な洞察: オファーを理由にマッチさせること。 製品を使用していない人に割引は効果がありません。製品を購入できない人に機能ロードマップは効果がありません。

オファーと理由のマッピング:

解約理由プライマリオファーフォールバックオファー
高すぎる割引(2〜3ヶ月間20〜30%)低プランへのダウングレード
十分に使用していない休止(1〜3ヶ月)無料オンボーディングセッション
必要な機能がないロードマッププレビュー+タイムライン回避策ガイド
競合他社に乗り換え競合比較+割引フィードバックセッション
技術的な問題即座にサポートにエスカレーションクレジット+優先修正
一時的/季節的サブスクリプションを休止一時的にダウングレード
事業閉鎖オファーをスキップ(状況を尊重)—

セーブオファーの種類

割引

  • 2〜3ヶ月間20〜30%オフが最適
  • 50%以上の割引は避ける(顧客がお得のために解約する習慣をつける)
  • オファーに期限を設定(「このオファーはこのページを離れると期限切れになります」)
  • 割引率だけでなく、節約できる金額を表示

サブスクリプションの休止

  • 最大1〜3ヶ月の休止(長期の休止は再アクティブ化が稀)
  • 休止者の60〜80%が最終的にアクティブに戻る
  • 事前通知メール付きの自動再アクティブ化
  • データと設定を保持

プランのダウングレード

  • 完全解約の代わりに低いティアを提供
  • 保持できるものと失うものを表示
  • 「ダウングレード」ではなく「プランを適正化」として位置付け
  • 準備ができたときに簡単に戻れるパスを用意

機能のアンロック/延長

  • 試したことのないプレミアム機能をアンロック
  • 上位ティアのトライアル延長
  • 「十分な価値を得ていない」という理由に最も効果的

パーソナルアウトリーチ

  • 高価値アカウント(MRR上位10〜20%)向け
  • カスタマーサクセスへの通話ルーティング
  • 小規模企業の場合は創業者からの個別メール

解約フローUIパターン

┌─────────────────────────────────────┐
│  お別れは寂しいです                  │
│                                     │
│  解約の主な理由は何ですか?           │
│                                     │
│  ○ 高すぎる                        │
│  ○ 十分に使用していない              │
│  ○ 必要な機能がない                  │
│  ○ 別のツールに乗り換える            │
│  ○ 技術的な問題                      │
│  ○ 一時的/今は必要ない                │
│  ○ その他: [____________]            │
│                                     │
│  [続行]                             │
│  [やっぱり、サブスクリプションを続ける] │
└─────────────────────────────────────┘
         ↓(「高すぎる」を選択)
┌─────────────────────────────────────┐
│  お手伝いできることはありますか?      │
│                                     │
│  あなたを引き続きお迎えしたいです。    │
│  特別オファーをご用意しました:         │
│                                     │
│  ┌───────────────────────────────┐  │
│  │  今後3ヶ月間25%オフ            │  │
│  │  月額XX円お得                  │  │
│  │                               │  │
│  │  [オファーを受け入れる]         │  │
│  └───────────────────────────────┘  │
│                                     │
│  または月額X円の[ベーシックプラン]に    │
│  切り替える →                       │
│                                     │
│  [いいえ、解約を続行します]           │
└─────────────────────────────────────┘

UIの原則:

  • 「解約を続行」オプションを常に表示(ダークパターン禁止)
  • 1つのプライマリオファー+1つのフォールバック、選択肢を大量に並べない
  • 抽象的な割引率ではなく、具体的な節約金額を表示
  • 可能な場合は顧客の名前とアカウントデータを使用
  • モバイルフレンドリー(多くの解約はモバイルで発生)

業界および請求プロバイダー別の詳細な解約フローパターンについては、references/cancel-flow-patterns.md を参照してください。


解約予測とプロアクティブリテンション

最善のセーブは、顧客が「解約」をクリックする前に行われます。

リスクシグナル

解約の先行指標を追跡:

シグナルリスクレベルタイムフレーム
ログイン頻度が50%以上低下高い解約の2〜4週間前
主要機能の使用が停止高い解約の1〜3週間前
サポートチケットが急増した後に停止高い解約の1〜2週間前
メール開封率が低下中程度解約の2〜6週間前
請求ページの訪問が増加高い解約の数日前
チームシートが削除された高い解約の1〜2週間前
データエクスポートが開始された致命的解約の数日前
NPSスコアが6未満に低下中程度解約の1〜3ヶ月前

ヘルススコアモデル

重み付けされたシグナルからシンプルなヘルススコア(0〜100)を構築:

ヘルススコア = (
  ログイン頻度スコア × 0.30 +
  機能使用スコア     × 0.25 +
  サポート感情       × 0.15 +
  請求健全性         × 0.15 +
  エンゲージメントスコア × 0.15
)
スコアステータスアクション
80-100健全アップセルの機会
60-79注意が必要プロアクティブな確認
40-59リスクあり介入キャンペーン
0-39致命的パーソナルアウトリーチ

プロアクティブな介入

顧客が解約を考える前に:

トリガー介入
2週間連続で使用率が50%以上低下「[機能]をお使いでないようですね。お手伝いしましょうか?」メール
プラン制限に近づいているアップグレードのナッジ(壁ではない — ペイウォールが処理)
14日間ログインなし最近の製品アップデートを含む再エンゲージメントメール
NPS批判者(0〜6)24時間以内に個別フォローアップ
サポートチケットが48時間以上未解決エスカレーション+プロアクティブなステータス更新
年間更新まで30日バリューレキャップメール+更新確認

非自主的解約: 支払いの回復

支払い失敗は全解約の30〜50%を引き起こしますが、最も回復しやすいものです。

ダニングスタック

事前ダニング → スマートリトライ → ダニングメール → 猶予期間 → 強制解約

事前ダニング(失敗の防止)

  • カード有効期限アラート: カード期限切れの30、15、7日前にメール
  • バックアップ支払い方法: サインアップ時に2番目の支払い方法を促す
  • カード自動更新サービス: Visa/Mastercardの自動更新プログラム(ハードデクライナを30〜50%削減)
  • 請求前通知: 年間プランの場合、請求の3〜5日前にメール

スマートリトライロジック

すべての失敗が同じとは限りません。拒否タイプ別のリトライ戦略:

拒否タイプ例リトライ戦略
ソフト拒否(一時的)残高不足、プロセッサタイムアウト7〜10日間で3〜5回リトライ
ハード拒否(永続的)カード盗難、口座閉鎖リトライしない — 新しいカードを依頼
認証が必要3Dセキュア、SCA顧客に支払い方法の更新を促す

リトライタイミングのベストプラクティス:

  • リトライ1: 失敗から24時間後
  • リトライ2: 失敗から3日後
  • リトライ3: 失敗から5日後
  • リトライ4: 失敗から7日後(ダニングメールエスカレーション付き)
  • 4回のリトライ後: 再アクティブ化パス付きで強制解約

スマートリトライのヒント: 元々支払いが成功した月の同じ日にリトライする(以前Day 1が成功した場合、Day 1にリトライ)。Stripe Smart Retriesはこれを自動的に処理します。

ダニングメールシーケンス

メールタイミングトーン内容
10日目(失敗時)フレンドリーなアラート「お支払いが完了しませんでした。カード情報を更新してください。」
23日目役立つリマインダー「簡単リマインダー — アクセスを維持するためにお支払い方法を更新してください。」
37日目緊急性「アカウントが3日後に一時停止されます。今すぐ更新してください。」
410日目最終警告「アカウントをアクティブに保つ最後のチャンスです。」

ダニングメールのベストプラクティス:

  • 支払い方法更新ページへの直接リンク(可能な場合はログイン不要)
  • 失うものを表示(データ、チームのアクセス)
  • 責任を転嫁しない(「支払いに失敗しました」ではなく「お支払いが完了しませんでした」)
  • サポート連絡先を含める
  • ダニングにはデザインされたメールよりもプレーンテキストの方が効果的

回復ベンチマーク

メトリクス悪い平均良い
ソフト拒否の回復率<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テスト

一度に1つの変数をテスト:

テスト仮説メトリクス
割引率(20% vs 30%)高い割引はより多くを保存セーブ率、LTVへの影響
休止期間(1ヶ月 vs 3ヶ月)長い休止は復帰率を向上再アクティブ化率
アンケート配置(オファーの前 vs 後)アンケート優先はオファーをパーソナライズセーブ率
オファー表示(モーダル vs フルページ)フルページはより注目を集めるセーブ率
コピートーン(共感的 vs 直接的)共感的は摩擦を減らすセーブ率

解約フロー実験の実行方法: ab-testing スキルを使用して統計的に厳密なテストを設計します。PostHogは解約フロー実験に適しています — そのフィーチャーフラグは...

[truncated for translation]

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

ab-testing

When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions

ads

When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms. Also use when the user mentions

ai-seo

When the user wants to optimize content for AI search engines, get cited by LLMs, or appear in AI-generated answers. Also use when the user mentions

analytics

When the user wants to set up, improve, or audit analytics tracking and measurement. Also use when the user mentions

aso

When the user wants to audit or optimize an App Store or Google Play listing. Also use when the user mentions

attribution

When the user wants to figure out which marketing actually drives conversions and revenue, choose or interpret an attribution model, or reconcile conflicting numbers across tools. Also use when the user mentions

cold-email

Write B2B cold emails and follow-up sequences that get replies. Use when the user wants to write cold outreach emails, prospecting emails, cold email campaigns, sales development emails, or SDR emails. Also use when the user mentions

co-marketing

When the user wants to find co-marketing partners, plan joint campaigns, or brainstorm partnership opportunities. Use when the user says

community-marketing

Build and leverage online communities to drive product growth and brand loyalty. Use when the user wants to create a community strategy, grow a Discord or Slack community, manage a forum or subreddit, build brand advocates, increase word-of-mouth, drive community-led growth, engage users post-signup, or turn customers into evangelists. Trigger phrases: \

competitor-profiling

When the user wants to research, profile, or analyze competitors from their URLs. Also use when the user mentions

competitors

When the user wants to create competitor comparison or alternative pages for SEO and sales enablement. Also use when the user mentions

content-strategy

When the user wants to plan a content strategy, decide what content to create, or figure out what topics to cover. Also use when the user mentions

copy-editing

When the user wants to edit, review, or improve existing marketing copy, or refresh outdated content. Also use when the user mentions

copywriting

When the user wants to write, rewrite, or improve marketing copy for any page — including homepage, landing pages, pricing pages, feature pages, about pages, or product pages. Also use when the user says

coreyhaines31/ab-test-setup

When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program," or "experiment playbook." Use this whenever someone is comparing two approaches and wants to measure which performs better, or when they want to build a systematic experimentation practice. For tracking implementation, see analytics-tracking. For page-level conversion optimization, see page-cro.

coreyhaines31/analytics-tracking

When the user wants to set up, improve, or audit analytics tracking and measurement. Also use when the user mentions "set up tracking," "GA4," "Google Analytics," "conversion tracking," "event tracking," "UTM parameters," "tag manager," "GTM," "analytics implementation," "tracking plan," "how do I measure this," "track conversions," "attribution," "Mixpanel," "Segment," "are my events firing," or "analytics isn't working." Use this whenever someone asks how to know if something is working or wants to measure marketing results. For A/B test measurement, see ab-test-setup.

coreyhaines31/aso-audit

When the user wants to audit or optimize an App Store or Google Play listing. Also use when the user mentions 'ASO audit,' 'app store optimization,' 'optimize my app listing,' 'improve app visibility,' 'app store ranking,' 'audit my listing,' 'why aren't people downloading my app,' 'improve my app conversion,' 'keyword optimization for app,' or 'compare my app to competitors.' Use when the user shares an App Store or Google Play URL and wants to improve it.

coreyhaines31/competitor-alternatives

When the user wants to create competitor comparison or alternative pages for SEO and sales enablement. Also use when the user mentions 'alternative page,' 'vs page,' 'competitor comparison,' 'comparison page,' '[Product] vs [Product],' '[Product] alternative,' 'competitive landing pages,' 'how do we compare to X,' 'battle card,' or 'competitor teardown.' Use this for any content that positions your product against competitors. Covers four formats: singular alternative, plural alternatives, you vs competitor, and competitor vs competitor. For sales-specific competitor docs, see sales-enablement.

coreyhaines31/email-sequence

When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program. Also use when the user mentions "email sequence," "drip campaign," "nurture sequence," "onboarding emails," "welcome sequence," "re-engagement emails," "email automation," "lifecycle emails," "trigger-based emails," "email funnel," "email workflow," "what emails should I send," "welcome series," or "email cadence." Use this for any multi-email automated flow. For cold outreach emails, see cold-email. For in-app onboarding, see onboarding-cro.

coreyhaines31/form-cro

When the user wants to optimize any form that is NOT signup/registration — including lead capture forms, contact forms, demo request forms, application forms, survey forms, or checkout forms. Also use when the user mentions "form optimization," "lead form conversions," "form friction," "form fields," "form completion rate," "contact form," "nobody fills out our form," "form abandonment," "too many fields," "demo request form," or "lead form isn't converting." Use this for any non-signup form that captures information. For signup/registration forms, see signup-flow-cro. For popups containing forms, see popup-cro.

関連スキル