Email Campaigns skill for Claude Code

Lifecycle emails triggered by behavior, judged by lift. Claude designs email programs around the activation event that predicts retention. Each email gets one job, a deep-linked CTA, and an exit the moment the user converts. It writes subjects and preheaders that say what is inside, checks one-click unsubscribe and spam-rate requirements, and measures with clicks and a holdout group, because Apple Mail Privacy Protection makes open rates useless.

  • nameemail-campaigns
  • size172 lines · ≈2,100 tokens
  • files1
  • licenseMIT
  • updated

What Claude sees before loading it

This description is the only part of the skill that sits in context all the time. Claude reads it to decide when to load the full playbook below.

description: Plans and writes lifecycle and marketing email programs, covering onboarding and activation sequences, trial-to-paid, re-engagement, newsletters, and launch announcements, with segmentation and trigger logic, subject lines and preheaders, plain-spoken copy, bulk-sender compliance (one-click unsubscribe, spam-rate limits, consent), and measurement by clicks and conversions rather than opens. Use when building an onboarding drip, writing a sequence or campaign in Customer.io, Loops, Braze, Klaviyo, Mailchimp, or HubSpot, or when email engagement is falling.

Try asking

  • Design a 14-day trial onboarding sequence for our invoicing app and write every email
  • Our newsletter open rate looks great but nobody clicks. Audit the program
  • Write a win-back sequence for users who haven't logged in for 60 days

Use it when

  • Building an onboarding, trial, or re-engagement email sequence
  • Writing subject lines, preheaders, and copy for a campaign
  • Setting segmentation, triggers, frequency caps, and exit rules in an ESP
  • Email engagement or conversions are dropping

Skip it when

How to check the result

Each email has a goal event and exit condition tested on a staging user, unsubscribe headers work, and the sequence shows goal-conversion lift against a holdout.

The common mistake it prevents

Sending time-based drips with no exit on conversion, so activated users keep receiving 'get started' emails and unsubscribe.

~/.claude/skills/email-campaigns/SKILL.md

--- name: email-campaigns description: Plans and writes lifecycle and marketing email programs, covering onboarding and activation sequences, trial-to-paid, re-engagement,… license: MIT ---

A good email program sends each person the next message that moves them toward value, triggered by what they did (or did not do), and stops when they convert. Done well means every email has one job, a measurable goal event, an exit condition, and a holdout or baseline that proves the sequence beats sending nothing.

Ground rules

  • Behavior-triggered beats calendar-blasted. Start sequences from events (signed up, created first project, invited teammate, trial day N without activation).
  • One email, one call to action. The CTA links to the exact place in the product where the action happens (deep link), not the home page.
  • Every sequence has an exit: reaching the goal event removes the person immediately. Nothing erodes trust faster than “get started” emails after someone already did.
  • Measure clicks and goal conversions. Apple Mail Privacy Protection pre-fetches images, so open rates are inflated and unreliable for decisions.
  • Marketing email requires consent appropriate to the jurisdiction (GDPR/ePrivacy, CASL opt-in; CAN-SPAM opt-out with physical address). Transactional emails (receipts, password resets) must not carry promotional content to dodge consent.
  • Never import purchased or scraped lists. Never send to contacts who did not opt in.

Workflow

- [ ] 1. Define the goal event and the activation path
- [ ] 2. Map segments and triggers
- [ ] 3. Design the sequence (timing, branching, exits)
- [ ] 4. Write each email
- [ ] 5. Check compliance and deliverability prerequisites
- [ ] 6. QA (rendering, links, personalization fallbacks)
- [ ] 7. Launch with a holdout and measure

1. Goal event and activation path

Name the single event that predicts retention (the “aha” action): e.g. project_created with ≥ 1 teammate invited, first_invoice_sent, integration_connected. If unknown, compare retained vs. churned cohorts in product analytics. The onboarding sequence exists to get users to that event; each email removes one blocker on the path.

2. Segments and triggers

Segment dimensionExample use
Lifecycle stagelead, trial, active, at-risk, churned
Activation progressdone step 1 but not step 2
Role / use case (from signup survey)different examples for founders vs. engineers
Plan and billingtrial ending, payment failed, upgrade-eligible
Engagementclicked in last 90 days vs. not (sunset policy)

Triggers must come from reliable events sent by your backend or analytics pipeline, with the properties needed for personalization (first_name, workspace_name, plan).

3. Sequence design

Onboarding default (adjust to the product’s time-to-value):

SendConditionJob
Immediatelysigned upWelcome: one first step, link straight to it
+1 daygoal step 1 not doneRemove the top blocker (how-to, template, 2-min video)
+3 daysstep 1 done, step 2 notNext step, framed by the outcome
+5 daysnot activatedSocial proof: how a similar customer got value
+7 daysnot activatedPersonal note from founder/CSM asking what is blocking them (reply-to monitored)
Trial end −3 daystrial, not paidWhat they keep by upgrading, using their own usage data
Trial endtrial, not paidClear deadline, offer if any

