multiAI Summary Pending

Email Marketing Engine

Complete email marketing system — deliverability, list building, sequences, cold outreach, automation, analytics, and revenue optimization. Zero dependencies.

3,556 stars

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/afrexai-email-marketing-engine/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/1kalin/afrexai-email-marketing-engine/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/afrexai-email-marketing-engine/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How Email Marketing Engine Compares

Feature / AgentEmail Marketing EngineStandard Approach
Platform SupportmultiLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Complete email marketing system — deliverability, list building, sequences, cold outreach, automation, analytics, and revenue optimization. Zero dependencies.

Which AI agents support this skill?

This skill is compatible with multi.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Email Marketing Engine

Complete methodology for building, running, and optimizing email marketing — from domain setup to revenue attribution. Covers lifecycle email (newsletters, onboarding, retention) AND cold outreach (prospecting, personalization, follow-up). No API keys, no paid tools required.

---

## Phase 1: Infrastructure & Deliverability

### Domain Authentication Checklist

Before sending a single email, complete ALL of these:

```yaml
domain_auth:
  spf:
    record: "v=spf1 include:_spf.google.com include:[esp-domain] ~all"
    check: "nslookup -type=txt yourdomain.com"
    status: pending  # pending | configured | verified
  dkim:
    selector: "google"  # or ESP-specific
    key_length: 2048  # minimum
    status: pending
  dmarc:
    policy: "v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com; pct=100"
    progression: "none → quarantine → reject (over 4 weeks)"
    status: pending
  bimi:
    logo_format: "SVG Tiny 1.2"
    vmc_certificate: false  # optional but increases trust
  reverse_dns: pending
  custom_return_path: pending
```

### Domain Warm-Up Schedule

New domain or IP? Follow this exactly:

| Week | Daily Volume | Target Audience | Content Type |
|------|-------------|-----------------|--------------|
| 1 | 20-50 | Known engaged contacts | Personal, high-value |
| 2 | 50-150 | Recent subscribers | Welcome + best content |
| 3 | 150-500 | Active segment (opened 30d) | Mix of content types |
| 4 | 500-1500 | Broader active list | Regular campaigns |
| 5 | 1500-5000 | Full active list | Normal operations |
| 6+ | Scale 20%/week | Full list minus unengaged | All campaign types |

**Warm-up rules:**
- Send to Gmail/Outlook first (strictest filters = best signal)
- Get replies during warm-up — ask questions, request feedback
- If bounce rate exceeds 3% at any stage, STOP and clean list
- Monitor Google Postmaster Tools daily during warm-up
- Never skip weeks — rebuilding from a spam flag takes 3-6 months

### Sender Reputation Monitoring

Check these weekly:

```yaml
reputation_dashboard:
  google_postmaster:
    domain_reputation: high  # high | medium | low | bad
    spam_rate: 0.02%  # must stay under 0.1%
    authentication: pass
    encryption: tls
  blacklists:
    check_url: "https://mxtoolbox.com/blacklists.aspx"
    listed_on: []  # any listing = immediate action
  bounce_tracking:
    hard_bounces: 0.3%  # remove immediately, never re-send
    soft_bounces: 1.2%  # retry 3x, then suppress
    complaint_rate: 0.04%  # above 0.1% = emergency
  inbox_placement:
    gmail: 94%
    outlook: 91%
    yahoo: 88%
    corporate: 85%
```

**Emergency response if reputation drops:**
1. Immediately reduce volume by 75%
2. Send ONLY to most engaged segment (opened in 7 days)
3. Pause all cold outreach and promotional campaigns
4. Review last 5 campaigns for content triggers
5. Check for spam trap hits (sudden bounces from old addresses)
6. Rebuild gradually over 2-4 weeks

---

## Phase 2: List Building & Management

### List Growth Strategy

**Organic growth methods (ranked by quality):**

| Method | Quality | Volume | Setup Effort |
|--------|---------|--------|-------------|
| Content upgrade (in-article) | ★★★★★ | Medium | Medium |
| Webinar/event registration | ★★★★★ | Low-Med | High |
| Free tool/calculator | ★★★★☆ | High | High |
| Newsletter referral program | ★★★★☆ | Medium | Medium |
| Exit-intent popup | ★★★☆☆ | High | Low |
| Social media bio link | ★★★☆☆ | Low | Low |
| Co-marketing swap | ★★★☆☆ | Medium | Medium |
| Gated whitepaper/report | ★★★☆☆ | Medium | Medium |
| Contest/giveaway | ★★☆☆☆ | High | Medium |
| Purchased list | ☆☆☆☆☆ | High | Low |

