Imported from Deepak-ai-93/deepak-skill (
skills/email-marketing/SKILL.md). Install upstream withnpx skills add Deepak-ai-93/deepak-skill --skill email-marketing. Copyright stays with the author.
name: email-marketing description: Design high-converting, spam-free HTML marketing emails for Brevo, MailerLite, Mailchimp, Klaviyo and any ESP — bulletproof responsive code, anti-fluff copywriting, E-E-A-T trust signals (experience, expertise, authority, trustworthiness), high-CTR subject lines, and AI-first optimization (AI is the new first reader). Includes lifecycle automation sequences (welcome, onboarding, abandoned cart, re-engagement), deliverability as strategy (SPF/DKIM/DMARC/BIMI, one-click unsubscribe), privacy-proofing (zero-party data), and productivity features (AI-assisted workflows, faster production). Audit harness: audit-email.mjs (wraps validate-email.mjs + blocklist → email-audit.md) + fresh email-auditor subagent scoring /50.
skill: email-marketing
Name: Email Marketing Design + Copywriting (Brevo / MailerLite / any ESP) Description: Turns a campaign goal into a send-ready HTML email that clears four rails at once: great copy (hooks, benefits, one CTA), spam-free deliverability (no trigger words, healthy text ratio, full compliance), E-E-A-T targeting (real experience, expertise, authority and trust signals baked into the content), and AI-first optimization (emails readable by both humans and AI models that filter/summarize/rank before subscribers see them). Ships a subject line pack (high-CTR formulas, A/B variants), a bulletproof responsive HTML email, a plain-text version, a validation report, and lifecycle automation guidance — all in one folder, ready to paste into Brevo / MailerLite / Mailchimp / Klaviyo.
What changed in email marketing (2026)
| Shift | What it means |
|---|---|
| AI is the new first reader | Gmail, Apple Mail, Outlook use AI to filter, summarize, prioritize, and surface your email before subscribers see it. Subject lines, preview text, and content structure must make sense to a model AND a human. |
| Open rates are dead | Apple MPP pre-fetch inflates opens; bot opens add noise. CTR, conversion rate, complaint rate, and revenue per recipient tell the real story. |
| Deliverability is strategy | Gmail/Yahoo/Microsoft bulk sender rules: SPF/DKIM/DMARC, one-click unsubscribe, < 0.1% spam complaints. Authentication isn't optional — it's the foundation. |
| Privacy-proofing matters | Third-party cookies gone. Open tracking less reliable. Zero-party data (preference centers, polls, double opt-in) is your most valuable asset. |
| Lifecycle > campaigns | Behavior-triggered automations (welcome, onboarding, abandoned cart, re-engagement) outperform broadcast blasts. Fewer, better-timed, more relevant messages to smaller segments. |
| Production got faster | Teams that used to take 2+ weeks to produce one email now do it in under a week. GenAI handles copywriting, segmentation, testing, and image generation. |
The quality bar (non-negotiable — read before anything else)
Every email must clear all five rails. If any fails, rewrite / regenerate it.
| Rail | Rule |
|---|---|
| AI-first readability | The email must be readable by both humans AND AI models. Structure: clear subject → preheader that extends the hook → headline → benefit bullets → CTA → footer. No clever-but-unclear subject lines. Image-only emails are riskier — AI can't summarize what it can't read. Body copy should be structured for AI extraction: clear sections, numbered benefits, scannable. |
| Spam-free deliverability | No spam-trigger words in subject or body, no ALL-CAPS sentences, no !!! or ???, healthy text:image ratio (≥ 50% text), alt text on every image, List-Unsubscribe + visible unsubscribe link, physical postal address in footer, plain-text version included, no JavaScript/forms/flash, minimal links (1–3 core), no deceptive subject/body mismatch. Gmail + Yahoo + Outlook bulk rules: SPF/DKIM/DMARC at p=quarantine or p=reject, < 0.1% spam complaints (ideally < 0.05%), one-click unsubscribe via List-Unsubscribe header, BIMI with verified logo. |
| E-E-A-T in the content | The email reads like it came from a real, qualified person — Experience (firsthand use/story/screenshots), Expertise (author name + credentials, accurate claims), Authoritativeness (named sources, links to proof, real metrics), Trustworthiness (real sender, testimonials, physical address, easy unsubscribe). Never anonymous-brand-fluff. |
| Copy that converts | Hook first, benefit-led, specific beats generic, one idea per section, one CTA per email. If the copy could describe any brand, rewrite it. |
| Subject line → high CTR | 33–50 chars, front-loaded with the hook, specific + benefit or curiosity, no ALL-CAPS, no spam words, accurate to the body (no clickbait mismatch), A/B variants provided. Preheader (40–90 chars) extends the hook — never repeats the subject. |
Deliverable contract — one folder, five files:
subject-lines.md— 3–5 high-CTR subject lines (winner marked) + rationale + A/B planemail.html— bulletproof responsive HTML (table-based, inline CSS, dark-mode aware, 600px)plain.txt— plain-text fallback version (helps spam filters + accessibility + AI parsing)validation-report.md— output ofvalidate-email.mjs(spam scan + compliance + EEAT + deliverability)preview/— desktop + mobile screenshots frompreview-email.mjs(visual audit)
Optional deliverables:
6. lifecycle-flow.md — automation sequence map (welcome / onboarding / abandoned cart / re-engagement)
7. personalization-map.md — ESP-specific merge-tag mapping for all placeholders
Deliverability as strategy (the 2026 foundation)
Deliverability isn't a technical afterthought — it's the strategic prerequisite. The best email in the world loses if DMARC isn't set up.
Authentication checklist (every send)
- SPF record published and aligned
- DKIM signing on all outgoing mail
- DMARC at p=quarantine or p=reject (not p=none)
- List-Unsubscribe header (mailto + HTTPS) on all marketing mail
- BIMI record published with verified logo (lifts open rates + brand trust)
- Hard bounces suppressed automatically
- Inactive subscribers (180+ days) sunset or re-engaged
- Spam complaint rate under 0.10% (ideally < 0.05%)
- Transactional and marketing on separate sending domains
- Postmaster Tools and reputation monitoring active
One-click unsubscribe (mandatory)
Gmail, Yahoo, and Microsoft require one-click unsubscribe via the List-Unsubscribe header within 2 days. Counterintuitively, easier unsubscribes lead to lower spam complaints — the people who want to leave help you when they leave. The ones who stay because they couldn't find the unsubscribe button are the ones marking you as spam.
List quality
A clean list outperforms a big list, every time:
- Suppress hard bounces immediately
- Prune subscribers with no engagement in 90–180 days
- Never use purchased/scraped lists
- Watch bounce rate by sending domain and segment
- Use double opt-in for new subscribers
Lifecycle automation sequences
Lifecycle automations consistently outperform broadcast campaigns because they're triggered by behavior, not a content calendar. These five flows can deliver more revenue than every promotional broadcast.
Welcome series (3–5 emails over 2 weeks)
| Timing | Content | CTA | |
|---|---|---|---|
| 1. Welcome + deliver | Immediate | Deliver what they signed up for + set expectations | Download / access |
| 2. Quick win | Day 2 | The fastest value they can get from you | Try it |
| 3. Social proof | Day 5 | Testimonial / case study / metric | See example |
| 4. Go deeper | Day 8 | The thing most people miss | Learn more |
| 5. Soft pitch | Day 12 | Your offer, tied to what they've already done | Start / buy |
Onboarding (SaaS — first 30 days)
| Timing | Content | CTA | |
|---|---|---|---|
| 1. Welcome + setup | Day 0 | Account setup walkthrough, 1 thing to do now | Complete setup |
| 2. First value | Day 1 | The feature that shows immediate ROI | Try feature |
| 3. Tips + tricks | Day 3 | 3 things power users do differently | Explore |
| 4. Case study | Day 7 | How [similar company] uses the product | See story |
| 5. Check-in | Day 14 | How's it going? Anything stuck? | Reply / book call |
| 6. Advanced | Day 21 | The feature they haven't tried yet | Unlock |
| 7. Convert (trial→paid) | Day 28 | Your trial ends in 2 days — here's what you'd lose | Upgrade |
Abandoned cart / abandoned browse (ecommerce)
| Timing | Content | CTA | |
|---|---|---|---|
| 1. Reminder | 1 hour | You left something behind — here's what it looks like | Complete purchase |
| 2. Social proof | 24 hours | "1,247 people bought this last month" + review | See reviews |
| 3. Final nudge | 72 hours | Last chance + genuine incentive (if margin allows) | Get it now |
Re-engagement (60–90 days inactive)
| Timing | Content | CTA | |
|---|---|---|---|
| 1. We miss you | Day 0 | "You haven't opened in a while — still want in?" | Yes, keep me |
| 2. What's new | Day 3 | What they missed + the best thing you published | Catch up |
| 3. Last chance | Day 7 | "We'll remove you from the list unless you click" | Stay subscribed |
Privacy-proofing (2026)
With Apple MPP inflating open rates and third-party cookies gone, owned data is your most valuable asset:
- Zero-party data — collect explicit consent via preference centers, live polls, double opt-in
- First-party behavioral data — clicks, conversions, site behavior (not open tracking)
- BIMI — verified logo in inbox, builds trust + lifts open rates
- Remove PII when possible — use subscriber ID instead of personal info in data stores
- Disclose AI use — if you use AI for personalization, mention it in privacy policy or footer
- Offer opt-out for AI features — let subscribers manage AI-driven personalization preferences
AI-first email optimization
AI is now the first reader of your email. Optimize for both humans AND models:
- Clear subject lines — AI can summarize what it can read. No clever-but-unclear hooks.
- Structured body copy — numbered benefits, clear sections, scannable layout. AI lifts these for summaries.
- Plain-text version — helps AI parse the email content for ranking and summarization.
- Alt text on images — AI can't see images; alt text is your visual content's metadata.
- Preheader that extends the hook — AI uses subject + preheader to decide prioritization.
- Avoid image-only emails — AI can't summarize what it can't read. Text always beats images for AI readability.
Storytelling + addiction rails (the universal contract)
Every email must tell ONE micro-story and engineer action. The story spine:
| Beat | Rule |
|---|---|
| Open loop (hook) | First 2 lines earn the read — a real pain, a real stat, a specific promise. No "We hope this email finds you well." |
| Rising tension | Benefits escalate: new stake, new proof, new layer. Each bullet raises the value. |
| Payoff | The CTA delivers what the hook promised. The reader clicks because the aha is clear. |
| Loop ending | One clear command. Single CTA button + one supporting link max. |
When to use
- "Write an email for our newsletter / launch / welcome flow / promo"
- "Design an HTML email for Brevo / MailerLite / Mailchimp / Klaviyo"
- "Make our emails stop landing in spam" / "improve open rates"
- "Set up a welcome sequence / onboarding flow / abandoned cart series"
- "Our emails need to work with AI-powered inboxes"
- Any campaign that needs subject lines, HTML, and copy that people actually trust
ESP compatibility notes (Brevo, MailerLite, Mailchimp, Klaviyo, HubSpot, …):
- The HTML uses tables + inline CSS only (no div layouts, no
class=-dependent styling) — the universal format every ESP accepts and every email client renders. - Personalization tags differ per ESP — keep the
{{PLACEHOLDER}}syntax in the file, and tell the user to swap for their ESP's tag (Brevo{{contact.FIRSTNAME}}, MailerLite{{first_name}}, Mailchimp*|FNAME|*, Klaviyo{{ first_name }}). List the mapping in the delivery notes. - Unsubscribe: use the ESP's global unsubscribe merge-tag in the footer link (never a hardcoded URL), and ensure the ESP adds the
List-Unsubscribeheader automatically. - Image hosting: all
src=must be absolute URLs (ESP-hosted images or your CDN).
Copywriting — the anti-fluff + anti-spam contract
Copy is the email. If a sentence could appear on any brand's blast, it's fluff — rewrite it. If it could appear on a spam filter's blocklist, it's worse — delete it.
The blocklist (never use in subject or body)
free (unless a literal genuine offer, one time) · act now · urgent · limited time · last chance · don't delay · expires · hurry · guaranteed · 100% · risk-free · no cost · make money · earn cash · double your income · $$$ · credit card · cash bonus · amazing · incredible · miracle · secret (unless literal) · shocking · life-changing · winner · click here (as link text — use descriptive anchors) · verify your account · confirm your identity · dear friend · unlock · game-changer · supercharge · level up · unleash · boost · empower · revolutionize · leverage · transform your · today's fast-paced world · deep dive · at the end of the day. ALL-CAPS words, !!!, and ??? are also blocked in the subject line.
The 8 copy rules
- Hook first. First 2 lines must earn the read (a real pain, a real stat, a specific promise). No "We hope this email finds you well."
- Specific beats generic. "Cut setup from 40 minutes to 6" beats "save time." Numbers and receipts everywhere.
- Benefits over features. "Ship updates your customers will actually see" beats "we added changelog notifications."
- One idea per paragraph, one CTA per email. Skimmable: short sentences, one idea per line, bold the payoff.
- Write like a person talks. First person, contractions, no corporate voice, no semicolon-dense sentences.
- E-E-A-T everywhere — the proof IS the copy: who you are, what you've done, where the claim comes from.
- Honest subject line. The body must immediately deliver the subject's promise — mismatch = spam complaints = reputation death.
- End with one clear command. Single CTA button + one supporting link max. "Want to see it live? → [Button]".
E-E-A-T in email — how the four pillars show up
| Pillar | In an email this looks like | Example line |
|---|---|---|
| Experience | Firsthand story, real usage, screenshots, "I did this and here's what happened" | "We ran this onboarding flow on 4,000 new signups last month — here's what the data said." |
| Expertise | Named author + credential/role, accurate specifics, no overclaiming | "— Priya Nair, Head of Product (led the redesign). Reply to this email and you get her, not a bot." |
| Authoritativeness | Named sources, linked proof, real metrics, press/partners mentioned | "Per Gartner's 2025 research on email compliance, 83% of deliverability failures trace to authentication." |
| Trustworthiness | Real sender name, testimonials, physical address, easy unsubscribe, transparent intent | "You're getting this because you joined the Beta waitlist. [Change preferences] · [Unsubscribe] — no hard feelings." |
Subject lines — the high-CTR playbook
Hard rules
- 33–50 characters (mobile cuts off ~33–40) — front-load the hook in the first 4 words.
- No ALL-CAPS, no
!!!, no spam words (blocklist above). One emoji max, only if the brand already uses them. - Accurate promise — the body pays it off in the first paragraph.
- Specific > generic: "Your onboarding is leaking users" > "Improve your onboarding".
Proven formulas (pick per campaign type, deliver 3–5 variants)
| Formula | Pattern | Example | Best for |
|---|---|---|---|
| Pain + outcome | Name the pain, promise the fix | "Your onboarding is leaking users" | SaaS, B2B |
| Curiosity gap | State the outcome, hide the how | "The email metric nobody watches (until it's late)" | Newsletters |
| Specific number | Lead with the receipt | "42% more replies with one line" | Case studies, reports |
| Question / pattern interrupt | Low-friction, personal | "quick question about your Q3 list?" | Warm follow-ups, B2B |
| Announcement | Novelty power words | "Introducing: one-click unsubscribe (for real)" | Launches, features |
| Recipient-specific | Reference their action | "Still thinking about that CRM you explored?" | Abandoned carts, lifecycle |
| Time-boxed, honest | Real deadline, no fake urgency | "Available until Feb 14" (never "last chance!!") | Promos, events |
| AI-optimized | Clear + structured for AI summarization | "3 steps to cut onboarding time by 60%" | Any (2026 best practice) |
Preheader (the second subject line)
Write a preheader that extends the hook — 40–90 chars, completes the subject's thought, includes the CTA hint ("…here's the 3-step fix."). Never repeat the subject.
HTML email engineering — the bulletproof rules
- Tables, not divs. Layout with
<table role="presentation">,<td>, inlinewidth/bgcolor/padding. - Inline styles everywhere, 600px max container, centered.
- One
<style>block for dark mode only (@media (prefers-color-scheme: dark)+<meta name="color-scheme" content="light dark">). - Web-safe fonts (Arial/Helvetica, Georgia, Courier) or a single well-supported Google Font with fallback chain.
- Every
<img>needsalt,width,height,style="display:block"— andsrcabsolute URLs. - Buttons:
border-radius+padding+background-coloron an<a>with VML fallback for Outlook. - Preheader text in the very first
<body>element (hidden div). - Footer compliance block: physical postal address · permission line · unsubscribe link (ESP merge-tag) · preferences link · sender name.
- Plain-text version always — some filters flag HTML-only.
- Test before send:
validate-email.mjs(automated) +preview-email.mjsat 600px desktop + 320px mobile.
Workflow (6 stages)
Stage 1 — Analyze the brief (ask ≤3 questions if vague)
Extract: campaign type (welcome / promo / newsletter / launch / lifecycle / transactional) · audience + segment · goal (opens / clicks / replies / sales) · ESP (Brevo / MailerLite / Mailchimp / Klaviyo — drives merge-tag syntax) · sender identity (real person name + role — required for EEAT) · offer/pain (what's the one thing they get).
Stage 2 — Plan the email (the map)
Write the block map before any copy: preheader → subject → greeting (personalized) → hook (2 lines max) → value (2–4 benefit bullets with proof) → EEAT block (author/testimonial/data) → single CTA → sign-off (real person) → footer (compliance). Decide the ONE CTA. Note the text:image ratio target (≥ 50% text) while planning visuals.
Stage 3 — Subject line pack → subject-lines.md
Write 3–5 variants from the playbook, mark the winner with rationale, add an A/B plan (one variable at a time: length vs question vs number). Check every variant against the blocklist + 33–50 char rule + preheader synergy. Ensure at least one variant is AI-optimized (clear + structured for AI summarization). Save to subject-lines.md.
Stage 4 — Write the copy (subject + preheader + body + plain.txt)
Write body copy against the anti-fluff contract and the EEAT pillars. Structure for AI readability: numbered benefits, clear sections, scannable layout. Then write plain.txt — same content, no HTML, same order, links as bare URLs (spam filters, accessibility, and AI all love it).
Stage 5 — Build email.html from the template
Start from templates/email-template.html (bulletproof base: tables, inline styles, dark-mode block, preheader, footer compliance block). Fill with the approved copy, keep {{PLACEHOLDER}} tags for personalization + merge-tags for unsubscribe. Keep the design: max 2 fonts, 1–2 accent colors, generous whitespace, one button.
Stage 6 — Validate + preview + audit (before delivery)
node scripts/validate-email.mjs --html email.html --subject "…"→validation-report.md— auto-checks spam triggers, ALL-CAPS,!!!, alt text, unsubscribe/address presence, link count, text ratio, EEAT signals, deliverability (SPF/DKIM/DMARC/BIMI guidance). Fix every FAIL and every high-priority WARN.node scripts/preview-email.mjs --html email.html→preview/desktop (600px) + mobile (320px) screenshots.- Auditor subagent (fresh context) reviews the screenshots + HTML + copy.
- Optional: lifecycle flow — if the email is part of a sequence, write
lifecycle-flow.mdwith the automation map.
Production checklist
- Brief analyzed: type / audience / goal / ESP / sender identity / one offer
- Block map written: preheader → subject → hook → value+proof → EEAT → one CTA → sign-off → footer
-
subject-lines.md: 3–5 variants, 33–50 chars, hook first, no spam words/ALL-CAPS/!!!, winner + A/B plan, at least 1 AI-optimized - Body copy: hook first, benefits over features, one idea per paragraph, one CTA, anti-fluff + anti-spam blocklist cleared, structured for AI readability
- E-E-A-T: real sender + role, one real proof (testimonial/metric/source), physical address, human reply-to
-
email.html: tables + inline styles, 600px, dark-mode block, alt text on all images, absolute URLs, preheader, bulletproof button -
plain.txtwritten (same content, bare URLs) - Footer: permission line + physical address + unsubscribe (ESP merge-tag) + preferences
-
validate-email.mjs→validation-report.md, all FAILs + high WARNs fixed -
preview-email.mjs→ desktop + mobile screenshots verified (no overflow, dark mode OK) - Auditor subagent signed off: subject, copy, EEAT, HTML, compliance, AI-readability
- Delivered:
subject-lines.md+email.html+plain.txt+validation-report.md+preview/+ ESP merge-tag mapping note - Optional:
lifecycle-flow.md(if part of a sequence) +personalization-map.md