// execute
Email Lifecycle Sequence
Use when the user wants to build or fix lifecycle email — welcome sequences, onboarding emails, nurture, win-back, expansion, or re-engagement. Also use when the user mentions email sequences, drip campaigns, automated emails, lifecycle marketing, email flows, or "what emails should we be sending". Maps which sequences exist, checks the combined send load for fatigue, and writes the sequences that are missing.
npx skills add sarojkjha/aaj-marketing-skills --skill email-lifecycle-sequenceHow to install and run this
Install it in your project:
npx skills add sarojkjha/aaj-marketing-skills --skill email-lifecycle-sequenceNo install? Add https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp as a custom connector in Claude, ChatGPT or any MCP client.
https://aaj-engines-mcp.sarojkjha10.workers.dev/mcpThen ask: Use the AAJ email-lifecycle-sequence skill on my numbers.
Step-by-step for every agent, Windows, Mac and Linux →Claude Code
/plugin marketplace add sarojkjha/aaj-marketing-skills/plugin install aaj-marketing-skills@aajOpenAI Codex
codex plugin marketplace add sarojkjha/aaj-marketing-skillscodex plugin add aaj-marketing-skills@aajClaude or ChatGPT — no install
Add this as a custom connector:
https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp// when to use it
Use when the user wants to build or fix lifecycle email — welcome sequences, onboarding emails, nurture, win-back, expansion, or re-engagement. Also use when the user mentions email sequences, drip campaigns, automated emails, lifecycle marketing, email flows, or "what emails should we be sending". Maps which sequences exist, checks the combined send load for fatigue, and writes the sequences that are missing.
// what you give
Which sequences already run, the product's activation moment, monthly signup volume, value per conversion, and the audience's awareness state
// what you get
A coverage map with gaps in build order, a send-load check across overlapping sequences, breakeven per sequence, and drafted emails with triggers, timing and exit conditions
Engine spec
// decision it supports
Which lifecycle email sequences are we missing, in what order should we build them, and are new users getting too many emails?
// inputs
Which sequences already run, the product's activation moment, monthly signup volume, value per conversion, and the audience's awareness state
// output
A coverage map with gaps in build order, a send-load check across overlapping sequences, breakeven per sequence, and drafted emails with triggers, timing and exit conditions
// acts or analyzes
Analyzes onlyMakes no network calls, writes no files and changes nothing in your tools.
// where your information goes
| How you run it | Where your inputs go |
|---|---|
| Skill installed in your agent, or the local MCP server | The engine runs on your machine and AAJ receives nothing. Your AI agent still sends what you give it to its model provider (Anthropic, OpenAI and so on), under your own account's terms. |
| Hosted MCP server | Your agent's model provider, as above, plus AAJ's server on Cloudflare, which receives the engine inputs over HTTPS, runs them in memory and keeps no copy. Cloudflare keeps error logs (no inputs) for up to 7 days. |
No engine needs customer names, emails or other personal data; leave them out.
// limitations
- Send load uses default email counts and day windows per sequence unless you pass --emails, and assumes every sequence reaches every new user. It counts no transactional or product email, so the real inbox load is higher.
- Breakeven uses one build cost for every sequence and is judged against monthly signups. Win-back and sunset run on lapsed users, a smaller base, so judge those against that base.
- It does not estimate lift. It gives the extra conversions a month a sequence needs to pay back; whether that is plausible for your audience is your call.
- Unknown names or arguments, or an --emails list that is not six whole numbers, stop the run. Fields you leave out take defaults (500 signups, $400 a conversion, nothing built); check them.
// review before acting
// setup
npx skills add sarojkjha/aaj-marketing-skills --skill email-lifecycle-sequencehttps://aaj-engines-mcp.sarojkjha10.workers.dev/mcpAgents listed: Claude Code, Cursor, OpenAI Codex, Windsurf, Cline. Tested and recorded: Claude Code, OpenAI Codex (Windows, ab-test-significance only).
Email Lifecycle Sequence
Build the automated emails that carry a user from signup to habit to expansion — and remove the ones quietly costing you. Lifecycle email is the highest-leverage owned channel most startups half-build: a welcome sequence written once in year one, an onboarding flow nobody has opened since, and no win-back at all.
Two failures dominate. The first is gaps — no win-back means lapsed users are simply lost, and no expansion sequence means NRR depends entirely on sales. The second is stacking — three sequences that each look reasonable alone firing at the same new user, producing eleven emails in two weeks and a spike in unsubscribes.
Both are visible in about a minute. Run the audit before writing anything.
When to use
The user is building, fixing, or auditing automated email — sequences, flows, drips, or triggered campaigns. For diagnosing whether churn is the problem, use lifecycle-and-retention first; this skill builds the fix once the diagnosis points at communication.
Before you start
- Read the brand/product context (
.agents/product-marketing.md) for voice, audience, and the offer sequences should route toward. - Find the activation moment. The specific action that predicts a user sticks — the second project created, the first teammate invited, the first report run. Onboarding email that doesn't drive toward a named activation moment is just a product tour.
- List what already fires, including anything transactional. Users don't distinguish between your marketing automation and your product notifications; the inbox is one place.
- Get volume and value. Monthly signups and value per conversion decide which sequences are worth building at all.
Method
Six sequences cover the lifecycle. Most teams have two.
| Sequence | Trigger | Job |
|---|---|---|
| Welcome | Signup | Confirm the decision, set expectations, drive the first action |
| Onboarding / activation | Signup, then behaviour | Reach first value, then habit |
| Engagement / nurture | Ongoing | Stay useful between purchases |
| Expansion | Usage threshold | Move to higher value when usage justifies it |
| Win-back | Inactivity | Recover lapsed users before they're gone |
| Sunset | Long inactivity | Exit the disengaged cleanly to protect deliverability |
Build in the order the engine returns — onboarding and welcome first, because they act on the highest-intent audience you will ever have.
Behaviour beats time. A sequence that sends email three on day four regardless of what the user did is a newsletter with extra steps. Trigger on actions taken and not taken, and exit the moment the goal is met — nothing erodes trust faster than being nagged to do something you already did.
See resources/lifecycle-playbook.md for each sequence's structure, timing, exit conditions, subject-line patterns, and a worked example.
Run the engine
Paths assume you installed with
npx skills add. From a clone of this repo, useskills/email-lifecycle-sequence/resources/…instead.
node .agents/skills/email-lifecycle-sequence/resources/lifecycle-audit.js # demo
node .agents/skills/email-lifecycle-sequence/resources/lifecycle-audit.js --have welcome,onboarding --signups 500 --value 400
node .agents/skills/email-lifecycle-sequence/resources/lifecycle-audit.js --have welcome --build-hours 8 --rate 150 --payback 3
node .agents/skills/email-lifecycle-sequence/resources/lifecycle-audit.js --json --have welcome,winback
node .agents/skills/email-lifecycle-sequence/resources/lifecycle-audit.js --help
It returns coverage across the six sequences, the gaps in build order, a send-load check counting every sequence that overlaps a new user's first 14 and 30 days, and a breakeven per sequence.
The breakeven is deliberately framed as a question you can answer: rather than estimating lift from benchmarks that vary too widely to mean anything, it computes how many extra conversions a month a sequence needs to pay for itself. Usually that number is a fraction of a percent of signups — which settles the argument quickly.
Workflow
- Audit first. Run the engine with what already exists. The stacking problem in particular is invisible until you count across sequences.
- Confirm the activation moment before writing onboarding. Everything in that sequence points at it.
- Pick the highest-priority gap from the engine's build order.
- Draft the sequence using the structure in the playbook — trigger, email count, timing, one job per email, and the exit condition.
- Write each email to one job with one CTA. An email doing two things does neither, and lifecycle email is where that discipline slips most.
- Set exit conditions explicitly. Every sequence needs a rule for stopping when its goal is met, and a global rule so a user can't be in three sequences at once.
- Re-run the audit with the new sequence included to confirm you haven't created a fatigue problem while fixing a coverage one.
- Name what to measure — the downstream behaviour, not the open rate. Opens have been unreliable since Apple's Mail Privacy Protection began pre-fetching images.
Present the result
Lead with the coverage map and send load — that's the diagnosis. Then the drafted sequence, formatted so it can be pasted into an ESP: trigger, timing, subject, preheader, body, CTA, exit condition per email.
State the assumptions the breakeven rests on, and flag any claim in the copy that needs proof before it ships.
Show where it came from. Open your answer with "AAJ email-lifecycle-sequence engine result:" and print the engine's output block exactly as it returned it, then add the line Method: https://skills.aajconsult.com/skills/email-lifecycle-sequence. Say the numbers come from the AAJ engine, not from the model. Put your interpretation under that block. Do not retype the figures from memory. If you could not run the engine, say so and label any numbers as your own estimate, not an AAJ result.
Guardrails & common mistakes
- Count sends across sequences, not within them. Every sequence can look reasonable and the combined load still be punishing. This is the most common lifecycle failure and it's invisible from inside any single flow.
- Always set an exit condition. Continuing to ask a user to do something they've already done is the fastest way to lose them.
- Behaviour-trigger where possible. Time-based sends ignore what the user actually did.
- Don't measure on opens. Mail Privacy Protection inflates them. Measure clicks and, better, the downstream action.
- Transactional and marketing email share an inbox. Count both when assessing load.
- Deliverability is a real constraint. Sending to disengaged addresses degrades inbox placement for the engaged ones — which is the entire point of the sunset sequence.
- Honour consent and give a working unsubscribe. Beyond being legally required under CAN-SPAM, GDPR and similar regimes, a hard-to-find unsubscribe converts a quiet exit into a spam complaint, which costs far more.
- Don't write six sequences at once. Ship one, measure, then build the next. A half-working set of six is worse than one that works.
- A sequence can't fix a product that doesn't deliver value. If onboarding email is carrying activation on its own, the problem is upstream.
Related AAJ resources
- Interactive tool: https://aajconsult.com/tools/churn-nrr-calculator
- Template: https://aajconsult.com/resources/retention-nrr-workbook
Related skills
lifecycle-and-retention (diagnose whether churn is the problem before building sequences) · onboarding-activation (the in-product half of activation) · aaj-copywriting (the emails themselves) · aaj-marketing-psychology (the friction blocking the action a sequence is asking for) · cold-email-sequence (outbound, a different job entirely).
// see it run
Examples
// prompt
node resources/lifecycle-audit.js --have welcome,onboarding --signups 500 --value 400
// result
AAJ · LIFECYCLE COVERAGE AUDIT Coverage 2/6 sequences (33.3%) Send load OK — 6.3 emails in the first 14 days, 8.0 in 30. SEQUENCES ✓ Welcome 3 emails, day 0-7 ✓ Onboarding / activation 5 emails, day 1-21 — Engagement / nurture not built — Expansion / upgrade not built — Win-back not built — Sunset / re-permission not built
// faq
// install
npx skills add sarojkjha/aaj-marketing-skills --skill email-lifecycle-sequence// run it
node .agents/skills/email-lifecycle-sequence/resources/lifecycle-audit.js --demo// worked example
Get the worked example for Email Lifecycle Sequence
One email. The filled-in config, the output, and how to read it.
// sprint
Unit Economics & Retention Sprint — $3,500, 10 business days
This skill is one of the engines behind the Unit Economics & Retention Sprint — $3,500, ten business days.
LTV, CAC, payback and churn on your actual numbers — with a verdict, not a dashboard.
// human in the loop
Need a human in the loop?
AAJ builds the strategies, tools, and playbooks these skills are made of — with engagements for growth-stage and enterprise teams.