**Never buy lists.** Purchased lists contain spam traps, kill deliverability, and violate GDPR/CAN-SPAM. The "shortcut" costs more than building organically.

### Lead Magnet Framework

Every opt-in needs a compelling reason:

```yaml
lead_magnet:
  name: "[Specific Outcome] [Format]"
  format: checklist | template | calculator | swipe_file | mini_course | report
  promise: "What specific result will they get?"
  time_to_value: "< 5 minutes"  # faster = higher conversion
  quality_bar: "Would someone pay $20 for this?"
  delivery: immediate  # never gate behind "check your email in 24h"
  
  # Opt-in page elements
  headline: "[Number] [Outcome] without [Pain]"
  subhead: "One specific proof point or social proof"
  bullet_1: "Specific benefit with number"
  bullet_2: "Addresses main objection"
  bullet_3: "Speed/ease promise"
  form_fields: [email]  # name optional, more fields = lower conversion
  cta_button: "Get the [Format]"  # never "Submit"
  social_proof: "[X] people downloaded this week"
```

### Segmentation Architecture

**Core segments (minimum viable):**

```yaml
segments:
  lifecycle:
    - new_subscriber:
        definition: "Joined < 14 days ago"
        treatment: "Welcome sequence, daily for 2 weeks"
    - active:
        definition: "Opened or clicked in last 30 days"
        treatment: "Full campaigns, all content types"
    - cooling:
        definition: "No opens 30-60 days"
        treatment: "Reduced frequency, best content only"
    - dormant:
        definition: "No opens 60-90 days"
        treatment: "Re-engagement sequence"
    - dead:
        definition: "No opens > 90 days, re-engagement failed"
        treatment: "Remove from list (improves deliverability)"
    - customer:
        definition: "Has purchased"
        treatment: "Retention, upsell, referral"
    - vip:
        definition: "Top 10% by engagement OR revenue"
        treatment: "Early access, exclusives, personal touch"
  
  behavioral:
    - clicked_pricing: "Sales-ready, trigger demo offer"
    - downloaded_resource: "Interested in [topic], nurture there"
    - visited_3x_week: "High intent, accelerate sequence"
    - opened_not_clicked: "Subject works, content needs help"
    - clicked_not_converted: "Interest without action, address objection"
  
  demographic:
    - by_role: "[CEO, VP, Manager, IC]"
    - by_company_size: "[1-10, 11-50, 51-200, 201-1000, 1000+]"
    - by_industry: "[SaaS, Ecommerce, Finance, Healthcare, etc.]"
```

### List Hygiene Protocol

Run monthly:

```
List Hygiene Checklist:
□ Remove all hard bounces (immediately, never re-add)
□ Suppress soft bounces with 3+ consecutive failures
□ Remove spam complainers (permanent suppress)
□ Flag role addresses (info@, admin@, support@) — lower priority
□ Identify spam traps (sudden old-domain bounces)
□ Run email verification on new imports (NeverBounce, ZeroBounce)
□ Sunset dormant subscribers (90 days no engagement)
□ Merge duplicates (same email, different entries)
□ Update preference center opt-outs
□ Document list size change: [before] → [after] = [% change]
```

---

## Phase 3: Email Sequences & Campaigns

### Welcome Sequence (7 emails, 14 days)

The most important sequence you'll ever write:

