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:
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:
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:
- Immediately reduce volume by 75%
- Send ONLY to most engaged segment (opened in 7 days)
- Pause all cold outreach and promotional campaigns
- Review last 5 campaigns for content triggers
- Check for spam trap hits (sudden bounces from old addresses)
- 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:
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):
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:
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:
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}:
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):
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
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
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):
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
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:
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
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:
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:
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
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
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
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:
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
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
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