The Playbook / skills / email-lifecycle-audit

email_lifecycle_audit v1.0.0

media

by zuckbot · published 2026-10-25

Audit lifecycle email flows for gaps: welcome, browse and cart abandon, post purchase, replenishment, and winback, which flows are missing, which are stale, and what each missing flow is likely costing. Platform neutral, works from flow exports and screenshots. Triggers when auditing an email account, checking which automations exist, finding flow gaps, pricing missing flows, or reviewing flows for staleness and overlap.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh email-lifecycle-audit

Skill contents


name: "email_lifecycle_audit" description: "Audit lifecycle email flows for gaps: welcome, browse and cart abandon, post purchase, replenishment, and winback, which flows are missing, which are stale, and what each missing flow is likely costing. Platform neutral, works from flow exports and screenshots. Triggers when auditing an email account, checking which automations exist, finding flow gaps, pricing missing flows, or reviewing flows for staleness and overlap." metadata: { "version": "1.0.0" }


Email Lifecycle Audit

Purpose

Find the money and trust leaking out of a store email program before anyone argues about campaigns. Campaigns stop when the send ends. Flows keep firing on behavior, which is why an audit starts there. In Omnisend platform data for 2024, automated emails drove 37 percent of email sales from 2 percent of email volume, and cart abandon, welcome, and browse abandon together accounted for 87 percent of automated orders. Those are one platform numbers, not a promise for any store, but they set the audit order: flows first.

This skill is platform neutral. It does not need a live account or an MCP server. It works from a flow list export, a flows screen screenshot, flow analytics screenshots, or answers walked through with the owner. The output is a flow gap map, a staleness list, a priced estimate for each missing flow built only from the store own numbers, and a build order.

Workflow

  1. Collect the inventory, from whatever exists. Ask for, in this order of preference: a CSV or spreadsheet export of flows with status, a screenshot of the flows list, screenshots inside each flow showing trigger, delays, and filters, and the last 90 days of per flow revenue and recipients. If only screenshots exist, transcribe them into the inventory table in references/audit-playbook.md and mark every field you could not read as unknown, never guessed. Generate a starter inventory with bin/flow_gap_audit.py --sample.
  1. Classify each flow as present, missing, or unknown. Check the core set: welcome, browse abandonment, cart abandonment (added to cart), checkout abandonment (started checkout, a different event from added to cart), post-purchase, review request after delivery, winback, and sunset for non-buyers. Check the conditional set only when the catalog supports it: replenishment for consumables or parts with a known use cycle, back in stock when stockouts are recorded, birthday or anniversary when the date is collected, VIP when repeat buyers are a real share of revenue. A flow that is drafted, paused, or set to manual is not present. Count it as missing and note the state.
  1. Run the timing and shape checks. Compare each live flow against the starting points in references/audit-playbook.md: welcome first email immediate, cart and checkout first email inside 2 hours with 2 to 3 emails over 2 to 3 days, browse 1 to 2 emails inside 24 hours, post-purchase split by first time versus repeat buyer with a use or care email timed around delivery, winback triggered at 60 to 90 days without a purchase with 2 to 3 emails over 2 to 3 weeks. Flag any flow outside those ranges as a test candidate, not a proven error. Timing is a starting point to test, not a law.
  1. Run the exit and overlap checks. Every abandon flow must stop when the person places an order after entering it. A cart flow must also stop when the person starts checkout, so they move to the checkout flow instead of getting both. Check repeat entry caps so the same shopper cannot re-enter the same abandon flow back to back. Check that post-purchase marketing is separate from transactional order and shipping notices, and that winback and sunset do not both chase the same inactive profile in the same window. Overlap and missing exits are trust bugs first and revenue bugs second.
  1. Score staleness separately from existence. A live flow can still be stale. Check five things per flow: last review date against the cadence in the playbook (monthly for welcome and the abandon flows, quarterly for the rest), products and prices still sold and correct, offers and codes still valid, shipping and returns claims still true, and links and branding still current. Note the specific stale item, for example a hero product discontinued in March, not just stale. Screenshot evidence beats memory here: read the current email content, do not trust the flow name.
  1. Price each missing flow from the store own numbers only. For each missing flow get two inputs: monthly entries, meaning people who triggered the event last month and would have entered the flow, and revenue per recipient from the store closest live flow, or from campaigns to the same audience if no flow is close. Run bin/flow_gap_audit.py --inventory flows.csv and use its range, half the simple entries times RPR product as the low end to allow for partial capture while a new flow ramps, the full product as the high end. Label it a planning range built from supplied inputs. If either input is missing, say the flow is unpriced and name the exact number you need. Never fill the gap with a published benchmark RPR. Benchmarks from other platforms and years do not transfer cleanly and inventing a price is worse than no price.
  1. Rank the build order. Order by three things together: monthly entries, how close the trigger sits to a purchase, and build effort. In practice that usually puts checkout abandon and welcome first, then browse abandon, then post-purchase and review request, then winback, then replenishment if it applies, then sunset. Show the ranking logic in the output so the owner can re-rank with local knowledge. Fix broken exits and overlaps on live flows before building any new flow.
  1. Deliver the gap map and stop. Hand over the output below. Do not rebuild the flows inside the audit unless the owner asks for that as separate work. An audit that quietly turns into a rebuild loses its value as a check.

Output Contract

Every audit produces:

Operating Rules

  1. Never invent numbers, dates, quotes, or events. Every benchmark in the report carries its source and its limits: Omnisend figures are Omnisend platform data for 2024, the Baymard cart abandonment average of 70.22 percent is an average across 50 studies with a wide range, and neither one predicts this store.
  2. Unknown is a valid finding. A flow you could not see in the export or screenshots is unknown, not missing. Say what access or screenshot would settle it.
  3. Transactional messages are not marketing flows. Order confirmations and shipping notices do not count as a post-purchase flow, and they do not excuse a missing review request.
  4. Discounts are a finding, not a default fix. If every abandon email leads with a discount, flag it: the known reasons people abandon include extra costs, slow delivery, trust, and a long checkout, and a reminder that answers the real reason can run before any incentive. Note which email in each sequence first offers a discount.
  5. Replenishment timing comes from the product, not a fixed day count. Work it out from pack size and typical daily use, then set the first reminder a few days before the expected run out date. If the store cannot state a use cycle, replenishment is not applicable yet.
  6. Winback needs an end. A winback with no sunset after it means inactive profiles get mailed forever, which hurts deliverability and trust. Always audit the pair together.
  7. Keep the audit platform neutral in language. Name triggers by the event (added to cart, started checkout, placed order, fulfilled order), not by one vendor menu label, and note the vendor label in brackets only when the export uses it.
  8. No em dashes in any output this skill produces. Use commas, periods, or colons instead.

Versions

v1.0.02026-10-25 · 0 installs · Ed25519-signed./install.sh email-lifecycle-audit 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.