email-sequence

A Claude Code skill that designs lifecycle email sequences — welcome, onboarding, nurture, re-engagement, win-back — with trigger logic, cadence, and per-email job-to-be-done.

Design lifecycle email sequences that work

Source Corey Haines
License MIT
First documented

Trigger phrases

Phrases that activate this skill when typed to Claude Code:

  • email sequence
  • drip campaign
  • welcome series
  • nurture sequence
  • lifecycle emails

What it does

email-sequence is a Claude Code skill from Corey Haines’s marketing-skills repo. It turns Claude into a lifecycle email designer who picks the right sequence shape for the job — welcome, onboarding, nurture, re-engagement, post-purchase, win-back — and writes each email with a single conversion job. The skill activates when you mention “email sequence”, “drip campaign”, “welcome series”, or “lifecycle emails”.

The output of a session is a complete sequence: trigger definition, branching logic, send cadence, subject lines per email, body copy with one CTA each, and the success metric you’ll judge each email against.

When to use it

Reach for it when:

  • You’re setting up a new sequence in Customer.io, Loops, ActiveCampaign or similar and need a real plan
  • Your existing welcome series is “thanks for signing up” and nothing else
  • You need a re-engagement sequence for cold subscribers before you cull them

When not to reach for it:

  • You need cold outbound — that’s cold-email, very different rules
  • You’re sending one-off campaign emails, not an automated sequence

Install

The skill is distributed via Corey Haines’s marketing-skills repo. Install via the repo’s recommended path — copy the email-sequence SKILL.md into your project’s .claude/skills/email-sequence/ directory, or use the repo’s plugin install if you’ve set it up.

Once installed, the skill activates on the trigger phrases above. The first time it runs, it will check for .agents/product-marketing-context.md (or .claude/product-marketing-context.md) — populating that file with your product context first dramatically improves output quality across all of Haines’s marketing skills.

What a session looks like

A typical session has three phases:

  1. Sequence shape + trigger. What event starts the sequence (signup, trial start, plan-limit-hit, 30-day-inactive)? What does success look like — activation, conversion, reactivation?
  2. Per-email design. Each email gets a single job. Email 1 might confirm value, Email 2 surface a feature, Email 3 deliver a case study, Email 4 ask for action. No “just checking in” sends.
  3. Cadence + branches. When sends fire, what happens on click vs. no-click, when to exit the sequence, when to escalate to sales or support.

The discipline that makes it work: one job per email. Sequences fail when every email tries to do five things; they win when each send has a single clean ask.

Receipts

Honest reporting on what email-sequence produces and where it has limits:

Where it works well:

  • The one-job-per-email constraint is genuinely the difference between a sequence that works and one that ships
  • Branching logic at the design stage prevents the “everyone gets every email” pattern that kills relevance
  • Re-engagement sequences are well-handled — most teams underuse them

Where it backfires:

  • ESP-specific quirks (Customer.io segments, Loops audiences) need translation; the skill writes platform-neutral
  • Without real trigger data the cadence is best-guess; tune after first run

Pattern that works: ship the welcome and onboarding sequences first. They have the clearest trigger and the highest conversion leverage; nurture and win-back are easier to design once you have onboarding data.

Source and attribution

Originally written by Corey Haines. The canonical SKILL.md and any supporting files live in the email-sequence folder of his marketing-skills repository.

License: MIT. You can install, adapt, and redistribute the skill, with attribution preserved.

This page documents the skill from a practitioner’s perspective. For the formal spec and any updates, defer to the source repo.