```yaml
welcome_sequence:
  email_1:
    timing: "Immediate (within 60 seconds)"
    subject: "Here's your [lead magnet] + a quick question"
    goal: "Deliver value, set expectations, get a reply"
    structure:
      - deliver_lead_magnet: "Direct download link, no hoops"
      - set_expectations: "Here's what you'll get from me and how often"
      - personal_question: "What's your biggest challenge with [topic]?"
      - ps: "Reply to this email — I read every response"
    why: "First email gets 50-80% open rate. Replies train inbox placement."
    
  email_2:
    timing: "Day 1 (24 hours)"
    subject: "The [thing] that changed everything for me"
    goal: "Build connection through story + deliver quick win"
    structure:
      - origin_story: "Why I care about [topic] (brief, 3-4 sentences)"
      - quick_win: "One actionable tip they can use in 5 minutes"
      - result: "What happened when I/client did this"
    
  email_3:
    timing: "Day 3"
    subject: "[Number] mistakes killing your [desired outcome]"
    goal: "Educate + position expertise"
    structure:
      - mistakes_list: "3-5 common mistakes with brief explanations"
      - reframe: "Why most advice about this is wrong"
      - bridge: "What to do instead (high-level)"
    
  email_4:
    timing: "Day 5"
    subject: "How [client/case study] achieved [specific result]"
    goal: "Social proof + belief building"
    structure:
      - situation: "Where they started (relatable)"
      - action: "What they did (your method)"
      - result: "Specific numbers and outcomes"
      - takeaway: "One thing the reader can apply today"
    
  email_5:
    timing: "Day 7"
    subject: "The complete guide to [core topic]"
    goal: "Deliver highest-value free content"
    structure:
      - comprehensive_resource: "Best blog post, guide, or video"
      - framework: "Your unique approach/methodology"
      - depth: "Go deeper than competitors dare"
    
  email_6:
    timing: "Day 10"
    subject: "Why most [people] fail at [goal] (and how to avoid it)"
    goal: "Address objections before selling"
    structure:
      - common_objections: "The 3 reasons people hesitate"
      - reframe_each: "Why each objection is actually a feature"
      - bridge_to_offer: "Subtle transition toward solution"
    
  email_7:
    timing: "Day 14"
    subject: "Quick question about [their goal]"
    goal: "Soft CTA — consultation, product, or next step"
    structure:
      - summary: "Quick recap of value delivered so far"
      - offer: "Clear, specific next step with benefit"
      - urgency: "Genuine reason to act now (not fake scarcity)"
      - ps: "Easy alternative if they're not ready"
```

### Cold Outreach Sequence (5 emails, 21 days)

For prospects who don't know you:

```yaml
cold_outreach:
  principles:
    - "Research before writing — generic = spam"
    - "One ask per email — never multiple CTAs"
    - "Under 125 words — busy people skim"
    - "No HTML, no images — plain text performs 2x better"
    - "Personalize first 2 lines or don't send"
    - "Never lie about prior relationship ('We met at...' when you didn't)"

  email_1:
    timing: "Day 0"
    subject: "[First name], quick question about [their specific initiative]"
    template: |
      Hi [Name],

      Saw [specific thing — blog post, LinkedIn update, company news, job posting].
      [One sentence connecting their situation to your value prop].

      We helped [similar company] [specific result with numbers].

      Worth a 15-min call to see if this applies to [their company]?

      [Your name]
    personalization_checklist:
      - "Reference something specific to THEM (not their industry)"
      - "Mention a trigger event (hiring, funding, product launch)"
      - "Name a competitor or peer who got results"
    
  email_2:
    timing: "Day 3"
    subject: "Re: [original subject]"
    template: |
      Hi [Name],

      Quick follow-up — wanted to share [relevant resource/case study]
      that shows how [peer company] solved [the problem you help with].

      [One-line insight from the resource]

      Would this be relevant for [their company]?

      [Your name]
    note: "Add value, don't just 'bump' — bumps are lazy"
    
  email_3:
    timing: "Day 7"
    subject: "[Their company] + [your solution area]"
    template: |
      Hi [Name],

      [One specific observation about their business/website/product].
      [What this typically means / costs them].

      If you're seeing the same thing, I have 2-3 ideas that took
      [similar company] from [before] to [after].

      Open to hearing them?

      [Your name]
    note: "Show you've done homework — specific observation > generic pitch"
    
  email_4:
    timing: "Day 14"
    subject: "Should I close the loop?"
    template: |
      Hi [Name],

      I've reached out a few times — totally understand if the
      timing isn't right.

      If [problem you solve] isn't a priority right now, no worries.
      But if it is, I'd love 15 minutes to share what's working
      for [industry] companies like [their company].

      Either way, just let me know and I'll update my notes.

      [Your name]
    note: "Give them an easy out — reduces guilt, increases replies"
    
  email_5:
    timing: "Day 21"
    subject: "Closing the file on [their company]"
    template: |
      Hi [Name],

      Looks like [solving X] isn't a priority right now — totally get it.

      I'll close out my notes on [their company]. If things change
      down the road, here's my calendar link: [link]

      Wishing you and the team a great [quarter/year].

      [Your name]
    note: "Breakup email — often gets the highest reply rate (20-30%)"
```

