← Back to portfolio Email me →
Lifecycle · Summit Rx

The email problem wasn’t the emails.

The brief was "we need better emails". The audit showed the real problem: the email platform couldn’t see many of the customers it was supposed to email, and four systems were competing to talk to the ones it could.

In 20 seconds
  • Found that guest checkouts never reached the email platform, so abandoned-checkout recovery couldn’t work for them at all.
  • Caught a flow that would have emailed every subscriber on every renewal before it went live.
  • Designed the program around the billing calendar: quiet around charge days, and no marketing while a card is failing.
  • Shipped ~9 automations across 7 lifecycle stages and 11 new emails, with one owner system per email type.
RoleSolo: audit, architecture, copy
TimelineSep 2026
SystemsBrevo · Shopify · Seal · n8n
StatusLive

What the audit found

Finding 01 · Visibility

Many customers were invisible to the email platform.

Shoppers who checked out as guests never became contacts, so recovery emails had no one to send to. And the recovery link rebuilt the cart without the subscription plan, sending people back to the wrong offer.

So: I built an event pipeline so every checkout reaches the email platform, deduplicated by checkout. The plumbing had to be right before any copy mattered.

Finding 02 · Ownership

Four systems could email the same customer.

Brevo, Shopify’s messaging, the subscription app, and automation workflows could all send. Nobody could say what a new subscriber received in week one.

So: One owner system per email type, written down, plus a 24-hour gap between marketing sends.

Finding 03 · Timing

Subscription email has a calendar, and it’s the billing calendar.

Marketing emails landing next to a charge or a failed-payment notice feel tone-deaf and drive cancellations.

So: Quiet periods around billing days and zero marketing during payment retries. Respect first, promotion second.

Finding 04 · Risk

One flow was about to spam every subscriber.

A renewal-triggered automation would have sent a "welcome"-style email on every single renewal.

So: Caught in the audit, before it ever fired.

Finding 05 · Measurement

Email revenue was unattributable.

UTM tags still contained template placeholders, and the account’s currency was set wrong.

So: One UTM convention across every template, so email finally shows up in attribution.

What shipped

4 → 1
systems that could send → one owner per email type
7
lifecycle stages automated (~9 automations)
11
new on-brand emails written and shipped

Business figures (revenue, spend, conversion and retention rates) stay private at my employer’s request. Happy to walk through the real work on a call.

Under the hood

Shopify + Seal Subscriptions webhooks → n8n (dedupe by checkout token, enrich, stage) → Brevo contact attributes and lifecycle stage → flows · Judge.me review requests · single-use referral codes.

If I did it again

I'd map every system that can send email before writing a single one. The most valuable deliverable was the ownership table, not the copy.