@miranda0808/maya-codex 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/bin/maya-codex.js +36 -0
- package/package.json +19 -0
- package/payload/.agents/skills/ab-test-setup/SKILL.md +266 -0
- package/payload/.agents/skills/ab-test-setup/evals/evals.json +105 -0
- package/payload/.agents/skills/ab-test-setup/references/sample-size-guide.md +263 -0
- package/payload/.agents/skills/ab-test-setup/references/test-templates.md +277 -0
- package/payload/.agents/skills/ad-creative/SKILL.md +362 -0
- package/payload/.agents/skills/ad-creative/evals/evals.json +90 -0
- package/payload/.agents/skills/ad-creative/references/generative-tools.md +637 -0
- package/payload/.agents/skills/ad-creative/references/platform-specs.md +213 -0
- package/payload/.agents/skills/ai-seo/SKILL.md +398 -0
- package/payload/.agents/skills/ai-seo/evals/evals.json +90 -0
- package/payload/.agents/skills/ai-seo/references/content-patterns.md +285 -0
- package/payload/.agents/skills/ai-seo/references/platform-ranking-factors.md +152 -0
- package/payload/.agents/skills/analytics-tracking/SKILL.md +309 -0
- package/payload/.agents/skills/analytics-tracking/evals/evals.json +90 -0
- package/payload/.agents/skills/analytics-tracking/references/event-library.md +260 -0
- package/payload/.agents/skills/analytics-tracking/references/ga4-implementation.md +300 -0
- package/payload/.agents/skills/analytics-tracking/references/gtm-implementation.md +390 -0
- package/payload/.agents/skills/churn-prevention/SKILL.md +424 -0
- package/payload/.agents/skills/churn-prevention/evals/evals.json +93 -0
- package/payload/.agents/skills/churn-prevention/references/cancel-flow-patterns.md +316 -0
- package/payload/.agents/skills/churn-prevention/references/dunning-playbook.md +408 -0
- package/payload/.agents/skills/cold-email/SKILL.md +158 -0
- package/payload/.agents/skills/cold-email/evals/evals.json +94 -0
- package/payload/.agents/skills/cold-email/references/benchmarks.md +83 -0
- package/payload/.agents/skills/cold-email/references/follow-up-sequences.md +81 -0
- package/payload/.agents/skills/cold-email/references/frameworks.md +90 -0
- package/payload/.agents/skills/cold-email/references/personalization.md +79 -0
- package/payload/.agents/skills/cold-email/references/subject-lines.md +53 -0
- package/payload/.agents/skills/competitor-alternatives/SKILL.md +256 -0
- package/payload/.agents/skills/competitor-alternatives/evals/evals.json +93 -0
- package/payload/.agents/skills/competitor-alternatives/references/content-architecture.md +271 -0
- package/payload/.agents/skills/competitor-alternatives/references/templates.md +223 -0
- package/payload/.agents/skills/content-strategy/SKILL.md +359 -0
- package/payload/.agents/skills/content-strategy/evals/evals.json +90 -0
- package/payload/.agents/skills/copy-editing/SKILL.md +447 -0
- package/payload/.agents/skills/copy-editing/evals/evals.json +89 -0
- package/payload/.agents/skills/copy-editing/references/plain-english-alternatives.md +394 -0
- package/payload/.agents/skills/copywriting/SKILL.md +252 -0
- package/payload/.agents/skills/copywriting/evals/evals.json +111 -0
- package/payload/.agents/skills/copywriting/references/copy-frameworks.md +344 -0
- package/payload/.agents/skills/copywriting/references/natural-transitions.md +272 -0
- package/payload/.agents/skills/email-sequence/SKILL.md +309 -0
- package/payload/.agents/skills/email-sequence/evals/evals.json +93 -0
- package/payload/.agents/skills/email-sequence/references/copy-guidelines.md +113 -0
- package/payload/.agents/skills/email-sequence/references/email-types.md +515 -0
- package/payload/.agents/skills/email-sequence/references/sequence-templates.md +168 -0
- package/payload/.agents/skills/form-cro/SKILL.md +429 -0
- package/payload/.agents/skills/form-cro/evals/evals.json +90 -0
- package/payload/.agents/skills/free-tool-strategy/SKILL.md +178 -0
- package/payload/.agents/skills/free-tool-strategy/evals/evals.json +90 -0
- package/payload/.agents/skills/free-tool-strategy/references/tool-types.md +217 -0
- package/payload/.agents/skills/launch-strategy/SKILL.md +353 -0
- package/payload/.agents/skills/launch-strategy/evals/evals.json +91 -0
- package/payload/.agents/skills/marketing-ideas/SKILL.md +167 -0
- package/payload/.agents/skills/marketing-ideas/evals/evals.json +90 -0
- package/payload/.agents/skills/marketing-ideas/references/ideas-by-category.md +366 -0
- package/payload/.agents/skills/marketing-psychology/SKILL.md +455 -0
- package/payload/.agents/skills/marketing-psychology/evals/evals.json +88 -0
- package/payload/.agents/skills/onboarding-cro/SKILL.md +220 -0
- package/payload/.agents/skills/onboarding-cro/evals/evals.json +92 -0
- package/payload/.agents/skills/onboarding-cro/references/experiments.md +258 -0
- package/payload/.agents/skills/page-cro/SKILL.md +182 -0
- package/payload/.agents/skills/page-cro/evals/evals.json +111 -0
- package/payload/.agents/skills/page-cro/references/experiments.md +248 -0
- package/payload/.agents/skills/paid-ads/SKILL.md +315 -0
- package/payload/.agents/skills/paid-ads/evals/evals.json +90 -0
- package/payload/.agents/skills/paid-ads/references/ad-copy-templates.md +207 -0
- package/payload/.agents/skills/paid-ads/references/audience-targeting.md +243 -0
- package/payload/.agents/skills/paid-ads/references/platform-setup-checklists.md +277 -0
- package/payload/.agents/skills/paywall-upgrade-cro/SKILL.md +227 -0
- package/payload/.agents/skills/paywall-upgrade-cro/evals/evals.json +93 -0
- package/payload/.agents/skills/paywall-upgrade-cro/references/experiments.md +164 -0
- package/payload/.agents/skills/popup-cro/SKILL.md +453 -0
- package/payload/.agents/skills/popup-cro/evals/evals.json +94 -0
- package/payload/.agents/skills/pricing-strategy/SKILL.md +231 -0
- package/payload/.agents/skills/pricing-strategy/evals/evals.json +90 -0
- package/payload/.agents/skills/pricing-strategy/references/research-methods.md +152 -0
- package/payload/.agents/skills/pricing-strategy/references/tier-structure.md +232 -0
- package/payload/.agents/skills/product-marketing-context/SKILL.md +27 -0
- package/payload/.agents/skills/product-marketing-context/evals/evals.json +40 -0
- package/payload/.agents/skills/programmatic-seo/SKILL.md +238 -0
- package/payload/.agents/skills/programmatic-seo/evals/evals.json +94 -0
- package/payload/.agents/skills/programmatic-seo/references/playbooks.md +308 -0
- package/payload/.agents/skills/referral-program/SKILL.md +255 -0
- package/payload/.agents/skills/referral-program/evals/evals.json +89 -0
- package/payload/.agents/skills/referral-program/references/affiliate-programs.md +164 -0
- package/payload/.agents/skills/referral-program/references/program-examples.md +143 -0
- package/payload/.agents/skills/revops/SKILL.md +343 -0
- package/payload/.agents/skills/revops/evals/evals.json +91 -0
- package/payload/.agents/skills/revops/references/automation-playbooks.md +290 -0
- package/payload/.agents/skills/revops/references/lifecycle-definitions.md +278 -0
- package/payload/.agents/skills/revops/references/routing-rules.md +203 -0
- package/payload/.agents/skills/revops/references/scoring-models.md +247 -0
- package/payload/.agents/skills/sales-enablement/SKILL.md +349 -0
- package/payload/.agents/skills/sales-enablement/evals/evals.json +91 -0
- package/payload/.agents/skills/sales-enablement/references/deck-frameworks.md +263 -0
- package/payload/.agents/skills/sales-enablement/references/demo-scripts.md +355 -0
- package/payload/.agents/skills/sales-enablement/references/objection-library.md +270 -0
- package/payload/.agents/skills/sales-enablement/references/one-pager-templates.md +208 -0
- package/payload/.agents/skills/schema-markup/SKILL.md +179 -0
- package/payload/.agents/skills/schema-markup/evals/evals.json +87 -0
- package/payload/.agents/skills/schema-markup/references/schema-examples.md +398 -0
- package/payload/.agents/skills/seo-audit/SKILL.md +412 -0
- package/payload/.agents/skills/seo-audit/evals/evals.json +136 -0
- package/payload/.agents/skills/seo-audit/references/ai-writing-detection.md +200 -0
- package/payload/.agents/skills/signup-flow-cro/SKILL.md +359 -0
- package/payload/.agents/skills/signup-flow-cro/evals/evals.json +88 -0
- package/payload/.agents/skills/site-architecture/SKILL.md +357 -0
- package/payload/.agents/skills/site-architecture/evals/evals.json +88 -0
- package/payload/.agents/skills/site-architecture/references/mermaid-templates.md +216 -0
- package/payload/.agents/skills/site-architecture/references/navigation-patterns.md +305 -0
- package/payload/.agents/skills/site-architecture/references/site-type-templates.md +293 -0
- package/payload/.agents/skills/social-content/SKILL.md +278 -0
- package/payload/.agents/skills/social-content/evals/evals.json +92 -0
- package/payload/.agents/skills/social-content/references/platforms.md +170 -0
- package/payload/.agents/skills/social-content/references/post-templates.md +177 -0
- package/payload/.agents/skills/social-content/references/reverse-engineering.md +195 -0
- package/payload/.maya/executor.md +79 -0
- package/payload/.maya/meta-api-agent.md +48 -0
- package/payload/.maya/modes/consult.md +63 -0
- package/payload/.maya/modes/task.md +97 -0
- package/payload/.maya/planner.md +69 -0
- package/payload/.maya/researcher.md +51 -0
- package/payload/.maya/templates/plan.md +77 -0
- package/payload/.maya/templates/state.md +87 -0
- package/payload/.maya/templates/task-packet.md +75 -0
- package/payload/MAYA-CATALOG.md +115 -0
- package/payload/MAYA-DEPENDENCIES.md +58 -0
- package/payload/MAYA.md +151 -0
- package/payload/campaigns/README.md +14 -0
- package/payload/commands/maya-consult.md +28 -0
- package/payload/commands/maya-task.md +38 -0
- package/payload/commands/product.md +55 -0
- package/payload/research/README.md +14 -0
- package/payload/templates/README.md +15 -0
- package/payload/templates/plan.md +77 -0
- package/payload/templates/state.md +87 -0
- package/payload/templates/task-packet.md +75 -0
- package/payload/tools/REGISTRY.md +368 -0
- package/payload/tools/clis/README.md +187 -0
- package/payload/tools/clis/activecampaign.js +435 -0
- package/payload/tools/clis/adobe-analytics.js +161 -0
- package/payload/tools/clis/ahrefs.js +192 -0
- package/payload/tools/clis/amplitude.js +182 -0
- package/payload/tools/clis/apollo.js +142 -0
- package/payload/tools/clis/beehiiv.js +245 -0
- package/payload/tools/clis/brevo.js +368 -0
- package/payload/tools/clis/buffer.js +260 -0
- package/payload/tools/clis/calendly.js +253 -0
- package/payload/tools/clis/clearbit.js +163 -0
- package/payload/tools/clis/customer-io.js +205 -0
- package/payload/tools/clis/dataforseo.js +257 -0
- package/payload/tools/clis/demio.js +149 -0
- package/payload/tools/clis/dub.js +158 -0
- package/payload/tools/clis/g2.js +186 -0
- package/payload/tools/clis/ga4.js +194 -0
- package/payload/tools/clis/google-ads.js +189 -0
- package/payload/tools/clis/google-search-console.js +166 -0
- package/payload/tools/clis/hotjar.js +167 -0
- package/payload/tools/clis/hunter.js +249 -0
- package/payload/tools/clis/instantly.js +270 -0
- package/payload/tools/clis/intercom.js +399 -0
- package/payload/tools/clis/keywords-everywhere.js +185 -0
- package/payload/tools/clis/kit.js +232 -0
- package/payload/tools/clis/klaviyo.js +348 -0
- package/payload/tools/clis/lemlist.js +221 -0
- package/payload/tools/clis/linkedin-ads.js +185 -0
- package/payload/tools/clis/livestorm.js +292 -0
- package/payload/tools/clis/mailchimp.js +220 -0
- package/payload/tools/clis/mention-me.js +161 -0
- package/payload/tools/clis/meta-ads.js +181 -0
- package/payload/tools/clis/mixpanel.js +248 -0
- package/payload/tools/clis/onesignal.js +241 -0
- package/payload/tools/clis/optimizely.js +233 -0
- package/payload/tools/clis/paddle.js +385 -0
- package/payload/tools/clis/partnerstack.js +382 -0
- package/payload/tools/clis/plausible.js +249 -0
- package/payload/tools/clis/postmark.js +375 -0
- package/payload/tools/clis/resend.js +370 -0
- package/payload/tools/clis/rewardful.js +160 -0
- package/payload/tools/clis/savvycal.js +223 -0
- package/payload/tools/clis/segment.js +192 -0
- package/payload/tools/clis/semrush.js +207 -0
- package/payload/tools/clis/sendgrid.js +211 -0
- package/payload/tools/clis/snov.js +237 -0
- package/payload/tools/clis/tiktok-ads.js +190 -0
- package/payload/tools/clis/tolt.js +153 -0
- package/payload/tools/clis/trustpilot.js +276 -0
- package/payload/tools/clis/typeform.js +269 -0
- package/payload/tools/clis/wistia.js +256 -0
- package/payload/tools/clis/zapier.js +160 -0
- package/payload/tools/integrations/activecampaign.md +337 -0
- package/payload/tools/integrations/adobe-analytics.md +156 -0
- package/payload/tools/integrations/ahrefs.md +142 -0
- package/payload/tools/integrations/amplitude.md +135 -0
- package/payload/tools/integrations/apollo.md +148 -0
- package/payload/tools/integrations/beehiiv.md +157 -0
- package/payload/tools/integrations/brevo.md +268 -0
- package/payload/tools/integrations/buffer.md +138 -0
- package/payload/tools/integrations/calendly.md +161 -0
- package/payload/tools/integrations/clearbit.md +142 -0
- package/payload/tools/integrations/customer-io.md +187 -0
- package/payload/tools/integrations/dataforseo.md +165 -0
- package/payload/tools/integrations/demio.md +182 -0
- package/payload/tools/integrations/dub-co.md +160 -0
- package/payload/tools/integrations/g2.md +179 -0
- package/payload/tools/integrations/ga4.md +126 -0
- package/payload/tools/integrations/google-ads.md +159 -0
- package/payload/tools/integrations/google-search-console.md +147 -0
- package/payload/tools/integrations/hotjar.md +147 -0
- package/payload/tools/integrations/hubspot.md +178 -0
- package/payload/tools/integrations/hunter.md +90 -0
- package/payload/tools/integrations/instantly.md +104 -0
- package/payload/tools/integrations/intercom.md +292 -0
- package/payload/tools/integrations/keywords-everywhere.md +207 -0
- package/payload/tools/integrations/kit.md +167 -0
- package/payload/tools/integrations/klaviyo.md +228 -0
- package/payload/tools/integrations/lemlist.md +110 -0
- package/payload/tools/integrations/linkedin-ads.md +164 -0
- package/payload/tools/integrations/livestorm.md +313 -0
- package/payload/tools/integrations/mailchimp.md +150 -0
- package/payload/tools/integrations/mention-me.md +160 -0
- package/payload/tools/integrations/meta-ads.md +147 -0
- package/payload/tools/integrations/mixpanel.md +137 -0
- package/payload/tools/integrations/onesignal.md +229 -0
- package/payload/tools/integrations/optimizely.md +171 -0
- package/payload/tools/integrations/paddle.md +212 -0
- package/payload/tools/integrations/partnerstack.md +222 -0
- package/payload/tools/integrations/plausible.md +177 -0
- package/payload/tools/integrations/posthog.md +151 -0
- package/payload/tools/integrations/postmark.md +234 -0
- package/payload/tools/integrations/resend.md +168 -0
- package/payload/tools/integrations/rewardful.md +147 -0
- package/payload/tools/integrations/salesforce.md +150 -0
- package/payload/tools/integrations/savvycal.md +181 -0
- package/payload/tools/integrations/segment.md +159 -0
- package/payload/tools/integrations/semrush.md +121 -0
- package/payload/tools/integrations/sendgrid.md +161 -0
- package/payload/tools/integrations/shopify.md +176 -0
- package/payload/tools/integrations/snov.md +94 -0
- package/payload/tools/integrations/stripe.md +148 -0
- package/payload/tools/integrations/tiktok-ads.md +161 -0
- package/payload/tools/integrations/tolt.md +144 -0
- package/payload/tools/integrations/trustpilot.md +191 -0
- package/payload/tools/integrations/typeform.md +190 -0
- package/payload/tools/integrations/webflow.md +198 -0
- package/payload/tools/integrations/wistia.md +164 -0
- package/payload/tools/integrations/wordpress.md +175 -0
- package/payload/tools/integrations/zapier.md +150 -0
- package/payload/tools/meta/README.md +55 -0
- package/payload/tools/meta/meta-cache-schema.md +65 -0
- package/payload/tools/meta/meta-fetch.ps1 +324 -0
- package/payload/tools/meta/meta-fetch.test.ps1 +38 -0
- package/vendor/shared-installer/manifests/claude-files.json +13 -0
- package/vendor/shared-installer/manifests/codex-files.json +13 -0
- package/vendor/shared-installer/manifests/common-files.json +13 -0
- package/vendor/shared-installer/package.json +15 -0
- package/vendor/shared-installer/src/bootstrap.js +12 -0
- package/vendor/shared-installer/src/cli-options.js +53 -0
- package/vendor/shared-installer/src/fs.js +105 -0
- package/vendor/shared-installer/src/index.js +44 -0
- package/vendor/shared-installer/src/install.js +157 -0
- package/vendor/shared-installer/src/manifest.js +52 -0
- package/vendor/shared-installer/templates/claude/.claude/skills/.gitkeep +1 -0
- package/vendor/shared-installer/templates/claude/CLAUDE.md +27 -0
- package/vendor/shared-installer/templates/codex/.agent/skills/.gitkeep +1 -0
- package/vendor/shared-installer/templates/codex/AGENTS.md +27 -0
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
# Cancel Flow Patterns
|
|
2
|
+
|
|
3
|
+
Detailed cancel flow patterns by business type, billing provider, and industry.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Cancel Flow by Business Type
|
|
8
|
+
|
|
9
|
+
### B2C / Self-Serve SaaS
|
|
10
|
+
|
|
11
|
+
High volume, low touch. The flow must work without human intervention.
|
|
12
|
+
|
|
13
|
+
**Flow structure:**
|
|
14
|
+
```
|
|
15
|
+
Cancel button → Exit survey (1 question) → Dynamic offer → Confirm → Post-cancel
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
**Characteristics:**
|
|
19
|
+
- Fully automated, no human in the loop
|
|
20
|
+
- Quick — 2-3 screens maximum
|
|
21
|
+
- One offer + one fallback, not a menu of options
|
|
22
|
+
- Mobile-optimized (significant cancellations on mobile)
|
|
23
|
+
- Clear "continue cancelling" at every step
|
|
24
|
+
|
|
25
|
+
**Typical save rate:** 20-30%
|
|
26
|
+
|
|
27
|
+
**Example flow for a $29/mo productivity app:**
|
|
28
|
+
1. "What's the main reason?" → 6 options
|
|
29
|
+
2. Selected "Too expensive" → "Get 25% off for 3 months (save $21.75)"
|
|
30
|
+
3. Declined → "Or switch to our Starter plan at $12/mo"
|
|
31
|
+
4. Declined → "We're sorry to see you go. Your access continues until [date]."
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
### B2B / Team Plans
|
|
36
|
+
|
|
37
|
+
Lower volume, higher stakes. Personal outreach is worth the cost.
|
|
38
|
+
|
|
39
|
+
**Flow structure:**
|
|
40
|
+
```
|
|
41
|
+
Cancel button → Exit survey → Offer (or route to CS) → Confirm → Post-cancel
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Characteristics:**
|
|
45
|
+
- Route accounts above MRR threshold to customer success
|
|
46
|
+
- Show team impact ("Your 8 team members will lose access")
|
|
47
|
+
- Offer admin-to-admin call for enterprise accounts
|
|
48
|
+
- Longer consideration — allow "schedule a call" as a save option
|
|
49
|
+
- Require admin/owner role to cancel (not any team member)
|
|
50
|
+
|
|
51
|
+
**Typical save rate:** 30-45% (higher because of personal touch)
|
|
52
|
+
|
|
53
|
+
**MRR-based routing:**
|
|
54
|
+
|
|
55
|
+
| Account MRR | Cancel Flow |
|
|
56
|
+
|-------------|-------------|
|
|
57
|
+
| <$100/mo | Automated flow with offers |
|
|
58
|
+
| $100-$500/mo | Automated + flag for CS follow-up |
|
|
59
|
+
| $500-$2,000/mo | Route to CS before cancel completes |
|
|
60
|
+
| $2,000+/mo | Block self-serve cancel, require CS call |
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
### Freemium / Free-to-Paid
|
|
65
|
+
|
|
66
|
+
Users cancelling paid to return to free tier. Different psychology — they're not leaving, they're downgrading.
|
|
67
|
+
|
|
68
|
+
**Flow structure:**
|
|
69
|
+
```
|
|
70
|
+
Cancel button → "Switch to Free?" prompt → Exit survey (if still cancelling) → Offer → Confirm
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Characteristics:**
|
|
74
|
+
- Lead with the free tier as the first option (not a save offer)
|
|
75
|
+
- Show what they keep on free vs. what they lose
|
|
76
|
+
- The "save" is keeping them on free, not losing them entirely
|
|
77
|
+
- Track free-tier users for future re-upgrade campaigns
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Cancel Flow by Billing Interval
|
|
82
|
+
|
|
83
|
+
### Monthly Subscribers
|
|
84
|
+
|
|
85
|
+
- More price-sensitive, shorter commitment
|
|
86
|
+
- Discount offers work well (20-30% for 2-3 months)
|
|
87
|
+
- Pause is effective (1-2 months)
|
|
88
|
+
- Suggest annual plan at a discount as an alternative
|
|
89
|
+
|
|
90
|
+
**Offer priority:**
|
|
91
|
+
1. Discount (if reason = price)
|
|
92
|
+
2. Pause (if reason = not using / temporary)
|
|
93
|
+
3. Annual plan switch (if engaged but price-sensitive)
|
|
94
|
+
|
|
95
|
+
### Annual Subscribers
|
|
96
|
+
|
|
97
|
+
- Higher commitment, often cancelling for stronger reasons
|
|
98
|
+
- Prorate refund expectations matter
|
|
99
|
+
- Longer save window (they've already paid)
|
|
100
|
+
- Personal outreach more justified (higher LTV at stake)
|
|
101
|
+
|
|
102
|
+
**Offer priority:**
|
|
103
|
+
1. Pause remainder of term (if temporary)
|
|
104
|
+
2. Plan adjustment + credit for next renewal
|
|
105
|
+
3. Personal outreach from CS
|
|
106
|
+
4. Partial refund + downgrade (better than full refund + cancel)
|
|
107
|
+
|
|
108
|
+
**Refund handling:**
|
|
109
|
+
- Offer prorated refund if significant time remaining
|
|
110
|
+
- "Pause until renewal" if less than 3 months left
|
|
111
|
+
- Be generous — bad refund experiences create vocal detractors
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Save Offer Patterns
|
|
116
|
+
|
|
117
|
+
### The Discount Ladder
|
|
118
|
+
|
|
119
|
+
Don't lead with your biggest discount. Escalate:
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
Cancel click → 15% off → Still cancelling → 25% off → Still cancelling → Let them go
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Rules:**
|
|
126
|
+
- Maximum 2 discount offers per cancel session
|
|
127
|
+
- Never exceed 30% (higher trains cancel-for-discount behavior)
|
|
128
|
+
- Time-limit discounts (2-3 months, then full price resumes)
|
|
129
|
+
- Track discount accepters — if they cancel again at full price, don't re-offer
|
|
130
|
+
|
|
131
|
+
### The Pause Playbook
|
|
132
|
+
|
|
133
|
+
Pause is often better than a discount because it doesn't devalue your product.
|
|
134
|
+
|
|
135
|
+
**Implementation:**
|
|
136
|
+
|
|
137
|
+
| Setting | Recommendation |
|
|
138
|
+
|---------|---------------|
|
|
139
|
+
| Pause duration options | 1 month, 2 months, 3 months |
|
|
140
|
+
| Default selection | 1 month (shortest) |
|
|
141
|
+
| Maximum pause | 3 months (longer pauses rarely return) |
|
|
142
|
+
| During pause | Keep data, remove access |
|
|
143
|
+
| Reactivation | Auto-reactivate with 7-day advance email |
|
|
144
|
+
| Repeat pauses | Allow 1 pause per 12-month period |
|
|
145
|
+
|
|
146
|
+
**Pause reactivation sequence:**
|
|
147
|
+
- Day -7: "Your pause ends in 7 days. We've been busy — here's what's new."
|
|
148
|
+
- Day -1: "Welcome back tomorrow! Here's what's waiting for you."
|
|
149
|
+
- Day 0: "You're back! Here's a quick tour of what's new."
|
|
150
|
+
|
|
151
|
+
### The Downgrade Path
|
|
152
|
+
|
|
153
|
+
For multi-plan products, downgrade is the strongest save:
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
┌─────────────────────────────────────────┐
|
|
157
|
+
│ Before you go, what about right-sizing │
|
|
158
|
+
│ your plan? │
|
|
159
|
+
│ │
|
|
160
|
+
│ Current: Pro ($49/mo) │
|
|
161
|
+
│ │
|
|
162
|
+
│ ┌─────────────────────────────────┐ │
|
|
163
|
+
│ │ Switch to Starter ($19/mo) │ │
|
|
164
|
+
│ │ │ │
|
|
165
|
+
│ │ ✓ Keep: Projects, integrations │ │
|
|
166
|
+
│ │ ✗ Lose: Advanced analytics, │ │
|
|
167
|
+
│ │ team features │ │
|
|
168
|
+
│ │ │ │
|
|
169
|
+
│ │ [Switch to Starter] │ │
|
|
170
|
+
│ └─────────────────────────────────┘ │
|
|
171
|
+
│ │
|
|
172
|
+
│ [No thanks, continue cancelling] │
|
|
173
|
+
└─────────────────────────────────────────┘
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**Downgrade best practices:**
|
|
177
|
+
- Show exactly what they keep and what they lose
|
|
178
|
+
- Use checkmarks and X marks for scanability
|
|
179
|
+
- Preserve their data even on the lower plan
|
|
180
|
+
- If they downgrade, don't show upgrade prompts for at least 30 days
|
|
181
|
+
|
|
182
|
+
### The Competitor Switch Handler
|
|
183
|
+
|
|
184
|
+
When the cancel reason is "switching to competitor":
|
|
185
|
+
|
|
186
|
+
1. **Ask which competitor** (optional, don't force it)
|
|
187
|
+
2. **Show a comparison** if you have one (see competitor-alternatives skill)
|
|
188
|
+
3. **Offer a migration credit** ("We'll match their price for 3 months")
|
|
189
|
+
4. **Request a feedback call** ("15 minutes to understand what we're missing")
|
|
190
|
+
|
|
191
|
+
This data is gold for product and marketing teams.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Post-Cancel Experience
|
|
196
|
+
|
|
197
|
+
What happens after cancel matters for:
|
|
198
|
+
- Win-back potential
|
|
199
|
+
- Word of mouth
|
|
200
|
+
- Review sentiment
|
|
201
|
+
|
|
202
|
+
### Confirmation Page
|
|
203
|
+
|
|
204
|
+
```
|
|
205
|
+
Your subscription has been cancelled.
|
|
206
|
+
|
|
207
|
+
What happens next:
|
|
208
|
+
• Your access continues until [billing period end date]
|
|
209
|
+
• Your data will be preserved for 90 days
|
|
210
|
+
• You can reactivate anytime from your account settings
|
|
211
|
+
|
|
212
|
+
[Reactivate My Account]
|
|
213
|
+
|
|
214
|
+
We'd love to have you back. We'll keep improving based on feedback
|
|
215
|
+
from customers like you.
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Post-Cancel Sequence
|
|
219
|
+
|
|
220
|
+
| Timing | Action |
|
|
221
|
+
|--------|--------|
|
|
222
|
+
| Immediately | Confirmation email with access end date |
|
|
223
|
+
| Day 1 | (Nothing — don't be desperate) |
|
|
224
|
+
| Day 7 | NPS/satisfaction survey about overall experience |
|
|
225
|
+
| Day 30 | "What's new" email with recent improvements |
|
|
226
|
+
| Day 60 | Address their specific cancel reason if resolved |
|
|
227
|
+
| Day 90 | Final win-back with special offer |
|
|
228
|
+
|
|
229
|
+
**For detailed win-back email sequences**: See the email-sequence skill.
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## Segmentation Rules
|
|
234
|
+
|
|
235
|
+
The most effective cancel flows use segmentation to show different offers to different customers.
|
|
236
|
+
|
|
237
|
+
### Segmentation Dimensions
|
|
238
|
+
|
|
239
|
+
| Dimension | Why It Matters |
|
|
240
|
+
|-----------|---------------|
|
|
241
|
+
| Plan / MRR | Higher-value customers get personal outreach |
|
|
242
|
+
| Tenure | Long-term customers get more generous offers |
|
|
243
|
+
| Usage level | High-usage customers get different messaging than dormant ones |
|
|
244
|
+
| Billing interval | Monthly vs. annual need different approaches |
|
|
245
|
+
| Previous saves | Don't re-offer the same discount to a repeat canceller |
|
|
246
|
+
| Cancel reason | Drives which offer to show (core mapping) |
|
|
247
|
+
|
|
248
|
+
### Segment-Specific Flows
|
|
249
|
+
|
|
250
|
+
**New customer (< 30 days):**
|
|
251
|
+
- They haven't activated. The save is onboarding, not discounts.
|
|
252
|
+
- Offer: Free onboarding call, setup help, extended trial
|
|
253
|
+
- Ask: "What were you hoping to accomplish?" (learn what's missing)
|
|
254
|
+
|
|
255
|
+
**Engaged customer cancelling on price:**
|
|
256
|
+
- They love the product but can't justify the cost.
|
|
257
|
+
- Offer: Discount, annual plan switch, downgrade
|
|
258
|
+
- High save potential
|
|
259
|
+
|
|
260
|
+
**Dormant customer (no login 30+ days):**
|
|
261
|
+
- They forgot about you. A discount won't bring them back.
|
|
262
|
+
- Offer: Pause subscription, "what changed?" conversation
|
|
263
|
+
- Low save potential — focus on learning why
|
|
264
|
+
|
|
265
|
+
**Power user switching to competitor:**
|
|
266
|
+
- They're actively choosing something else.
|
|
267
|
+
- Offer: Competitive match, feedback call, roadmap preview
|
|
268
|
+
- Medium save potential — depends on reason
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## Implementation Checklist
|
|
273
|
+
|
|
274
|
+
### Phase 1: Foundation (Week 1)
|
|
275
|
+
- [ ] Add cancel flow (survey + 1 offer + confirmation)
|
|
276
|
+
- [ ] Set up exit survey with 5-7 reason categories
|
|
277
|
+
- [ ] Map one offer per reason (simple 1:1 mapping)
|
|
278
|
+
- [ ] Track cancel reasons and save rate in analytics
|
|
279
|
+
- [ ] Enable pre-dunning card expiry emails
|
|
280
|
+
|
|
281
|
+
### Phase 2: Optimization (Weeks 2-4)
|
|
282
|
+
- [ ] Add fallback offers (primary + secondary per reason)
|
|
283
|
+
- [ ] Implement pause subscription option
|
|
284
|
+
- [ ] Set up dunning email sequence (4 emails over 10 days)
|
|
285
|
+
- [ ] Enable smart retries (Stripe Smart Retries or equivalent)
|
|
286
|
+
- [ ] Add MRR-based routing for high-value accounts
|
|
287
|
+
|
|
288
|
+
### Phase 3: Advanced (Month 2+)
|
|
289
|
+
- [ ] Build health score from usage signals
|
|
290
|
+
- [ ] Set up proactive intervention triggers
|
|
291
|
+
- [ ] A/B test discount amounts and offer types
|
|
292
|
+
- [ ] Segment flows by plan, tenure, and usage
|
|
293
|
+
- [ ] Post-cancel win-back sequence (coordinate with email-sequence skill)
|
|
294
|
+
- [ ] Cohort analysis: churn by channel, plan, tenure
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## Compliance Notes
|
|
299
|
+
|
|
300
|
+
### FTC Click-to-Cancel Rule (US)
|
|
301
|
+
- Cancellation must be as easy as signup
|
|
302
|
+
- Cannot require a phone call to cancel if signup was online
|
|
303
|
+
- Cannot add excessive steps to discourage cancellation
|
|
304
|
+
- Save offers are allowed but "continue cancelling" must be clear
|
|
305
|
+
|
|
306
|
+
### GDPR / Data Retention (EU)
|
|
307
|
+
- Inform users about data retention period post-cancel
|
|
308
|
+
- Offer data export before account deletion
|
|
309
|
+
- Honor deletion requests within 30 days
|
|
310
|
+
- Don't use post-cancel data for marketing without consent
|
|
311
|
+
|
|
312
|
+
### General Best Practices
|
|
313
|
+
- Always show a clear path to complete cancellation
|
|
314
|
+
- Never hide the cancel button (dark pattern)
|
|
315
|
+
- Process cancellation even if save flow has errors
|
|
316
|
+
- Confirm cancellation with email receipt
|