### Personalization Framework

Move beyond `{first_name}`:

```yaml
personalization_levels:
  level_1_basic:  # minimum viable
    - first_name
    - company_name
    - industry
    impact: "5-10% lift in opens"
    
  level_2_contextual:  # good
    - role/title reference
    - company size tier messaging
    - industry-specific pain points
    - geographic reference
    impact: "15-25% lift in opens and clicks"
    
  level_3_behavioral:  # great
    - reference their recent action (download, page visit, event)
    - mention content they engaged with
    - tailor offer to demonstrated interest
    impact: "30-50% lift in conversions"
    
  level_4_research:  # cold outreach only
    - reference specific blog post/interview they wrote
    - mention recent company news (funding, launch, hire)
    - note a competitor move affecting them
    - connect to LinkedIn post or tweet they shared
    impact: "2-5x reply rate vs. generic"
```

### Re-Engagement Sequence (3 emails)

For subscribers going dark (30-90 days no opens):

```yaml
re_engagement:
  email_1:
    timing: "Day 0 (triggered at 60 days no open)"
    subject: "Still interested in [topic]?"
    content: |
      We noticed you haven't opened our emails in a while.
      No hard feelings — priorities change.
      
      Here's what you missed: [link to best content from last 60 days]
      
      Want to stay on the list? Just click here: [re-confirm link]
      
      If not, we'll automatically remove you in 14 days.
      Either way, no spam — that's a promise.
      
  email_2:
    timing: "Day 7"
    subject: "Last chance: [special offer or best content piece]"
    content: "Offer genuine incentive — exclusive content, discount, or early access"
    
  email_3:
    timing: "Day 14"
    subject: "Goodbye (for now)"
    content: |
      We're removing you from our email list to keep things clean.
      
      If you ever want back in: [subscribe link]
      
      Thanks for being here — hope we helped along the way.
    
    action: "Auto-suppress after send. NEVER re-add without explicit re-opt-in."
```

---

## Phase 4: Campaign Types & Templates

### Newsletter Framework

```yaml
newsletter:
  frequency: weekly | biweekly  # pick one and be consistent
  best_day: "Tuesday-Thursday, 9-11 AM recipient timezone"
  
  structure:
    hook: "Opening line — personal, topical, or contrarian (2 sentences max)"
    main_content:
      format: "1 deep piece OR 3-5 curated pieces with commentary"
      rule: "80% education, 20% promotion maximum"
      voice: "Write like you're emailing a smart friend"
    cta: "One clear ask — reply, click, share, or buy"
    ps: "Secondary link, personal note, or teaser for next issue"
  
  subject_line_formulas:
    curiosity: "[Number] things I learned about [topic] this week"
    utility: "How to [achieve X] without [pain Y]"
    contrarian: "Stop [common advice] — here's what works instead"
    news: "[Topic] just changed — here's what it means for you"
    personal: "I made a mistake with [topic] (here's what happened)"
  
  metrics_targets:
    open_rate: "> 35% (engaged list), > 20% (broad)"
    click_rate: "> 3%"
    reply_rate: "> 0.5%"
    unsubscribe: "< 0.3% per send"
```

### Promotional Campaign Template

```yaml
promotional:
  pre_launch:  # 3-7 days before
    email_1: "Tease — 'Something's coming for [audience]'"
    email_2: "Behind-the-scenes — why we built this"
    
  launch:  # Day of
    email_1: "Announcement — what it is, who it's for, how to get it"
    email_2: "Social proof — early results, testimonials"
    
  follow_up:  # 3-7 days after
    email_1: "FAQ — address top objections"
    email_2: "Case study — detailed success story"
    email_3: "Last chance — genuine deadline or limit"
    
  rules:
    - "Never fake scarcity — if it's evergreen, don't say 'limited time'"
    - "Segment: don't pitch customers what they already own"
    - "Track revenue per email, not just clicks"
    - "3 promotional emails per month maximum (ratio to value emails)"
```

### Transactional Email Optimization

Most companies waste transactional emails (70%+ open rate):

