---
title: "How to audit email and SMS lifecycle flows before writing new campaigns"
description: "Before writing another email campaign, check which automated lifecycle flows the store already runs against a standard list of 10, whether each one is live or only a draft, and how much the email platform over-credits itself compared with your analytics. Then check the two things no flow audit shows: that consent withdrawals reach the sending platform at once, and that segments are built on customers who actually received their orders."
date: 2026-10-11
lang: en
canonical: https://goingstellar.ro/methods/audit-email-sms-lifecycle-flows/
author: Going Stellar
publisher: GOING STELLAR S.R.L.
topic: E-commerce / Email and SMS
license: CC BY 4.0
alternate_ro: https://goingstellar.ro/ro/metode/audit-fluxuri-email-sms/
---

# How to audit email and SMS lifecycle flows before writing new campaigns

*Before writing another email campaign, check which automated lifecycle flows the store already runs against a standard list of 10, whether each one is live or only a draft, and how much the email platform over-credits itself compared with your analytics. Then check the two things no flow audit shows: that consent withdrawals reach the sending platform at once, and that segments are built on customers who actually received their orders.*

> E-commerce · Email and SMS · 2026-10-11 · https://goingstellar.ro/methods/audit-email-sms-lifecycle-flows/

## Key points

- Audit a store's automated email and SMS flows before writing new campaigns, because a missing flow costs every day and a missing campaign costs once.
- A lifecycle flow counts as present only when it is live; drafts and flows run by another app should be reported separately, not as missing.
- Email platforms over-credit themselves: in one store the email platform reported many times what GA4 assigned to the Email channel over the same 30 days.
- An objection to direct marketing under GDPR Article 21(3) must reach the email sender immediately and be suppressed at the data source too, or a later sync can resubscribe the person.
- In cash-on-delivery stores, build winback and VIP segments on delivered orders, because placed orders include parcels that were refused.

## What a lifecycle flow audit is for

A lifecycle flow audit checks which automated email and SMS sequences a store already runs before anyone writes new campaigns. Flows are messages triggered by what a customer does (signing up, leaving a cart, placing an order, going quiet); campaigns are one-off sends to a list. A missing flow keeps costing every day, while a missing campaign costs once, so the audit comes first.

We run the audit read-only against the email platform's API with a per-store read key. The audit never edits flows and never sends anything. Its output is a build list: which flows are missing, which exist but are switched off, and which are handled by another tool.

## Step 1: compare the store's flows with a standard list of 10

Our reference list has 10 standard e-commerce flows: welcome series, abandoned cart, abandoned checkout, browse abandonment, post-purchase, winback or sunset, review request, replenishment, birthday or anniversary, and VIP or loyalty. Each one answers a moment in the customer's life that would otherwise get no message at all.

For every flow in the account we read its name, trigger and status. A flow counts as present only when its status is live. A flow that exists as a draft or in manual mode is reported separately, because it is the cheapest gap to close: someone already built it.

The first store we audited had 4 of the 10 flows live. That number was not the useful part. The useful part was the list of which 6 were missing, because it turned a vague goal (do more email) into a specific list of things to build, in order.

## Step 2: check what the matching cannot see

**1. Name matching is approximate.** We match flows to the standard list by keywords in English and Romanian in the flow name. A broad keyword such as cart can match a flow that is really about checkout, and a flow with an unusual name can be missed. Always read the raw list of flows before trusting the gap count.

**2. Some flows live outside the email platform.** Our first audit reported the review request as missing. Reviews were in fact requested by a separate review app with its own flow. The audit now marks such flows as covered externally instead of missing.

**3. Capture forms load late.** An audit of the storefront said there was no email capture form. The pop-up existed, but it loaded through JavaScript, so it was invisible in the static HTML we fetched. A tool that reads HTML must say when it cannot see something and ask for a visual check.

**4. Promo codes must exist.** Flow templates often promise a discount code. Check that each code exists in the shop and has not expired before the flow goes live.

## Step 3: measure how much the email platform credits itself

Email platforms attribute revenue to their own messages with a generous window. In our setup the platform credited an order to an email clicked within about 5 days or opened within 1 day, while GA4 credited the Email channel only on the last click from a tagged session. For one store, over the same 30 days, the email platform reported many times what GA4 assigned to Email.

Neither figure is the truth. GA4 undercounts, because untagged email links fall into other channels; the email platform overcounts, because an open is not a cause. The real contribution sits between the two and, in our judgement, closer to GA4. The size of the gap is the number worth watching. When it grows, the email platform's dashboard is the wrong place to decide where to invest.

## Step 4: check consent and segments before building more

**Consent must reach the sender at once.** A customer asked support to erase her data and stop all marketing. The request reached the support inbox, but nothing connected it to the email platform, and a campaign reached her the same morning. Under GDPR Article 21(3), an objection to direct marketing means processing for that purpose must stop. Suppress the address in the email platform first, before triage, and suppress it at the source too: consent synced from the shop can resubscribe someone the next time the profiles sync.

