Files
claude-skills-reference/marketing-skill/churn-prevention/references/cancel-flow-playbook.md
Alireza Rezvani 52321c86bc feat: Marketing Division expansion — 7 → 42 skills (#266)
* feat: Skill Authoring Standard + Marketing Expansion plans

SKILL-AUTHORING-STANDARD.md — the DNA of every skill in this repo:
10 universal patterns codified from C-Suite innovations + Corey Haines' marketingskills patterns:

1. Context-First: check domain context, ask only for gaps
2. Practitioner Voice: expert persona, goal-oriented, not textbook
3. Multi-Mode Workflows: build from scratch / optimize existing / situation-specific
4. Related Skills Navigation: when to use, when NOT to, bidirectional
5. Reference Separation: SKILL.md lean (≤10KB), refs deep
6. Proactive Triggers: surface issues without being asked
7. Output Artifacts: request → specific deliverable mapping
8. Quality Loop: self-verify, confidence tagging
9. Communication Standard: bottom line first, structured output
10. Python Tools: stdlib-only, CLI-first, JSON output, sample data

Marketing expansion plans for 40-skill marketing division build.

* feat: marketing foundation — context + ops router + authoring standard

marketing-context/: Foundation skill every marketing skill reads first
  - SKILL.md: 3 modes (auto-draft, guided interview, update)
  - templates/marketing-context-template.md: 14 sections covering
    product, audience, personas, pain points, competitive landscape,
    differentiation, objections, switching dynamics, customer language
    (verbatim), brand voice, style guide, proof points, SEO context, goals
  - scripts/context_validator.py: Scores completeness 0-100, section-by-section

marketing-ops/: Central router for 40-skill marketing ecosystem
  - Full routing matrix: 7 pods + cross-domain routing to 6 skills in
    business-growth, product-team, engineering-team, c-level-advisor
  - Campaign orchestration sequences (launch, content, CRO sprint)
  - Quality gate matching C-Suite standard
  - scripts/campaign_tracker.py: Campaign status tracking with progress,
    overdue detection, pod coverage, blocker identification

SKILL-AUTHORING-STANDARD.md: Universal DNA for all skills
  - 10 patterns: context-first, practitioner voice, multi-mode workflows,
    related skills navigation, reference separation, proactive triggers,
    output artifacts, quality loop, communication standard, python tools
  - Quality checklist for skill completion verification
  - Domain context file mapping for all 5 domains

* feat: import 20 workspace marketing skills + standard sections

Imported 20 marketing skills from OpenClaw workspace into repo:

Content Pod (5):
  content-strategy, copywriting, copy-editing, social-content, marketing-ideas

SEO Pod (2):
  seo-audit (+ references enriched by subagent), programmatic-seo (+ refs)

CRO Pod (5):
  page-cro, form-cro, signup-flow-cro, onboarding-cro, popup-cro, paywall-upgrade-cro

Channels Pod (2):
  email-sequence, paid-ads

Growth + Intel + GTM (5):
  ab-test-setup, competitor-alternatives, marketing-psychology, launch-strategy, brand-guidelines

All 29 skills now have standard sections per SKILL-AUTHORING-STANDARD.md:
   Proactive Triggers (4-5 per skill)
   Output Artifacts table
   Communication standard reference
   Related Skills with WHEN/NOT disambiguation

Subagents enriched 8 skills with additional reference docs:
  seo-audit, programmatic-seo, page-cro, form-cro,
  onboarding-cro, popup-cro, paywall-upgrade-cro, email-sequence

43 files, 10,566 lines added.

* feat: build 13 new marketing skills + social-media-manager upgrade

All skills are 100% original work — inspired by industry best practices,
written from scratch in our own voice following SKILL-AUTHORING-STANDARD.md.

NEW Content Pod (2):
  content-production — full research→draft→optimize pipeline, content_scorer.py
  content-humanizer — AI pattern detection + voice injection, humanizer_scorer.py

NEW SEO Pod (3):
  ai-seo — AI search optimization (AEO/GEO/LLMO), entirely new category
  schema-markup — JSON-LD structured data, schema_validator.py
  site-architecture — URL structure + internal linking, sitemap_analyzer.py

NEW Channels Pod (2):
  cold-email — B2B outreach (distinct from email-sequence lifecycle)
  ad-creative — bulk ad generation + platform specs, ad_copy_validator.py

NEW Growth Pod (3):
  churn-prevention — cancel flows + save offers + dunning, churn_impact_calculator.py
  referral-program — referral + affiliate programs
  free-tool-strategy — engineering as marketing

NEW Intelligence Pod (1):
  analytics-tracking — GA4/GTM setup + event taxonomy, tracking_plan_generator.py

NEW Sales Pod (1):
  pricing-strategy — pricing, packaging, monetization

UPGRADED:
  social-media-analyzer → social-media-manager (strategy, calendar, community)

Totals: 42 skills, 27 Python scripts, 60 reference docs, 163 files, 43,265 lines

* feat: update index, marketplace, README for 42 marketing skills

- skills-index.json: 89 → 124 skills (42 marketing entries)
- marketplace.json: marketing-skills v2.0.0 (42 skills, 27 tools)
- README.md: badge 134 → 169, marketing row updated
- prompt-engineer-toolkit: added YAML frontmatter
- Removed build logs from repo
- Parity check: 42/42 passed (YAML + Related + Proactive + Output + Communication)

* fix: merge content-creator into content-production, split marketing-psychology

Quality audit fixes:

1. content-creator → DEPRECATED redirect
   - Scripts (brand_voice_analyzer.py, seo_optimizer.py) moved to content-production
   - SKILL.md replaced with redirect to content-production + content-strategy
   - Eliminates duplicate routing confusion

2. marketing-psychology → 24KB split to 6.8KB + reference
   - 70+ mental models moved to references/mental-models-catalog.md (397 lines)
   - SKILL.md now lean: categories overview, most-used models, quick reference
   - Saves ~4,300 tokens per invocation

* feat: add plugin configs, Codex/OpenClaw compatibility, ClawHub packaging

- marketing-skill/SKILL.md: ClawHub-compatible root with Quick Start for Claude Code, Codex CLI, OpenClaw
- marketing-skill/CLAUDE.md: Agent instructions (routing, context, anti-patterns)
- marketing-skill/.codex/instructions.md: Codex CLI skill routing
- .claude-plugin/marketplace.json: deduplicated, marketing-skills v2.0.0
- .codex/skills-index.json: content-creator marked deprecated, psychology updated
- Total: 42 skills, 27 Python tools, 60 references, 18 plugins

* feat: add 16 Python tools to knowledge-only skills

Enriched 12 previously tool-less skills with practical Python scripts:
- seo-audit/seo_checker.py — HTML on-page SEO analysis (0-100)
- copywriting/headline_scorer.py — headline quality scoring (0-100)
- copy-editing/readability_scorer.py — Flesch + passive + filler detection
- content-strategy/topic_cluster_mapper.py — keyword clustering
- page-cro/conversion_audit.py — HTML CRO signal analysis (0-100)
- paid-ads/roas_calculator.py — ROAS/CPA/CPL calculator
- email-sequence/sequence_analyzer.py — email sequence scoring (0-100)
- form-cro/form_field_analyzer.py — form field CRO audit (0-100)
- onboarding-cro/activation_funnel_analyzer.py — funnel drop-off analysis
- programmatic-seo/url_pattern_generator.py — URL pattern planning
- ab-test-setup/sample_size_calculator.py — statistical sample sizing
- signup-flow-cro/funnel_drop_analyzer.py — signup funnel analysis
- launch-strategy/launch_readiness_scorer.py — launch checklist scoring
- competitor-alternatives/comparison_matrix_builder.py — feature comparison
- social-media-manager/social_calendar_generator.py — content calendar
- readability_scorer.py — fixed demo mode for non-TTY execution

All 43/43 scripts pass execution. All stdlib-only, zero pip installs.
Total: 42 skills, 43 Python tools, 60+ reference docs.

* feat: add 3 more Python tools + improve 6 existing scripts

New tools from build agent:
- email-sequence/scripts/sequence_analyzer.py — email sequence scoring (91/100 demo)
- paid-ads/scripts/roas_calculator.py — ROAS/CPA/CPL/break-even calculator
- competitor-alternatives/scripts/comparison_matrix_builder.py — feature matrix

Improved scripts (better demo modes, fuller analysis):
- seo_checker.py, headline_scorer.py, readability_scorer.py,
  conversion_audit.py, topic_cluster_mapper.py, launch_readiness_scorer.py

Total: 42 skills, 47 Python tools, all passing.

* fix: remove duplicate scripts from deprecated content-creator

Scripts already live in content-production/scripts/. The content-creator
directory is now a pure redirect (SKILL.md only + legacy assets/refs).

* fix: scope VirusTotal scan to executable files only

Skip scanning .md, .py, .json, .yml — they're plain text files
that VirusTotal can't meaningfully analyze. This prevents 429 rate
limit errors on PRs with many text file changes (like 42 marketing skills).

Scan still covers: .js, .ts, .sh, .mjs, .cjs, .exe, .dll, .so, .bin, .wasm

---------

Co-authored-by: Leo <leo@openclaw.ai>
2026-03-06 03:56:16 +01:00

8.4 KiB

Cancel Flow Playbook

Complete reference for designing, building, and auditing cancel flows.


The Cancel Flow Decision Tree

Customer clicks "Cancel" or "Cancel Subscription"
         │
         ▼
   [Show Exit Survey]
   "What's the main reason you're cancelling?"
         │
    ┌────┴─────────────────────────────────────────┐
    │                                               │
 Price/Value                              Other Reasons
    │                                               │
    ▼                                               ▼
Discount offer                        Match to reason category
(1-3 month, 20-30%)                   (see mapping table)
    │                                               │
    ▼                                               ▼
[Accept?]──Yes──► Charge updated    [Accept?]──Yes──► Apply offer
    │                                    │
    No                                   No
    │                                    │
    ▼                                    ▼
[Confirm Cancel]                    [Confirm Cancel]
    │                                    │
    ▼                                    ▼
[Post-cancel page + email]          [Post-cancel page + email]

Stage-by-Stage Templates

Stage 1: Pre-Cancel Intercept

When triggered: User lands on cancel/subscription page, clicks "Cancel plan", or navigates to billing settings.

What to show: Brief value reminder (not a wall of guilt) + "Tell us why" framing.

Copy template:

Headline: Before you go, we want to understand
Body: Your feedback helps us improve. Take 30 seconds to tell us why 
      you're cancelling — and we might have a solution you haven't tried.
CTA: Continue to cancellation →

Rules:

  • Don't block the cancel path
  • Don't show this more than once per session
  • Mobile: single screen, no scrolling required

Stage 2: Exit Survey

Design specs:

  • Single question, required
  • Radio buttons (not checkboxes)
  • 6-8 options maximum
  • Optional open text at bottom: "Anything else we should know?"
  • Submit advances to Stage 3 — don't show offer yet

Copy template:

What's the main reason you're cancelling?

○ It's too expensive for what I get
○ I'm not using it enough to justify the cost
○ It's missing a feature I need
○ I'm switching to a different tool
○ My project or need ended
○ It's too complicated or hard to use
○ I was just testing it out
○ Other: [text field]

[Continue →]

Data capture: Store the reason against the customer record. This is your product feedback goldmine.


Stage 3: Dynamic Save Offer

Offer-to-reason mapping (full):

Selected Reason Primary Offer Secondary (if declined) Skip Offer
Too expensive 30% off for 3 months Downgrade plan
Not using it enough 1-month pause Usage coaching call
Missing a feature Feature roadmap share + workaround Human support call If feature genuinely doesn't exist and won't exist soon
Switching to competitor Competitive comparison one-pager If they've clearly made the decision
Project ended 2-month pause
Too complicated Free onboarding session 1:1 support call
Just testing Always skip — wrong fit, let them go
Other Human support call

Offer presentation template:

[For price objection:]
Headline: Keep [Product] for less
Body: We'd hate to see you go over price. Here's what we can do:
      Get 30% off your next 3 months — that's [calculated dollar amount] saved.
      After 3 months, your plan returns to [original price].
CTA (accept): Claim my discount →
CTA (decline): No thanks, continue cancelling →

[For not using it enough:]
Headline: No charge for 60 days — pause your account
Body: Life gets busy. Put [Product] on hold for up to 60 days. 
      Your data stays intact, and you can resume any time. No charge during pause.
CTA (accept): Pause my account →
CTA (decline): No thanks, continue cancelling →

Offer rules:

  • One offer per cancel attempt — never show multiple
  • If they decline, go straight to Stage 4
  • Don't re-show the same offer if they return to cancel within 30 days
  • Track which offer was shown and whether it was accepted

Stage 4: Cancellation Confirmation

What to include:

  • Explicit confirmation of what will happen
  • Access end date (specific date, not "end of billing period")
  • Data retention policy (how long data is kept)
  • Support contact in case they change their mind
  • Confirmation button with clear copy

Copy template:

Your subscription will be cancelled.

Here's what happens next:
• Access continues until [specific date]
• Your data is retained for 90 days after cancellation
• After 90 days, your account data is deleted
• You can reactivate any time before [90-day date]

If you change your mind, contact [email] or reactivate at [reactivation URL].

[Confirm Cancellation]    [Go back]

Stage 5: Post-Cancel Sequence

Immediate: Cancellation Confirmation Email

Subject: Your [Product] subscription has been cancelled

Hi [Name],

Your [Product] subscription has been cancelled as requested.

What happens next:
- Access continues until [date]
- Your data is saved for 90 days (until [date])
- To reactivate, visit: [reactivation link]

If this was a mistake or you have questions, reply to this email or visit [support link].

[Product] Team

Day 7: Re-engagement Email

Subject: Your [Product] account is still here

Hi [Name],

It's been a week since you cancelled. Your account and data are still intact 
until [date].

If anything changed, you can reactivate in one click — no re-setup required.

[Reactivate my account →]

No pressure — just wanted to make sure you knew the door's open.

[Product] Team

Day 30: Win-Back Email (send only if triggered by product update or relevant offer)

Subject: [Product] update: [specific feature they mentioned or relevant improvement]

Hi [Name],

Since you left, we shipped [specific update relevant to their cancel reason].
[2-3 sentence description of what changed.]

If [their specific problem] was why you left, it might be worth another look.

[See what's new →]    or    [Reactivate →]

[Product] Team

Cancel Flow Audit Scorecard

Rate your existing flow on each dimension (0-10):

Dimension 0 pts 5 pts 10 pts
Accessibility Cancel requires support ticket Cancel in settings, but buried Cancel clearly visible in billing settings
Exit survey None Optional, multi-question Required, single question, maps to offers
Save offers None or generic discount Offers exist but not mapped Offers matched to exit reasons
Confirmation clarity Confusing terms Mentions access end date Clear date, data policy, reactivation path
Post-cancel sequence Nothing One generic email Immediate confirmation + 7-day re-engagement
Dunning None Basic retry only Retry + email sequence + card updater
Analytics No tracking Basic cancellation count Reason tracking, save rate, recovery rate

Score interpretation:

  • 60-70: Solid foundation. Fix the 0-5 rated dimensions.
  • 40-59: Material revenue leaking. Prioritize survey + offer mapping.
  • <40: Major opportunity. Build from scratch using this playbook.

Platform Implementation Notes

Stripe

  • Use Customer Portal for cancel flow (customizable via Stripe Dashboard)
  • Enable Stripe Billing webhooks: customer.subscription.deleted, invoice.payment_failed
  • Stripe Radar helps filter bot-initiated failures from real card failures
  • Account Updater: enabled by default on most plans — verify in Dashboard > Settings

Chargebee / Recurly

  • Both have native cancel flow builders with reason collection
  • Dunning sequences configurable in-product
  • Connect to your email provider (Intercom, Customer.io, etc.) via webhook

Custom / Homegrown Billing

  • Build cancel flow as a separate route (not inline in settings)
  • Store cancel_reason, save_offer_shown, save_offer_accepted per customer
  • Retry logic: implement as a background job with delay queue