Cold Email Drafter
Generates personalized cold emails using proven copywriting frameworks. Each email is built from scratch based on lead context, not recycled templates.
Prerequisites
agency.config.json populated (outreach tone, banned phrases, case studies)
- Lead data (company, contact name, title)
- For Tier 3: personalization packet from
personalization-enricher
Phase 0: Intake
Read agency.config.json and gather:
outreach.tone -- writing style
outreach.banned_phrases -- never include these
outreach.sign_off -- email signature
case_studies -- proof points to reference
services -- what we offer
Gather from user:
- Lead context: company name, contact name, title, company size
- Signal/trigger: what prompted this outreach (funding, job post, community post, gig listing)
- Personalization tier: 1 (basic), 2 (segment), or 3 (hyper-personalized)
- Email position: initial (Touch 1), follow-up (Touch 2-3), or breakup (Touch 4)
- Personalization packet (Tier 3 only): CRO findings, person's recent posts, specific pain points
Phase 1: Framework Selection
Choose the framework based on signal type and email position:
| Signal Type |
Touch 1 (Day 1) |
Touch 2 (Day 4) |
Touch 3 (Day 7) |
Breakup (Day 10) |
| CRO issue found |
PAS |
BAB |
Case Study |
Respectful close |
| Funding/growth signal |
Signal-Proof-Ask |
AIDA |
Case Study |
Respectful close |
| Job posting / hiring |
BAB |
PAS |
Case Study |
Respectful close |
| Community post / gig |
AIDA |
Signal-Proof-Ask |
Case Study |
Respectful close |
| No specific signal |
PAS |
BAB |
Case Study |
Respectful close |
Framework Structures
PAS (Problem-Agitation-Solution)
- Name a specific problem they have (from CRO audit or research)
- Agitate: what it's costing them (lost revenue, missed conversions)
- Solution: how you've fixed this before (case study reference)
- CTA: soft ask
BAB (Before-After-Bridge)
- Before: their current situation (specific observation)
- After: what it could look like (with numbers if possible)
- Bridge: how to get there (your service)
- CTA: soft ask
AIDA (Attention-Interest-Desire-Action)
- Attention: hook referencing something specific about them
- Interest: relevant insight or data point
- Desire: case study or proof of results
- Action: clear next step
Signal-Proof-Ask
- Signal: reference the specific trigger ("saw you just raised Series A")
- Proof: relevant case study or expertise
- Ask: one clear question or CTA
Phase 2: Personalization by Tier
Tier 1 -- Merge Fields (for bulk sends)
- Use: {{first_name}}, {{company_name}}, {{industry}}
- Generic but professional
- One case study reference
- 60-90 words
Tier 2 -- Segment-Based
- Reference industry-specific pain points
- Use company-size-appropriate language (founder vs VP)
- Tailor case study to their industry
- 80-120 words
Tier 3 -- Hyper-Personalized
- Reference their specific CRO issue ("noticed your product pages don't show reviews")
- Reference their personal activity ("loved your LinkedIn post about X")
- Reference the specific signal that triggered outreach
- Connect all three: signal + finding + proof point
- 80-120 words
- This tier requires output from
personalization-enricher
Phase 3: Generate Email
Rules (non-negotiable)
- Subject line: SUPER CATCHY. Under 50 characters, curiosity-driven, attention-grabbing.
Think viral tweet energy, not corporate email. Examples:
- "your product pages are leaking revenue"
- "found something on your store"
- "quick CRO win for [company]"
- "[name], saw your post about [topic]"
- "re: your Shopify store"
- "this might save you 20% in lost sales"
DO NOT use: generic greetings, company names only, ALL CAPS, clickbait, spam triggers.
Subject line is the single most important part of the email. Spend extra cycles on it.
- Opening: NO filler ("I hope this finds you well", "My name is"). Start with value.
- Body: Max 5 sentences. Lead with their problem, not your service.
- CTA: ONE per email. Soft ask. ("Worth a 15-min look?" / "Open to a quick chat?")
- Sign-off: from
agency.config.json outreach.sign_off
- Never include: anything from
outreach.banned_phrases
- Each follow-up adds NEW value (never "just bumping this up")
Word Limits by Position
| Position |
Day |
Words |
Tone |
| Touch 1 (initial) |
Day 1 |
60-90 |
Direct, value-first |
| Touch 2 (new angle) |
Day 4 |
40-60 |
Different pain point, brief |
| Touch 3 (case study) |
Day 7 |
60-90 |
Kibi Sports case study + Plasho's work |
| Breakup |
Day 10 |
30-50 |
"Not a priority, thanks for your time" |
Follow-Up Rules (Updated 10-Day Cadence)
- Touch 2 (Day 4): New pain point angle, different from Email 1. Threaded as Re:
- Touch 3 (Day 7): Kibi Sports case study with Plasho's work. Show results.
- Breakup (Day 10): "Looks like this isn't a priority right now. Thanks for your time. If things change, we're here." Keep it short, respectful, door open.
- NEVER repeat the same email angle across touches
- Each follow-up MUST add new value
Phase 4: Output
Return JSON:
{
"subject": "email subject line",
"body": "full email body with sign-off",
"framework_used": "PAS",
"personalization_tier": 3,
"personalization_points": ["referenced CRO finding about missing reviews", "mentioned their LinkedIn post about D2C economics"],
"word_count": 87,
"position": "touch_1",
"linkedin_note": "short LinkedIn connection note (under 300 chars, for Tier 2+)"
}
Generate 3 variants for Touch 1 (user picks the best). Single variant for follow-ups.
Phase 5: Output Delivery
No approval gate. Generated content is passed directly to outreach-draft-pipeline for automated delivery.
Optionally log to CRM via crm-writer (Email Drafts tab).
Phase 6: Delivery
All email delivery is via Chrome DevTools MCP -> Zoho webmail:
mcp__chrome-devtools__navigate_page to Zoho webmail compose
mcp__chrome-devtools__fill recipient, subject, body
mcp__chrome-devtools__click send button
No Gmail MCP, no SMTP, no CSV export, no manual copy-paste.
Example Usage
Trigger phrases:
- "Draft a cold email for [company/contact]"
- "Write the first touch email for this lead"
- "Generate a follow-up email (touch 3) for [contact]"
- "Write a breakup email for [contact]"
- "Draft emails for these 5 leads"
1---2name: cold-email-drafter3description: Framework-based cold email composer with 3 personalization tiers. Generates subject line, body, and follow-up variants. Never uses templates -- builds from frameworks (PAS, BAB, AIDA, Signal-Proof-Ask).4---56# Cold Email Drafter78Generates personalized cold emails using proven copywriting frameworks. Each email is built from scratch based on lead context, not recycled templates.910## Prerequisites1112- `agency.config.json` populated (outreach tone, banned phrases, case studies)13- Lead data (company, contact name, title)14- For Tier 3: personalization packet from `personalization-enricher`1516## Phase 0: Intake1718Read `agency.config.json` and gather:19- `outreach.tone` -- writing style20- `outreach.banned_phrases` -- never include these21- `outreach.sign_off` -- email signature22- `case_studies` -- proof points to reference23- `services` -- what we offer2425Gather from user:261. **Lead context**: company name, contact name, title, company size272. **Signal/trigger**: what prompted this outreach (funding, job post, community post, gig listing)283. **Personalization tier**: 1 (basic), 2 (segment), or 3 (hyper-personalized)294. **Email position**: initial (Touch 1), follow-up (Touch 2-3), or breakup (Touch 4)305. **Personalization packet** (Tier 3 only): CRO findings, person's recent posts, specific pain points3132## Phase 1: Framework Selection3334Choose the framework based on signal type and email position:3536| Signal Type | Touch 1 (Day 1) | Touch 2 (Day 4) | Touch 3 (Day 7) | Breakup (Day 10) |37|------------|------------------|------------------|------------------|-------------------|38| CRO issue found | PAS | BAB | Case Study | Respectful close |39| Funding/growth signal | Signal-Proof-Ask | AIDA | Case Study | Respectful close |40| Job posting / hiring | BAB | PAS | Case Study | Respectful close |41| Community post / gig | AIDA | Signal-Proof-Ask | Case Study | Respectful close |42| No specific signal | PAS | BAB | Case Study | Respectful close |4344### Framework Structures4546**PAS (Problem-Agitation-Solution)**471. Name a specific problem they have (from CRO audit or research)482. Agitate: what it's costing them (lost revenue, missed conversions)493. Solution: how you've fixed this before (case study reference)504. CTA: soft ask5152**BAB (Before-After-Bridge)**531. Before: their current situation (specific observation)542. After: what it could look like (with numbers if possible)553. Bridge: how to get there (your service)564. CTA: soft ask5758**AIDA (Attention-Interest-Desire-Action)**591. Attention: hook referencing something specific about them602. Interest: relevant insight or data point613. Desire: case study or proof of results624. Action: clear next step6364**Signal-Proof-Ask**651. Signal: reference the specific trigger ("saw you just raised Series A")662. Proof: relevant case study or expertise673. Ask: one clear question or CTA6869## Phase 2: Personalization by Tier7071### Tier 1 -- Merge Fields (for bulk sends)72- Use: {{first_name}}, {{company_name}}, {{industry}}73- Generic but professional74- One case study reference75- 60-90 words7677### Tier 2 -- Segment-Based78- Reference industry-specific pain points79- Use company-size-appropriate language (founder vs VP)80- Tailor case study to their industry81- 80-120 words8283### Tier 3 -- Hyper-Personalized84- Reference their specific CRO issue ("noticed your product pages don't show reviews")85- Reference their personal activity ("loved your LinkedIn post about X")86- Reference the specific signal that triggered outreach87- Connect all three: signal + finding + proof point88- 80-120 words89- This tier requires output from `personalization-enricher`9091## Phase 3: Generate Email9293### Rules (non-negotiable)94- Subject line: SUPER CATCHY. Under 50 characters, curiosity-driven, attention-grabbing.95 Think viral tweet energy, not corporate email. Examples:96 - "your product pages are leaking revenue"97 - "found something on your store"98 - "quick CRO win for [company]"99 - "[name], saw your post about [topic]"100 - "re: your Shopify store"101 - "this might save you 20% in lost sales"102 DO NOT use: generic greetings, company names only, ALL CAPS, clickbait, spam triggers.103 Subject line is the single most important part of the email. Spend extra cycles on it.104- Opening: NO filler ("I hope this finds you well", "My name is"). Start with value.105- Body: Max 5 sentences. Lead with their problem, not your service.106- CTA: ONE per email. Soft ask. ("Worth a 15-min look?" / "Open to a quick chat?")107- Sign-off: from `agency.config.json outreach.sign_off`108- Never include: anything from `outreach.banned_phrases`109- Each follow-up adds NEW value (never "just bumping this up")110111### Word Limits by Position112| Position | Day | Words | Tone |113|----------|-----|-------|------|114| Touch 1 (initial) | Day 1 | 60-90 | Direct, value-first |115| Touch 2 (new angle) | Day 4 | 40-60 | Different pain point, brief |116| Touch 3 (case study) | Day 7 | 60-90 | Kibi Sports case study + Plasho's work |117| Breakup | Day 10 | 30-50 | "Not a priority, thanks for your time" |118119### Follow-Up Rules (Updated 10-Day Cadence)120- Touch 2 (Day 4): New pain point angle, different from Email 1. Threaded as Re:121- Touch 3 (Day 7): Kibi Sports case study with Plasho's work. Show results.122- Breakup (Day 10): "Looks like this isn't a priority right now. Thanks for your time. If things change, we're here." Keep it short, respectful, door open.123- NEVER repeat the same email angle across touches124- Each follow-up MUST add new value125126## Phase 4: Output127128Return JSON:129```json130{131 "subject": "email subject line",132 "body": "full email body with sign-off",133 "framework_used": "PAS",134 "personalization_tier": 3,135 "personalization_points": ["referenced CRO finding about missing reviews", "mentioned their LinkedIn post about D2C economics"],136 "word_count": 87,137 "position": "touch_1",138 "linkedin_note": "short LinkedIn connection note (under 300 chars, for Tier 2+)"139}140```141142Generate 3 variants for Touch 1 (user picks the best). Single variant for follow-ups.143144## Phase 5: Output Delivery145146No approval gate. Generated content is passed directly to outreach-draft-pipeline for automated delivery.147148Optionally log to CRM via `crm-writer` (Email Drafts tab).149150## Phase 6: Delivery151152All email delivery is via Chrome DevTools MCP -> Zoho webmail:153- `mcp__chrome-devtools__navigate_page` to Zoho webmail compose154- `mcp__chrome-devtools__fill` recipient, subject, body155- `mcp__chrome-devtools__click` send button156157No Gmail MCP, no SMTP, no CSV export, no manual copy-paste.158159## Example Usage160161**Trigger phrases:**162- "Draft a cold email for [company/contact]"163- "Write the first touch email for this lead"164- "Generate a follow-up email (touch 3) for [contact]"165- "Write a breakup email for [contact]"166- "Draft emails for these 5 leads"