```yaml
transactional_upgrades:
  order_confirmation:
    must_have: "Order details, delivery estimate"
    add: "Onboarding tip, complementary product, referral ask"
    
  shipping_notification:
    must_have: "Tracking link, delivery date"
    add: "Setup guide, community invite, content recommendation"
    
  receipt:
    must_have: "Amount, description, support contact"
    add: "Usage tips, upgrade path, review request (after delivery)"
    
  password_reset:
    must_have: "Reset link, security note"
    add: "Account security tips, feature reminder"
    
  rule: "Transactional emails MUST remain primarily transactional. Marketing content should be secondary and relevant."
```

---

## Phase 5: A/B Testing & Optimization

### Testing Protocol

```yaml
ab_testing:
  minimum_sample: 1000  # per variant for statistical significance
  confidence_level: 95%  # don't declare winners below this
  
  priority_order:  # test in this order for maximum impact
    1: "Subject line (biggest lever — 30-50% impact on opens)"
    2: "Send time (10-20% impact)"
    3: "From name (15-25% impact — personal name vs brand)"
    4: "CTA copy and placement (20-40% impact on clicks)"
    5: "Email length (varies wildly by audience)"
    6: "Plain text vs HTML"
    7: "Personalization depth"
    8: "Preheader text"
  
  methodology:
    split: "20% test / 80% winner (for subject lines)"
    duration: "Wait minimum 4 hours before declaring winner"
    isolation: "Change ONE variable per test"
    documentation: "Log every test result — institutional knowledge"
  
  test_log_template:
    date: "YYYY-MM-DD"
    variable: "Subject line | Send time | CTA | etc."
    variant_a: "Description"
    variant_b: "Description"
    sample_size: "N per variant"
    metric: "Open rate | Click rate | Conversion"
    result_a: "X%"
    result_b: "Y%"
    winner: "A | B | No significant difference"
    confidence: "95%+"
    learning: "What we now know"
    next_test: "What to test based on this result"
```

### Subject Line Scoring

Rate every subject line before sending:

```yaml
subject_line_rubric:
  length:
    score: 0-2
    criteria:
      2: "30-50 characters (optimal mobile display)"
      1: "50-70 characters (acceptable)"
      0: "> 70 characters (truncated on most devices)"
      
  specificity:
    score: 0-2
    criteria:
      2: "Contains a specific number, name, or outcome"
      1: "Somewhat specific"
      0: "Vague or generic"
      
  curiosity_gap:
    score: 0-2
    criteria:
      2: "Creates genuine curiosity without being clickbait"
      1: "Mildly interesting"
      0: "No reason to open"
      
  relevance:
    score: 0-2
    criteria:
      2: "Directly addresses recipient's known interest/pain"
      1: "Generally relevant to audience"
      0: "Could be for anyone"
      
  spam_risk:
    score: 0-2
    criteria:
      2: "No spam triggers, natural language"
      1: "Minor risk factors (emoji, question mark)"
      0: "ALL CAPS, exclamation!!!, 'Free', 'Act now'"
      
  total: "/10 — don't send below 7"
```

### Email Copy Scoring

```yaml
email_quality_rubric:
  clarity:
    weight: 25
    criteria:
      25: "One clear message, one CTA, instantly understood"
      15: "Clear but slightly unfocused"
      5: "Multiple messages competing for attention"
      
  value:
    weight: 25
    criteria:
      25: "Reader gains actionable insight or clear benefit"
      15: "Somewhat useful"
      5: "Self-serving with no reader benefit"
      
  voice:
    weight: 20
    criteria:
      20: "Sounds like a human wrote it to one person"
      12: "Professional but slightly generic"
      4: "Corporate-speak, AI-obvious, or template-y"
      
  structure:
    weight: 15
    criteria:
      15: "Scannable: short paragraphs, bold key points, bullets"
      9: "Readable but dense"
      3: "Wall of text, no formatting"
      
  mobile:
    weight: 15
    criteria:
      15: "Single column, large CTA, < 300 words, images optional"
      9: "Mostly mobile-friendly"
      3: "Multi-column, tiny links, image-heavy"
      
  total: "/100 — don't send below 70"
```

---

## Phase 6: Cold Outreach System

### Prospect Research Template

Before writing a single cold email:

