@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,408 @@
|
|
|
1
|
+
# Dunning Playbook
|
|
2
|
+
|
|
3
|
+
Complete guide to recovering failed payments and reducing involuntary churn.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Why Dunning Matters
|
|
8
|
+
|
|
9
|
+
- Failed payments cause 30-50% of all subscription churn
|
|
10
|
+
- Most failed payments are recoverable with the right strategy
|
|
11
|
+
- Subscription businesses lose an estimated $129 billion annually to involuntary churn
|
|
12
|
+
- Effective dunning recovers 50-60% of failed payments
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## The Dunning Timeline
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
Day -30 to -7: Pre-dunning (prevent failures)
|
|
20
|
+
Day 0: Payment fails → Smart retry #1 + Email #1
|
|
21
|
+
Day 1-3: Smart retry #2 + Email #2
|
|
22
|
+
Day 3-5: Smart retry #3
|
|
23
|
+
Day 5-7: Smart retry #4 + Email #3
|
|
24
|
+
Day 7-10: Final retry + Email #4 (final warning)
|
|
25
|
+
Day 10-14: Grace period ends → Account paused/cancelled
|
|
26
|
+
Day 14+: Win-back sequence begins
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Pre-Dunning: Prevent Failures Before They Happen
|
|
32
|
+
|
|
33
|
+
### Card Expiry Management
|
|
34
|
+
|
|
35
|
+
| Timing | Action |
|
|
36
|
+
|--------|--------|
|
|
37
|
+
| 30 days before expiry | Email: "Your card ending in 4242 expires next month" |
|
|
38
|
+
| 15 days before expiry | Email: "Update your payment method to avoid interruption" |
|
|
39
|
+
| 7 days before expiry | Email: "Your card expires in 7 days — update now" |
|
|
40
|
+
| 3 days before expiry | In-app banner: "Payment method expiring soon" |
|
|
41
|
+
|
|
42
|
+
**Email template — Card expiring:**
|
|
43
|
+
```
|
|
44
|
+
Subject: Your card ending in 4242 expires soon
|
|
45
|
+
|
|
46
|
+
Hi [Name],
|
|
47
|
+
|
|
48
|
+
The card on file for your [Product] subscription expires on [date].
|
|
49
|
+
|
|
50
|
+
Update your payment method now to avoid any interruption:
|
|
51
|
+
|
|
52
|
+
[Update Payment Method →]
|
|
53
|
+
|
|
54
|
+
This takes less than 30 seconds.
|
|
55
|
+
|
|
56
|
+
— [Product] Team
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Card Updater Services
|
|
60
|
+
|
|
61
|
+
Major card networks offer automatic card update programs:
|
|
62
|
+
|
|
63
|
+
| Service | Network | What It Does |
|
|
64
|
+
|---------|---------|--------------|
|
|
65
|
+
| Visa Account Updater (VAU) | Visa | Auto-updates stored card numbers and expiry dates |
|
|
66
|
+
| Mastercard Automatic Billing Updater (ABU) | Mastercard | Same for Mastercard |
|
|
67
|
+
| Amex Cardrefresher | American Express | Same for Amex |
|
|
68
|
+
|
|
69
|
+
**Impact:** Reduces hard declines from expired/replaced cards by 30-50%.
|
|
70
|
+
|
|
71
|
+
**How to enable:**
|
|
72
|
+
- **Stripe**: Automatic — enabled by default
|
|
73
|
+
- **Chargebee**: Enabled through gateway settings
|
|
74
|
+
- **Recurly**: Built-in, enabled by default
|
|
75
|
+
- **Braintree**: Contact processor to enable
|
|
76
|
+
|
|
77
|
+
### Backup Payment Methods
|
|
78
|
+
|
|
79
|
+
Prompt for a second payment method:
|
|
80
|
+
- During signup: "Add a backup payment method" (low conversion)
|
|
81
|
+
- After first successful payment: "Protect your account with a backup card" (better timing)
|
|
82
|
+
- After a failed payment is recovered: "Add a backup to prevent future interruptions" (best timing — they felt the pain)
|
|
83
|
+
|
|
84
|
+
### Pre-Billing Notifications
|
|
85
|
+
|
|
86
|
+
For annual plans or high-value subscriptions:
|
|
87
|
+
- Email 7 days before renewal with amount and date
|
|
88
|
+
- Include link to update payment method
|
|
89
|
+
- Show what's included in the renewal
|
|
90
|
+
- Required by some regulations for auto-renewals
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Smart Retry Strategy
|
|
95
|
+
|
|
96
|
+
### Decline Type Classification
|
|
97
|
+
|
|
98
|
+
| Code | Type | Meaning | Retry? |
|
|
99
|
+
|------|------|---------|--------|
|
|
100
|
+
| `insufficient_funds` | Soft | Temporarily low balance | Yes — retry in 2-3 days |
|
|
101
|
+
| `card_declined` (generic) | Soft | Various temporary reasons | Yes — retry 3-4 times |
|
|
102
|
+
| `processing_error` | Soft | Gateway/network issue | Yes — retry within 24h |
|
|
103
|
+
| `expired_card` | Hard | Card is expired | No — request new card |
|
|
104
|
+
| `stolen_card` | Hard | Card reported stolen | No — request new card |
|
|
105
|
+
| `do_not_honor` | Soft/Hard | Bank refused (ambiguous) | Try once more, then ask for new card |
|
|
106
|
+
| `authentication_required` | Auth | SCA/3DS needed | Send customer to authenticate |
|
|
107
|
+
|
|
108
|
+
### Retry Schedule by Provider
|
|
109
|
+
|
|
110
|
+
**Stripe (Smart Retries — recommended):**
|
|
111
|
+
- Enable "Smart Retries" in Stripe Dashboard → Billing → Settings
|
|
112
|
+
- Stripe's ML model picks optimal retry timing based on billions of transactions
|
|
113
|
+
- Typically 4-8 retry attempts over 3-4 weeks
|
|
114
|
+
- Recovers ~15% more than fixed-schedule retries
|
|
115
|
+
|
|
116
|
+
**Manual retry schedule (if no smart retries):**
|
|
117
|
+
|
|
118
|
+
| Retry | Timing | Best Day/Time |
|
|
119
|
+
|-------|--------|--------------|
|
|
120
|
+
| 1 | Day 1 (24h after failure) | Morning, same day of week as original |
|
|
121
|
+
| 2 | Day 3 | Try a different time of day |
|
|
122
|
+
| 3 | Day 5 | After typical payday (1st, 15th) |
|
|
123
|
+
| 4 | Day 7 | Morning of the next business day |
|
|
124
|
+
| 5 (final) | Day 10 | Last attempt before grace period ends |
|
|
125
|
+
|
|
126
|
+
**Retry timing insights:**
|
|
127
|
+
- Retry on the same day of month the original payment succeeded
|
|
128
|
+
- Retry after common paydays (1st and 15th of the month)
|
|
129
|
+
- Avoid retrying on weekends (lower approval rates)
|
|
130
|
+
- Morning retries (8-10am local time) perform slightly better
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Dunning Email Sequence
|
|
135
|
+
|
|
136
|
+
### Email 1: Payment Failed (Day 0)
|
|
137
|
+
|
|
138
|
+
**Tone:** Friendly, matter-of-fact. No alarm.
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
Subject: Action needed — your payment didn't go through
|
|
142
|
+
|
|
143
|
+
Hi [Name],
|
|
144
|
+
|
|
145
|
+
We tried to charge your [card type] ending in [last 4] for your
|
|
146
|
+
[Product] subscription ($[amount]), but it didn't go through.
|
|
147
|
+
|
|
148
|
+
This happens sometimes — usually a quick card update fixes it.
|
|
149
|
+
|
|
150
|
+
[Update Payment Method →]
|
|
151
|
+
|
|
152
|
+
Your access isn't affected yet. We'll retry automatically, but
|
|
153
|
+
updating your card is the fastest fix.
|
|
154
|
+
|
|
155
|
+
Need help? Just reply to this email.
|
|
156
|
+
|
|
157
|
+
— [Product] Team
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Email 2: Reminder (Day 3)
|
|
161
|
+
|
|
162
|
+
**Tone:** Helpful, slightly more urgent.
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
Subject: Quick reminder — update your payment for [Product]
|
|
166
|
+
|
|
167
|
+
Hi [Name],
|
|
168
|
+
|
|
169
|
+
Just a heads-up — we still haven't been able to process your
|
|
170
|
+
$[amount] payment for [Product].
|
|
171
|
+
|
|
172
|
+
[Update Payment Method →]
|
|
173
|
+
|
|
174
|
+
Takes less than 30 seconds. Your [data/projects/team access]
|
|
175
|
+
is safe, but we'll need a valid payment method to keep your
|
|
176
|
+
account active.
|
|
177
|
+
|
|
178
|
+
Questions? Reply here and we'll help.
|
|
179
|
+
|
|
180
|
+
— [Product] Team
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Email 3: Urgency (Day 7)
|
|
184
|
+
|
|
185
|
+
**Tone:** Direct, clear consequences.
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
Subject: Your [Product] account will be paused in 3 days
|
|
189
|
+
|
|
190
|
+
Hi [Name],
|
|
191
|
+
|
|
192
|
+
We've tried to process your payment several times, but your
|
|
193
|
+
[card type] ending in [last 4] keeps getting declined.
|
|
194
|
+
|
|
195
|
+
If we don't receive payment by [date], your account will be
|
|
196
|
+
paused and you'll lose access to:
|
|
197
|
+
|
|
198
|
+
• [Key feature/data they use]
|
|
199
|
+
• [Their projects/workspace]
|
|
200
|
+
• [Team access for X members]
|
|
201
|
+
|
|
202
|
+
[Update Payment Method Now →]
|
|
203
|
+
|
|
204
|
+
Your data won't be deleted — you can reactivate anytime by
|
|
205
|
+
updating your payment method.
|
|
206
|
+
|
|
207
|
+
— [Product] Team
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Email 4: Final Warning (Day 10)
|
|
211
|
+
|
|
212
|
+
**Tone:** Final, clear, no guilt.
|
|
213
|
+
|
|
214
|
+
```
|
|
215
|
+
Subject: Last chance to keep your [Product] account active
|
|
216
|
+
|
|
217
|
+
Hi [Name],
|
|
218
|
+
|
|
219
|
+
This is our last reminder. Your payment of $[amount] is past
|
|
220
|
+
due, and your account will be paused tomorrow ([date]).
|
|
221
|
+
|
|
222
|
+
[Update Payment Method →]
|
|
223
|
+
|
|
224
|
+
After pausing:
|
|
225
|
+
• Your data is saved for [90 days]
|
|
226
|
+
• You can reactivate anytime
|
|
227
|
+
• Just update your card to restore access
|
|
228
|
+
|
|
229
|
+
If you intended to cancel, no action needed — your account
|
|
230
|
+
will be paused automatically.
|
|
231
|
+
|
|
232
|
+
— [Product] Team
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Grace Period Management
|
|
238
|
+
|
|
239
|
+
### What Happens During Grace Period
|
|
240
|
+
|
|
241
|
+
| Setting | Recommendation |
|
|
242
|
+
|---------|---------------|
|
|
243
|
+
| Duration | 7-14 days after final retry |
|
|
244
|
+
| Access | Degraded (read-only) or full access |
|
|
245
|
+
| Visibility | In-app banner: "Payment past due — update to continue" |
|
|
246
|
+
| Retry | Continue background retries during grace |
|
|
247
|
+
| Communication | Dunning emails continue |
|
|
248
|
+
|
|
249
|
+
### Access Degradation Options
|
|
250
|
+
|
|
251
|
+
**Option A: Full access during grace (recommended for B2B)**
|
|
252
|
+
- Lower friction, customer feels respected
|
|
253
|
+
- Higher recovery rate (they still see value)
|
|
254
|
+
- Risk: some customers exploit the grace period
|
|
255
|
+
|
|
256
|
+
**Option B: Read-only access (recommended for B2C)**
|
|
257
|
+
- Can view but not create/edit
|
|
258
|
+
- Creates urgency without data loss fear
|
|
259
|
+
- Clear message: "Update payment to resume full access"
|
|
260
|
+
|
|
261
|
+
**Option C: Immediate lockout (not recommended)**
|
|
262
|
+
- Aggressive, damages relationship
|
|
263
|
+
- Lower recovery rate
|
|
264
|
+
- Only appropriate for very low-cost plans
|
|
265
|
+
|
|
266
|
+
### Post-Grace Period
|
|
267
|
+
|
|
268
|
+
| Timing | Action |
|
|
269
|
+
|--------|--------|
|
|
270
|
+
| Grace period ends | Pause account (not delete) |
|
|
271
|
+
| Day 1 post-pause | "Your account has been paused" email |
|
|
272
|
+
| Day 7 post-pause | "Your data is still here" reminder |
|
|
273
|
+
| Day 30 post-pause | Win-back attempt with new offer |
|
|
274
|
+
| Day 60 post-pause | Final win-back |
|
|
275
|
+
| Day 90 post-pause | Data deletion warning (if applicable) |
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## Provider-Specific Setup
|
|
280
|
+
|
|
281
|
+
### Stripe
|
|
282
|
+
|
|
283
|
+
**Enable Smart Retries:**
|
|
284
|
+
1. Dashboard → Settings → Billing → Subscriptions and emails
|
|
285
|
+
2. Enable "Smart Retries" under retry rules
|
|
286
|
+
3. Set failed payment emails in Dashboard → Settings → Emails
|
|
287
|
+
|
|
288
|
+
**Custom retry rules (if not using Smart Retries):**
|
|
289
|
+
```
|
|
290
|
+
Retry 1: 3 days after failure
|
|
291
|
+
Retry 2: 5 days after failure
|
|
292
|
+
Retry 3: 7 days after failure
|
|
293
|
+
Final: Mark subscription as unpaid after last retry
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**Webhook events to handle:**
|
|
297
|
+
- `invoice.payment_failed` — trigger dunning
|
|
298
|
+
- `invoice.paid` — cancel dunning, restore access
|
|
299
|
+
- `customer.subscription.updated` — status changes
|
|
300
|
+
- `customer.subscription.deleted` — final cancellation
|
|
301
|
+
|
|
302
|
+
### Chargebee
|
|
303
|
+
|
|
304
|
+
**Built-in dunning:**
|
|
305
|
+
1. Settings → Configure Chargebee → Retry Settings
|
|
306
|
+
2. Configure retry attempts and intervals
|
|
307
|
+
3. Settings → Configure Chargebee → Email Notifications → Dunning
|
|
308
|
+
|
|
309
|
+
**Dunning options:**
|
|
310
|
+
- Automatic retries with configurable schedule
|
|
311
|
+
- Built-in dunning emails (customizable templates)
|
|
312
|
+
- Grace period configuration per plan
|
|
313
|
+
|
|
314
|
+
### Paddle
|
|
315
|
+
|
|
316
|
+
**Managed dunning:**
|
|
317
|
+
- Paddle handles retries and dunning automatically
|
|
318
|
+
- Limited customization (Paddle manages the relationship)
|
|
319
|
+
- Webhook: `subscription.payment_failed`, `subscription.cancelled`
|
|
320
|
+
- Best for hands-off approach
|
|
321
|
+
|
|
322
|
+
### Recurly
|
|
323
|
+
|
|
324
|
+
**Revenue Recovery:**
|
|
325
|
+
1. Configuration → Dunning Management
|
|
326
|
+
2. Set retry schedule per plan
|
|
327
|
+
3. Configure grace period and final action (pause vs cancel)
|
|
328
|
+
|
|
329
|
+
**Advanced features:**
|
|
330
|
+
- Machine-learning retry optimization
|
|
331
|
+
- Per-plan dunning schedules
|
|
332
|
+
- Built-in Account Updater
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## In-App Dunning
|
|
337
|
+
|
|
338
|
+
Don't rely on email alone. Show payment failures in the app:
|
|
339
|
+
|
|
340
|
+
### Banner Pattern
|
|
341
|
+
```
|
|
342
|
+
┌──────────────────────────────────────────────────────┐
|
|
343
|
+
│ ⚠ Your payment of $29 failed. Update your card to │
|
|
344
|
+
│ avoid losing access. [Update Payment →] [Dismiss] │
|
|
345
|
+
└──────────────────────────────────────────────────────┘
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
**Rules:**
|
|
349
|
+
- Show on every page load during dunning period
|
|
350
|
+
- Allow dismiss (but show again next session)
|
|
351
|
+
- Direct link to payment update (fewest clicks possible)
|
|
352
|
+
- Don't block the product — let them continue using it
|
|
353
|
+
|
|
354
|
+
### Modal Pattern (for final warning)
|
|
355
|
+
```
|
|
356
|
+
┌─────────────────────────────────────┐
|
|
357
|
+
│ │
|
|
358
|
+
│ Your account will be paused │
|
|
359
|
+
│ on [date] │
|
|
360
|
+
│ │
|
|
361
|
+
│ Update your payment method to │
|
|
362
|
+
│ keep access to your [X] projects │
|
|
363
|
+
│ and [Y] team members. │
|
|
364
|
+
│ │
|
|
365
|
+
│ [Update Payment Method] │
|
|
366
|
+
│ [Remind Me Later] │
|
|
367
|
+
│ │
|
|
368
|
+
└─────────────────────────────────────┘
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
## Measuring Dunning Performance
|
|
374
|
+
|
|
375
|
+
### Key Metrics
|
|
376
|
+
|
|
377
|
+
| Metric | How to Calculate | Target |
|
|
378
|
+
|--------|-----------------|--------|
|
|
379
|
+
| Recovery rate | Recovered payments / Total failed | 50-60% |
|
|
380
|
+
| Recovery rate by decline type | Recovered / Failed per type | Soft: 70%+, Hard: 40%+ |
|
|
381
|
+
| Time to recovery | Days from failure to successful payment | <5 days |
|
|
382
|
+
| Pre-dunning prevention rate | Prevented failures / Expected failures | 20-30% |
|
|
383
|
+
| Dunning email open rate | Opens / Sent per email | 60%+ |
|
|
384
|
+
| Dunning email click rate | Clicks / Opens per email | 30%+ |
|
|
385
|
+
| Revenue recovered (monthly) | Sum of recovered payment amounts | Track trend |
|
|
386
|
+
| Revenue lost to involuntary churn | Sum of failed + unrecovered amounts | Track trend |
|
|
387
|
+
|
|
388
|
+
### Benchmarking
|
|
389
|
+
|
|
390
|
+
**By company stage:**
|
|
391
|
+
|
|
392
|
+
| Stage | Typical Involuntary Churn | Target After Optimization |
|
|
393
|
+
|-------|--------------------------|--------------------------|
|
|
394
|
+
| Early (< $1M ARR) | 3-5% of MRR/month | 1-2% |
|
|
395
|
+
| Growth ($1-10M ARR) | 2-4% of MRR/month | 0.5-1.5% |
|
|
396
|
+
| Scale ($10M+ ARR) | 1-3% of MRR/month | 0.3-0.8% |
|
|
397
|
+
|
|
398
|
+
### ROI Calculation
|
|
399
|
+
|
|
400
|
+
```
|
|
401
|
+
Monthly failed payment MRR: $10,000
|
|
402
|
+
Current recovery rate: 30% ($3,000 recovered)
|
|
403
|
+
Target recovery rate: 60% ($6,000 recovered)
|
|
404
|
+
Monthly improvement: $3,000/month
|
|
405
|
+
Annual improvement: $36,000/year
|
|
406
|
+
Cost of dunning optimization: ~$200-500/month (tooling)
|
|
407
|
+
ROI: 6-15x
|
|
408
|
+
```
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cold-email
|
|
3
|
+
description: 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 "cold outreach," "prospecting email," "outbound email," "email to leads," "reach out to prospects," "sales email," "follow-up email sequence," "nobody's replying to my emails," or "how do I write a cold email." Covers subject lines, opening lines, body copy, CTAs, personalization, and multi-touch follow-up sequences. For warm/lifecycle email sequences, see email-sequence. For sales collateral beyond emails, see sales-enablement.
|
|
4
|
+
metadata:
|
|
5
|
+
version: 1.1.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Cold Email Writing
|
|
9
|
+
|
|
10
|
+
You are an expert cold email writer. Your goal is to write emails that sound like they came from a sharp, thoughtful human — not a sales machine following a template.
|
|
11
|
+
|
|
12
|
+
## Before Writing
|
|
13
|
+
|
|
14
|
+
**Use approved context inputs first:**
|
|
15
|
+
In Maya task workflows, start with the approved `TASK-PACKET.md` inputs and listed brand sections. If `PRODUCT.md` is explicitly provided or the work is being done in consult-style standalone usage, read `PRODUCT.md` before asking questions. If `PRODUCT.md` is missing, do not pretend the output is fully brand-calibrated.
|
|
16
|
+
|
|
17
|
+
Understand the situation (ask if not provided):
|
|
18
|
+
|
|
19
|
+
1. **Who are you writing to?** — Role, company, why them specifically
|
|
20
|
+
2. **What do you want?** — The outcome (meeting, reply, intro, demo)
|
|
21
|
+
3. **What's the value?** — The specific problem you solve for people like them
|
|
22
|
+
4. **What's your proof?** — A result, case study, or credibility signal
|
|
23
|
+
5. **Any research signals?** — Funding, hiring, LinkedIn posts, company news, tech stack changes
|
|
24
|
+
|
|
25
|
+
Work with whatever the user gives you. If they have a strong signal and a clear value prop, that's enough to write. Don't block on missing inputs — use what you have and note what would make it stronger.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Writing Principles
|
|
30
|
+
|
|
31
|
+
### Write like a peer, not a vendor
|
|
32
|
+
|
|
33
|
+
The email should read like it came from someone who understands their world — not someone trying to sell them something. Use contractions. Read it aloud. If it sounds like marketing copy, rewrite it.
|
|
34
|
+
|
|
35
|
+
### Every sentence must earn its place
|
|
36
|
+
|
|
37
|
+
Cold email is ruthlessly short. If a sentence doesn't move the reader toward replying, cut it. The best cold emails feel like they could have been shorter, not longer.
|
|
38
|
+
|
|
39
|
+
### Personalization must connect to the problem
|
|
40
|
+
|
|
41
|
+
If you remove the personalized opening and the email still makes sense, the personalization isn't working. The observation should naturally lead into why you're reaching out.
|
|
42
|
+
|
|
43
|
+
See [personalization.md](references/personalization.md) for the 4-level system and research signals.
|
|
44
|
+
|
|
45
|
+
### Lead with their world, not yours
|
|
46
|
+
|
|
47
|
+
The reader should see their own situation reflected back. "You/your" should dominate over "I/we." Don't open with who you are or what your company does.
|
|
48
|
+
|
|
49
|
+
### One ask, low friction
|
|
50
|
+
|
|
51
|
+
Interest-based CTAs ("Worth exploring?" / "Would this be useful?") beat meeting requests. One CTA per email. Make it easy to say yes with a one-line reply.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Voice & Tone
|
|
56
|
+
|
|
57
|
+
**The target voice:** A smart colleague who noticed something relevant and is sharing it. Conversational but not sloppy. Confident but not pushy.
|
|
58
|
+
|
|
59
|
+
**Calibrate to the audience:**
|
|
60
|
+
|
|
61
|
+
- C-suite: ultra-brief, peer-level, understated
|
|
62
|
+
- Mid-level: more specific value, slightly more detail
|
|
63
|
+
- Technical: precise, no fluff, respect their intelligence
|
|
64
|
+
|
|
65
|
+
**What it should NOT sound like:**
|
|
66
|
+
|
|
67
|
+
- A template with fields swapped in
|
|
68
|
+
- A pitch deck compressed into paragraph form
|
|
69
|
+
- A LinkedIn DM from someone you've never met
|
|
70
|
+
- An AI-generated email (avoid the telltale patterns: "I hope this email finds you well," "I came across your profile," "leverage," "synergy," "best-in-class")
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Structure
|
|
75
|
+
|
|
76
|
+
There's no single right structure. Choose a framework that fits the situation, or write freeform if the email flows naturally without one.
|
|
77
|
+
|
|
78
|
+
**Common shapes that work:**
|
|
79
|
+
|
|
80
|
+
- **Observation → Problem → Proof → Ask** — You noticed X, which usually means Y challenge. We helped Z with that. Interested?
|
|
81
|
+
- **Question → Value → Ask** — Struggling with X? We do Y. Company Z saw [result]. Worth a look?
|
|
82
|
+
- **Trigger → Insight → Ask** — Congrats on X. That usually creates Y challenge. We've helped similar companies with that. Curious?
|
|
83
|
+
- **Story → Bridge → Ask** — [Similar company] had [problem]. They [solved it this way]. Relevant to you?
|
|
84
|
+
|
|
85
|
+
For the full catalog of frameworks with examples, see [frameworks.md](references/frameworks.md).
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Subject Lines
|
|
90
|
+
|
|
91
|
+
Short, boring, internal-looking. The subject line's only job is to get the email opened — not to sell.
|
|
92
|
+
|
|
93
|
+
- 2-4 words, lowercase, no punctuation tricks
|
|
94
|
+
- Should look like it came from a colleague ("reply rates," "hiring ops," "Q2 forecast")
|
|
95
|
+
- No product pitches, no urgency, no emojis, no prospect's first name
|
|
96
|
+
|
|
97
|
+
See [subject-lines.md](references/subject-lines.md) for the full data.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Follow-Up Sequences
|
|
102
|
+
|
|
103
|
+
Each follow-up should add something new — a different angle, fresh proof, a useful resource. "Just checking in" gives the reader no reason to respond.
|
|
104
|
+
|
|
105
|
+
- 3-5 total emails, increasing gaps between them
|
|
106
|
+
- Each email should stand alone (they may not have read the previous ones)
|
|
107
|
+
- The breakup email is your last touch — honor it
|
|
108
|
+
|
|
109
|
+
See [follow-up-sequences.md](references/follow-up-sequences.md) for cadence, angle rotation, and breakup email templates.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Quality Check
|
|
114
|
+
|
|
115
|
+
Before presenting, gut-check:
|
|
116
|
+
|
|
117
|
+
- Does it sound like a human wrote it? (Read it aloud)
|
|
118
|
+
- Would YOU reply to this if you received it?
|
|
119
|
+
- Does every sentence serve the reader, not the sender?
|
|
120
|
+
- Is the personalization connected to the problem?
|
|
121
|
+
- Is there one clear, low-friction ask?
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## What to Avoid
|
|
126
|
+
|
|
127
|
+
- Opening with "I hope this email finds you well" or "My name is X and I work at Y"
|
|
128
|
+
- Jargon: "synergy," "leverage," "circle back," "best-in-class," "leading provider"
|
|
129
|
+
- Feature dumps — one proof point beats ten features
|
|
130
|
+
- HTML, images, or multiple links
|
|
131
|
+
- Fake "Re:" or "Fwd:" subject lines
|
|
132
|
+
- Identical templates with only {{FirstName}} swapped
|
|
133
|
+
- Asking for 30-minute calls in first touch
|
|
134
|
+
- "Just checking in" follow-ups
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Data & Benchmarks
|
|
139
|
+
|
|
140
|
+
The references contain performance data if you need to make informed choices:
|
|
141
|
+
|
|
142
|
+
- [benchmarks.md](references/benchmarks.md) — Reply rates, conversion funnels, expert methods, common mistakes
|
|
143
|
+
- [personalization.md](references/personalization.md) — 4-level personalization system, research signals
|
|
144
|
+
- [subject-lines.md](references/subject-lines.md) — Subject line data and optimization
|
|
145
|
+
- [follow-up-sequences.md](references/follow-up-sequences.md) — Cadence, angles, breakup emails
|
|
146
|
+
- [frameworks.md](references/frameworks.md) — All copywriting frameworks with examples
|
|
147
|
+
|
|
148
|
+
Use this data to inform your writing — not as a checklist to satisfy.
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Related Skills
|
|
153
|
+
|
|
154
|
+
- **copywriting**: For landing pages and web copy
|
|
155
|
+
- **email-sequence**: For lifecycle/nurture email sequences (not cold outreach)
|
|
156
|
+
- **social-content**: For LinkedIn and social posts
|
|
157
|
+
- **`/product` or `PRODUCT.md`**: For establishing or refreshing foundational positioning and brand context
|
|
158
|
+
- **revops**: For lead scoring, routing, and pipeline management
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "cold-email",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Write a cold email to VP of Marketing at mid-size B2B SaaS companies. We sell a content analytics platform that shows which blog posts actually drive pipeline. Our main proof point: customers see 3x increase in content-attributed revenue within 90 days.",
|
|
7
|
+
"expected_output": "Should use approved TASK-PACKET.md inputs first in Maya task workflows, and read PRODUCT.md directly when it is explicitly provided or when the work is consult-style standalone. Should write like a peer, not a vendor. Should use one of the structure frameworks (observation→problem→proof→ask or similar). Subject line should be 2-4 words, lowercase, internal-looking. Every sentence should earn its place. Personalization should connect to the prospect's problem, not just their name. Should use the 3x revenue proof point as social proof, not a feature claim. CTA should be low-friction (not 'book a demo'). Should provide 2-3 variations. Should include a quality check against the guidelines.",
|
|
8
|
+
"assertions": [
|
|
9
|
+
"Uses approved TASK-PACKET.md inputs or PRODUCT.md context first",
|
|
10
|
+
"Writes like a peer, not a vendor",
|
|
11
|
+
"Uses a structure framework from the skill",
|
|
12
|
+
"Subject line is short, lowercase, internal-looking",
|
|
13
|
+
"Every sentence earns its place (concise)",
|
|
14
|
+
"Personalization connects to prospect's problem",
|
|
15
|
+
"Uses proof point as social proof",
|
|
16
|
+
"CTA is low-friction",
|
|
17
|
+
"Provides 2-3 variations"
|
|
18
|
+
],
|
|
19
|
+
"files": []
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": 2,
|
|
23
|
+
"prompt": "Help me write a cold email to CTOs at enterprise companies. I sell cybersecurity training. My current email has a 2% open rate and 0% reply rate.",
|
|
24
|
+
"expected_output": "Should diagnose the current email's likely problems based on 2% open rate (subject line issue) and 0% reply rate (body/relevance issue). Should apply voice calibration for CTO audience (respect their time, technical credibility, executive-level language). Should provide a completely new email following structure frameworks. Subject line should be 2-4 words, look internal. Should adapt tone for enterprise CTOs — more formal than startup audience but still peer-like. Should provide the email plus analysis of why each element works.",
|
|
25
|
+
"assertions": [
|
|
26
|
+
"Diagnoses problems from the performance data",
|
|
27
|
+
"Identifies subject line as likely open rate issue",
|
|
28
|
+
"Applies voice calibration for CTO audience",
|
|
29
|
+
"Subject line is short, lowercase, internal-looking",
|
|
30
|
+
"Adapts tone for enterprise audience",
|
|
31
|
+
"Uses structure framework from the skill",
|
|
32
|
+
"Explains why each element works"
|
|
33
|
+
],
|
|
34
|
+
"files": []
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": 3,
|
|
38
|
+
"prompt": "write me a follow-up sequence. prospect didn't reply to my first email about our HR software. how many should I send and how far apart?",
|
|
39
|
+
"expected_output": "Should trigger on casual phrasing. Should apply the follow-up sequence guidance: 3-5 follow-ups recommended. Each follow-up should add something new (new angle, new proof point, new value) — not just 'bumping' or 'checking in.' Should provide timing recommendations between emails. Should provide actual follow-up email copy for each touch, with different angles. Should include a breakup email at the end. Should note that each follow-up should be shorter than the previous.",
|
|
40
|
+
"assertions": [
|
|
41
|
+
"Triggers on casual phrasing",
|
|
42
|
+
"Recommends 3-5 follow-up emails",
|
|
43
|
+
"Each follow-up adds something new",
|
|
44
|
+
"Does not use 'just bumping' or 'checking in' language",
|
|
45
|
+
"Provides timing between emails",
|
|
46
|
+
"Provides actual copy for each follow-up",
|
|
47
|
+
"Includes a breakup email",
|
|
48
|
+
"Follow-ups get progressively shorter"
|
|
49
|
+
],
|
|
50
|
+
"files": []
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": 4,
|
|
54
|
+
"prompt": "Review this cold email and tell me what's wrong: 'Dear Sir/Madam, I hope this email finds you well. I wanted to reach out to introduce our innovative cloud-based platform that leverages AI to streamline your business operations. We have helped over 500 companies transform their workflows. I would love to schedule a 30-minute call to discuss how we can help your organization. Best regards, John'",
|
|
55
|
+
"expected_output": "Should apply the quality check framework. Should identify multiple problems: 'Dear Sir/Madam' (no personalization), 'I hope this email finds you well' (filler), 'innovative cloud-based platform' (jargon/buzzwords), 'leverages AI to streamline' (vague vendor language), 'transform their workflows' (means nothing), '30-minute call' (too much ask for cold email), entire email is about the sender not the prospect. Should rewrite following the principles: peer tone, observation→problem→proof→ask structure, every sentence earns its place, personalization connected to their problem, low-friction CTA.",
|
|
56
|
+
"assertions": [
|
|
57
|
+
"Identifies lack of personalization",
|
|
58
|
+
"Identifies filler phrases",
|
|
59
|
+
"Identifies jargon and buzzwords",
|
|
60
|
+
"Identifies vendor language vs peer language",
|
|
61
|
+
"Identifies CTA as too high-friction",
|
|
62
|
+
"Notes email is sender-focused not prospect-focused",
|
|
63
|
+
"Provides a rewritten version",
|
|
64
|
+
"Rewrite follows cold email principles"
|
|
65
|
+
],
|
|
66
|
+
"files": []
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"id": 5,
|
|
70
|
+
"prompt": "What are the best subject lines for cold emails? I want to maximize open rates.",
|
|
71
|
+
"expected_output": "Should apply the subject line guidelines: short (2-4 words), lowercase or sentence case, internal-looking (should look like it came from a colleague, not a vendor). Should provide examples following these principles. Should explain why these work (bypass promotional filters, trigger curiosity, don't look like marketing). Should warn against common bad subject lines (ALL CAPS, emojis, clickbait, long subjects). Should note that subject line gets them to open but body gets them to reply.",
|
|
72
|
+
"assertions": [
|
|
73
|
+
"Applies subject line guidelines (2-4 words, lowercase, internal-looking)",
|
|
74
|
+
"Provides specific examples",
|
|
75
|
+
"Explains why the format works",
|
|
76
|
+
"Warns against common bad subject line patterns",
|
|
77
|
+
"Notes distinction between open rate and reply rate"
|
|
78
|
+
],
|
|
79
|
+
"files": []
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": 6,
|
|
83
|
+
"prompt": "Can you help me set up an automated email drip campaign for leads who download our whitepaper?",
|
|
84
|
+
"expected_output": "Should recognize this is a lifecycle/nurture email sequence, not cold outreach. Should defer to or cross-reference the email-sequence skill, which handles drip campaigns, lead nurture sequences, and lifecycle emails. Cold email is specifically for unsolicited outbound outreach to prospects who haven't opted in. Should make this distinction clear.",
|
|
85
|
+
"assertions": [
|
|
86
|
+
"Recognizes this as lifecycle/nurture email, not cold outreach",
|
|
87
|
+
"References or defers to email-sequence skill",
|
|
88
|
+
"Explains the distinction between cold email and lifecycle email",
|
|
89
|
+
"Does not attempt to design a nurture sequence using cold email patterns"
|
|
90
|
+
],
|
|
91
|
+
"files": []
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
}
|