Rules: exit on goal event; suppress marketing campaigns while someone is in onboarding; global frequency cap (e.g. ≤ 1 marketing email/day, ≤ 3/week per person); quiet hours in the recipient’s timezone.

Re-engagement: after 60–90 days with no clicks, send 2–3 win-back emails, then suppress non-engagers from marketing sends (sunset). Mailing unengaged contacts hurts inbox placement for everyone.

4. Write each email

  • Subject (≤ ~45 characters, front-load the point): specific and honest; the reader should know what is inside. Avoid ALL CAPS, “Re:”/“Fwd:” tricks, and excessive punctuation.
  • Preheader (40–90 chars): completes the subject; never leave it defaulting to “View in browser”.
  • From name: a person at the company for lifecycle mail (“Maya from Acme”), the brand for newsletters. Keep it consistent.
  • Body: 50–150 words for lifecycle emails. Open with the reader’s situation, give one reason and one action, close with the CTA. Plain-text style often outperforms heavy templates for onboarding.
  • CTA: one button, verb + outcome (“Connect your bank”), repeated as a text link for clients that block images.
  • Personalization: always define fallbacks ({{ first_name | default: "there" }} in Liquid-based tools); test with empty values.
  • Accessibility: real text not images, alt text on images, ≥ 14 px body text, link text that makes sense out of context, dark-mode-safe colors.

Subject line variants to offer: direct benefit, curiosity grounded in a specific detail, personal/question, number-led. Pick one to send and one to test if volume allows.

5. Compliance and deliverability prerequisites

Since 2024, Gmail and Yahoo require bulk senders (≈ 5,000+ messages/day to their users), and Microsoft consumer mailboxes require high-volume senders, to meet:

  • SPF and DKIM pass, and DMARC published (at least p=none) with the From domain aligned to SPF or DKIM.
  • One-click unsubscribe for marketing mail: List-Unsubscribe header with an HTTPS URL plus List-Unsubscribe-Post: List-Unsubscribe=One-Click (RFC 8058); honor within 2 days. Also a visible unsubscribe link in the body.
  • Spam complaint rate in Google Postmaster Tools below 0.3%; aim for < 0.1%.
  • Valid forward and reverse DNS on sending IPs (handled by your ESP on shared IPs).
  • Send marketing from a subdomain (e.g. news.example.com) so its reputation is isolated from transactional mail.
  • Double opt-in for signups from open web forms; preference center for frequency/topics.

DNS setup and bounce handling belong to the sending infrastructure; use the transactional-email skill for SPF/DKIM/DMARC records and webhook processing.

6. QA

  • Render test in Gmail (web, iOS, Android), Apple Mail, and Outlook (desktop and web) via the ESP’s preview or a rendering service; check dark mode.
  • Click every link; confirm UTM parameters (utm_source=email&utm_medium=lifecycle&utm_campaign=onboarding_d3) and deep links resolve for logged-out users.
  • Send test with empty personalization fields.
  • Verify entry/exit conditions on a test user by firing the trigger events in staging.
  • Confirm the unsubscribe link and header work and update the ESP suppression list.

7. Launch and measure

  • Hold out 5–10% of eligible users from the sequence (where the tool supports it) to measure lift in the goal event, not just engagement.
  • Primary metric: goal-event conversion within N days of entry vs. holdout.
  • Secondary: click-through rate (clicks / delivered), unsubscribe rate (< 0.5% per send is typical; investigate above), complaint rate (< 0.1%), bounce rate (< 2%).
  • Review per-email drop-off: an email with low clicks and no lift is a candidate to cut, not just rewrite.

Gotchas

  • Open-rate-based A/B winners and “engaged” segments built on opens are polluted by Apple MPP. Use clicks or product events.
  • Sending a launch announcement to the whole list, including people who have not engaged in a year, spikes complaints and can push mail to spam for months.
  • Time-based delays without behavior checks send irrelevant mail; recheck conditions at send time, not at entry.
  • Link shorteners and mismatched link domains look like phishing; use your own tracked domain configured in the ESP.
  • Images-only emails get clipped or filtered; Gmail clips messages over ~102 KB of HTML.

Output: sequence spec

## Sequence: Trial onboarding (goal: `invoice_sent` within 14 days)
Entry: `trial_started` · Exit: `invoice_sent` OR `subscription_created` · Holdout: 10%
Frequency cap: 1/day · Quiet hours: 20:00–08:00 local

| # | Delay | Condition at send | Subject | Preheader | CTA → deep link | Goal of email |
|---|---|---|---|---|---|---|
| 1 | 0 | — | Send your first invoice in 2 minutes | Your workspace is ready, here's the fastest path | Create invoice → /invoices/new | Start step 1 |

### Email 1 copy
From: Maya from Acme · Reply-to: [email protected]
<body copy>

Metrics: goal conversion vs holdout, CTR per email, unsubscribes, complaints.

About this skill

Written and maintained by the Claude Skills editors to the same editorial standard as every skill in the directory: a selective trigger, a real workflow, known pitfalls and a verification step. First published , last updated . MIT licensed.

esc