```yaml
prospect_research:
  person:
    full_name: ""
    title: ""
    linkedin_url: ""
    recent_post_or_article: ""
    career_trajectory: ""  # where they came from
    mutual_connections: ""
    
  company:
    name: ""
    website: ""
    industry: ""
    employee_count: ""
    recent_news: ""  # funding, launches, hires, awards
    tech_stack: ""  # BuiltWith, Wappalyzer
    job_postings: ""  # what they're hiring for = priorities
    
  trigger_events:  # why NOW is the right time
    - "New funding round"
    - "New executive hire"
    - "Product launch"
    - "Competitor move"
    - "Industry regulation change"
    - "Job posting related to your solution"
    - "Negative review/complaint about current tool"
    
  connection_points:  # personalization hooks
    - "Shared background/school/employer"
    - "Content they published"
    - "Conference they spoke at"
    - "Mutual connection"
    - "Specific challenge visible from outside"
```

### Cold Email Deliverability Rules

Cold outreach has DIFFERENT rules than marketing email:

```yaml
cold_email_rules:
  domain:
    - "Use a separate domain for cold outreach (not your main domain)"
    - "Set up: outreach.yourdomain.com or yourdomain.co"
    - "Full SPF/DKIM/DMARC on the outreach domain"
    - "Warm up for minimum 2 weeks before sending"
    
  volume:
    - "Maximum 50 cold emails per day per inbox"
    - "Use multiple inboxes to scale (5 inboxes = 250/day)"
    - "Spread sends throughout the day (not all at once)"
    - "Randomize send times ±15 minutes"
    
  content:
    - "Plain text only — no HTML, no images, no tracking pixels"
    - "Under 125 words (3-4 short paragraphs)"
    - "No more than 1 link per email"
    - "Avoid spam trigger words (free, guaranteed, act now, limited)"
    - "Include physical address and opt-out mechanism"
    
  list:
    - "Verify every email address before sending (< 3% bounce)"
    - "Never send to catch-all domains without verification"
    - "Remove any email that bounces immediately"
    - "Respect unsubscribe within 24 hours"
```

### Reply Handling Framework

```yaml
reply_handling:
  positive:
    signals: ["interested", "tell me more", "let's talk", "send info"]
    response_time: "< 1 hour during business hours"
    action: |
      1. Thank them specifically for what they said
      2. Answer any questions in the reply
      3. Propose 2-3 specific meeting times
      4. Keep it short — they said yes, don't oversell
      
  objection:
    signals: ["too expensive", "not now", "using competitor", "not interested"]
    response_time: "< 4 hours"
    action: |
      1. Acknowledge their concern genuinely
      2. Address the specific objection (not a generic rebuttal)
      3. Offer lighter alternative (case study, free resource)
      4. Leave door open: "If things change, I'm here"
      
  referral:
    signals: ["talk to [name]", "not the right person", "try [department]"]
    action: |
      1. Thank them warmly
      2. Ask: "Would you mind making an intro, or should I reach out directly and mention you?"
      3. Reference the referral in new outreach
      
  negative:
    signals: ["remove me", "stop emailing", "spam", "unsubscribe"]
    action: "Immediately suppress. Reply with brief apology. Never re-add."
```

---

## Phase 7: Automation & Workflows

### Email Automation Map

```yaml
automations:
  # Acquisition
  lead_magnet_download:
    trigger: "Form submission"
    action: "Deliver asset → Start welcome sequence → Tag by lead magnet topic"
    
  webinar_registration:
    trigger: "Registration"
    action: "Confirmation → 3 reminder emails → Post-event replay + offer"
    
  # Activation
  trial_signup:
    trigger: "Account created"
    sequence:
      day_0: "Welcome + first action to take"
      day_1: "Quick win tutorial"
      day_3: "Feature highlight relevant to their use case"
      day_5: "Case study from similar company"
      day_7: "Check-in: 'How's it going?'"
      day_10: "Advanced feature + upgrade nudge"
      day_13: "Trial ending reminder + offer"
      day_14: "Last day — decision time"
    
  # Revenue
  abandoned_cart:
    trigger: "Cart created, no purchase in 1 hour"
    sequence:
      1_hour: "Forgot something? [Cart contents]"
      24_hours: "Still thinking about it? [Social proof]"
      72_hours: "Last chance + incentive (if margin allows)"
    recovery_rate_target: "5-15%"
    
  # Retention
  post_purchase:
    trigger: "Purchase completed"
    sequence:
      immediate: "Order confirmation + onboarding"
      day_3: "Setup tips + quick win"
      day_14: "Check-in + feature discovery"
      day_30: "Usage milestone celebration"
      day_60: "Case study request or testimonial ask"
      day_90: "Upsell/cross-sell relevant product"
    
  # Win-back
  churn_risk:
    trigger: "No login in 14 days (SaaS) or no purchase in 60 days (ecomm)"
    sequence:
      day_0: "We miss you — here's what's new"
      day_7: "Special offer to come back"
      day_14: "Cancellation survey + last offer"
    
  # Expansion
  nps_follow_up:
    trigger: "NPS score submitted"
    action:
      promoter_9_10: "Ask for review/referral + referral incentive"
      passive_7_8: "Ask what would make it a 10"
      detractor_0_6: "Personal outreach from CS + escalation"
```