**Segments must use delivered orders.** In a cash-on-delivery store, a placed order is not a sale until the parcel is accepted. A winback or VIP segment built on placed orders includes people who refused their parcels. We build customer segments (recency, frequency, value) on delivered orders, identified by email address, and per store, because stores sell in different currencies.

**Payment recovery may not apply.** Generic retention playbooks spend much of their effort on failed card payments (dunning). For a store paid mostly in cash on delivery, the equivalent problem is refusal at the door, which belongs to confirmation and delivery checks, not to an email flow.

## Step 5: build the missing flows, and know what the API cannot do

Through the email platform's API we can reliably create templates, segments and lists. Creating a complete flow, meaning the graph of trigger, delays and emails, through the API was limited, so our builder delivers the templates plus a written specification: the trigger, the delays and the order of the messages. Wiring each flow in the platform's interface then takes about 2 minutes.

The specification is concrete. Welcome: 3 emails after signup. Abandoned cart: 3 emails, the first after 1 hour and the last at 48 hours. Browse abandonment: 2 emails. Post-purchase: 3 emails, with a review request on day 14. Winback: 2 emails after 60 days without a purchase. Sunset: 1 email after 120 days without engagement, asking whether the person still wants to hear from us. Every text passes a check for machine-written phrasing before it goes live.

Two writing rules from our email playbook carry most of the weight: one email, one job, with one main call to action; and fewer, more relevant emails beat more emails. Subject lines of 40 to 60 characters are a reasonable default.

## Where we were wrong

Our first gap report overstated the problem in two places: a review flow handled by another app and a capture form loaded by JavaScript were both reported as missing. The owner of the store corrected both. We also described the builder as creating flows when, at first, it created only templates. We now say exactly what is automated (templates, segments, lists) and what is manual (wiring the flow).

The consent gap was the more serious error, and no flow audit would have found it. We found it because a customer complained.

## Limits and checklist

The audit checks presence, status and attribution. It does not judge whether a flow's content is good, and it covers only the stores whose read key is connected. The attribution comparison compares two imperfect counts; it gives a range, not a figure for email's real contribution.

Checklist: list every flow with name, trigger and status. Compare with the 10 standard flows; count only live ones. Read the raw names and mark flows handled by other tools. Verify capture forms visually. Compare the platform's attributed revenue with analytics for the same period. Route every unsubscribe and erasure request to the sender immediately, at both ends. Build segments on delivered orders. Only then write new campaigns.

## Questions and answers

### What email flows should every e-commerce store have?

A standard set of 10 covers most of the customer lifecycle: welcome series, abandoned cart, abandoned checkout, browse abandonment, post-purchase, winback or sunset, review request, replenishment, birthday or anniversary, and VIP or loyalty. Not every store needs all of them; replenishment matters only for products that run out. Audit which are live before building anything.

### How do I audit my Klaviyo flows?

List every flow with its name, trigger and status through the API or the interface. Compare the list with a standard set of lifecycle flows and count a flow as present only if it is live. Report drafts separately, check flows handled by other apps, and read the raw names, because keyword matching on names misses flows with unusual names.

### Why is Klaviyo revenue so much higher than Google Analytics email revenue?

The email platform credits an order to an email opened or clicked within its attribution window, while GA4 credits the Email channel only for tagged last-click sessions. In one of our stores the email platform reported many times the GA4 figure over 30 days. The truth lies between the two; watch the size of the gap rather than either number.

### Can Klaviyo create a complete flow through the API?

In our experience the API reliably creates templates, segments and lists, but building a complete flow graph with trigger, delays and emails through the API was limited. We generate the templates and a written specification through the API, then wire each flow in the interface, which takes about 2 minutes per flow.

### What should happen when a customer asks to stop marketing emails?

The address must be suppressed in the email platform immediately, before the request is triaged. GDPR Article 21(3) requires direct marketing to stop on objection. Suppress the contact at the data source as well, because consent synced from the shop can resubscribe the person at the next sync.

## How to cite

**Cite this as:** Going Stellar (2026). *How to audit email and SMS lifecycle flows before writing new campaigns*. GOING STELLAR S.R.L.. https://goingstellar.ro/methods/audit-email-sms-lifecycle-flows/

```bibtex
@misc{goingstellar2026audit,
  title  = {How to audit email and SMS lifecycle flows before writing new campaigns},
  author = {{Going Stellar}},
  year   = {2026},
  url    = {https://goingstellar.ro/methods/audit-email-sms-lifecycle-flows/},
  note   = {2026-10-11}
}
```

Licence. Free to quote with attribution.

## Also available

- This page as HTML: https://goingstellar.ro/methods/audit-email-sms-lifecycle-flows/
- Same article in Romanian: https://goingstellar.ro/ro/metode/audit-fluxuri-email-sms/