### Send Time Optimization

```yaml
send_time_strategy:
  b2b:
    best: "Tuesday-Thursday, 9:00-11:00 AM recipient timezone"
    good: "Monday 10AM, Friday 9AM"
    avoid: "Friday afternoon, weekends, holidays"
    
  b2c:
    best: "Saturday 10AM, Sunday 6PM, Tuesday 8PM"
    good: "Weekday evenings 6-9PM"
    avoid: "Weekday mornings (competing with work email)"
    
  cold_outreach:
    best: "Tuesday-Thursday, 7:00-8:00 AM (before inbox floods)"
    good: "Monday 7AM, Thursday 4PM"
    avoid: "Weekends, lunch hour, Friday PM"
    
  advanced:
    - "Use ESP's send-time optimization if available"
    - "Test YOUR audience — benchmarks are averages, not your data"
    - "Consider timezone — segment by geography for large lists"
    - "Account for industry patterns (retail ≠ enterprise ≠ healthcare)"
```

---

## Phase 8: Analytics & Revenue Attribution

### Email Marketing Dashboard

Track weekly:

```yaml
dashboard:
  growth:
    list_size: 0
    new_subscribers_this_week: 0
    unsubscribes_this_week: 0
    net_growth_rate: "0%"
    
  engagement:
    avg_open_rate: "0%"
    avg_click_rate: "0%"
    avg_reply_rate: "0%"
    click_to_open_rate: "0%"  # clicks / opens — measures content quality
    
  health:
    bounce_rate: "0%"
    spam_complaint_rate: "0%"
    list_churn_rate: "0%"  # (unsubs + bounces + complaints) / list size
    deliverability_rate: "0%"
    
  revenue:
    email_attributed_revenue: "$0"
    revenue_per_subscriber: "$0"
    revenue_per_email_sent: "$0"
    conversion_rate: "0%"
    
  cold_outreach:
    emails_sent: 0
    open_rate: "0%"
    reply_rate: "0%"
    positive_reply_rate: "0%"
    meetings_booked: 0
    pipeline_generated: "$0"
```

### Revenue Attribution Model

```yaml
attribution:
  last_touch:
    description: "Credit to last email before conversion"
    use_when: "Simple tracking, small list, direct sales"
    
  first_touch:
    description: "Credit to email that acquired the subscriber"
    use_when: "Measuring list-building ROI"
    
  linear:
    description: "Equal credit to all emails in journey"
    use_when: "Understanding full funnel contribution"
    
  time_decay:
    description: "More credit to emails closer to conversion"
    use_when: "Mature program with long sales cycles"
    
  calculation: |
    Email ROI = (Revenue attributed to email - Email costs) / Email costs × 100
    
    Email costs include:
    - ESP subscription
    - Email verification tools
    - Content creation time (hourly rate × hours)
    - Design/template costs
    
    Industry benchmark: $36-42 return per $1 spent
    Healthy program: > $20 per $1
    Needs work: < $10 per $1
```

### Weekly Review Template

```
## Email Marketing Weekly Review — [Date]

### Growth
- List size: [N] ([+/-X] from last week, [Y%] growth)
- Top acquisition source: [source] ([N] new subs)
- Churn: [N] unsubscribes + [N] bounces = [X%] churn rate

### Campaign Performance
| Campaign | Sent | Opens | Clicks | Unsubs | Revenue |
|----------|------|-------|--------|--------|---------|
| [name]   | [N]  | [X%]  | [X%]   | [N]    | $[X]    |

### Cold Outreach
- Sent: [N] | Opens: [X%] | Replies: [N] ([X%])
- Positive replies: [N] | Meetings booked: [N]
- Pipeline generated: $[X]

### A/B Test Results
- Test: [variable] — [A] vs [B]
- Winner: [variant] by [X%] ([confidence]% confidence)
- Learning: [insight]

### Health Check
- Deliverability: [X%] | Spam rate: [X%] | Blacklists: [clean/listed]
- Domain reputation: [high/medium/low]

### Next Week
- [ ] [Action item 1]
- [ ] [Action item 2]
- [ ] [Test to run]
```

---

## Phase 9: Compliance & Legal

### Compliance Checklist by Region

```yaml
compliance:
  can_spam_us:
    - "Include physical mailing address"
    - "Clear 'From' name — no deceptive headers"
    - "Subject line must reflect content"
    - "Identify as ad if promotional"
    - "One-click unsubscribe link in every email"
    - "Honor unsubscribe within 10 business days"
    - "No harvested or purchased emails"
    penalty: "Up to $51,744 per email violation"
    
  gdpr_eu_uk:
    - "Explicit opt-in consent (no pre-checked boxes)"
    - "Record consent: who, when, what, how"
    - "Right to be forgotten — delete on request within 30 days"
    - "Data portability — export subscriber data on request"
    - "Privacy policy link accessible"
    - "Legitimate interest for B2B cold outreach (document your basis)"
    - "Data Processing Agreement with ESP"
    penalty: "Up to €20M or 4% of annual revenue"
    
  casl_canada:
    - "Express consent required (implied consent expires after 2 years)"
    - "Sender identification + physical address"
    - "Unsubscribe processed within 10 business days"
    - "Record of consent for all recipients"
    penalty: "Up to $10M per violation"
    
  cold_email_specific:
    - "Separate domain from marketing (protect main domain)"
    - "Physical address in signature"
    - "Unsubscribe mechanism in every email"
    - "Legitimate business reason for contact"
    - "No misleading subject lines"
    - "Respect 'do not contact' requests permanently"
```

---

## Edge Cases & Advanced Patterns

### Multi-Language Email
- Segment by language preference, never auto-translate and send
- Subject lines don't translate well — write natively for each language
- Cultural norms vary: formality, humor, directness, imagery
- Compliance differs by country — check local laws

### Email + SMS Integration
- Email for content/education, SMS for time-sensitive alerts
- Never send same message on both channels simultaneously
- SMS opt-in is separate from email — don't assume permission
- Use email for story, SMS for action trigger

### B2B vs B2C Differences
- B2B: longer sequences, more education, weekday sends, case studies
- B2C: shorter, emotional, weekend-friendly, social proof, urgency
- B2B: decision involves multiple stakeholders — forward-friendly content
- B2C: decision is individual — focus on desire and urgency

### Large List Migration
- Moving ESPs? Export everything: subscribers, tags, engagement history
- Re-warm from the new ESP — don't blast full list on day 1
- Start with most engaged segment, scale up over 2-4 weeks
- Update DNS records before first send from new platform

### High-Volume Sending (50K+ per campaign)
- Dedicated IP required (shared IP risk increases)
- Throttle sends: 1000-2000/hour to avoid triggering filters
- Monitor seed list inbox placement across providers
- Separate IPs for transactional vs marketing email

---

## Natural Language Commands

```
"Set up email authentication for [domain]" → Generate DNS records
"Build a welcome sequence for [business/product]" → 7-email sequence
"Write a cold email for [prospect] at [company]" → Research + personalized email
"Score this subject line: [text]" → Subject line rubric evaluation
"Review this email for quality" → Email copy scoring rubric
"Create a lead magnet for [topic/audience]" → Lead magnet framework
"Audit my email list health" → List hygiene checklist
"Build an abandoned cart sequence" → 3-email recovery flow
"Plan my A/B test for [campaign]" → Testing protocol
"Generate my weekly email report" → Dashboard template
"Check compliance for [region]" → Region-specific checklist
"Create a re-engagement campaign" → 3-email win-back sequence
```