Mute Email Flow Map — v3

Full lifecycle: Welcome → Abandoned Checkout → Post-Purchase Replenishment · Regional fork on Subscribe & Save · Updated 2026-05-21

Legend

Color-coded tracks. Email touchpoints are filled boxes; no-email moments (delays, exits) are dashed/grey.

Track A — Habit / behavior change Track B — Replenishment (single-pack) Track C — Retention (bulk) Offer kicks in Exit / no-send moment

1. Welcome Series

Top revenue flow — $3.67 / recipient, $17,756 total (US, 365d). Triggered when profile added to newsletter list. Email 1 with 10% off code is the biggest single converter. Current sequence + recommended additions below.

TRIGGER: Profile added to Newsletter list · Klaviyo native (Shopify subscribers + form fills)

Current sequence (live · VfSN47)

4 emails over 14 days. Branched: Mute-affinity vs Rhinomed-brand variant per recipient.

All regions
W1 · Day 0 (signup)
Welcome + 10% off
"Welcome to the Rhinomed community"
Brand intro. 10% off code. Single CTA. This send drives most welcome-flow conversions.
10% off Shop Mute
W2 · Day 4
Product range
"Whether it's sleep issues or athletic performance, there's a Rhinomed for you"
Mouth Tape + Turbine product spotlight. Educate on full range.
Browse products
W3 · Day 11
Brand story
"So, who is Rhinomed?" (or "So, who is Mute?" — branded variant)
Origin story. Designed in Australia, clinically tested. Trust-building.
Learn more
W4 · Day 14
Testimonials
"Still need some convincing?"
Customer reviews + Judge.me ratings. Final push.
Read reviews

Recommended additions (not yet live)

Two reminders + earlier urgency to capture customers who opened E1 but didn't redeem the code. Best-practice insertions between current sends.

Proposed
W1.5 · Day 2 NEW
Code reminder
"Still thinking? Your 10% off is waiting"
Soft nudge to non-redeemers. Same code. Single hero product (Mute Starter or Mouth Tape — cheapest entry point). Captures 15–25% additional conversion based on industry benchmark.
10% off (same code) Use my code
W3.5 · Day 13 NEW
Last chance — code expires
"Last chance — 10% off ends tomorrow"
Hard urgency. Set code to expire 14 days from signup. Final cart push before flow ends. Skip if customer already purchased.
10% off (expiring) Redeem now

Flow filter: exit on Placed Order. Customer who buys mid-flow skips remaining sends and enters Post-Purchase replenishment.

2. Abandoned Checkout

Second-best revenue flow — $3.21 / recipient, $1,058 total (US, 365d). Current 2-email sequence; recommend extending to 3 with discount on final send.

TRIGGER: Started Checkout metric · Shopify integration · suppress if Placed Order within 24h of trigger

Current sequence (live · XtPdfW)

2 emails. First fires at 2h delay.

All regions
AC1 · 2h after abandon
Cart reminder
"Your dream cart awaits"
Cart contents w/ product image. Single CTA back to checkout. No discount. Free shipping reminder.
Finish my order
AC2 · ~24h (current second send)
Second nudge
(continuation of current flow)
Reminder send. Performance suggests room for sharper urgency / social proof.
Return to checkout

Recommended structure (3 emails)

Standard high-performing pattern: reminder → urgency → discount. Discount only on E3 so customers don't learn to abandon for the offer.

Proposed
AC1 · 1h
Forgot something?
"Forgot something, {{first name}}?"
Cart contents block. "Stock is moving — finish your order before someone else grabs them." No discount. Free shipping reminder.
Complete order
AC2 · 24h
Social proof + urgency
"Still thinking? 12,000+ customers can't be wrong"
3 customer reviews + star rating. Soft urgency on stock. Still no discount — let the social proof do the work.
Finish my order
AC3 · 72h
10% off to close
"Here's 10% off to finish your order"
Discount unlock. Code FINISH10 (different from welcome to track attribution). Expires in 48h.
10% off Use my code
+24h after AC3
Exit to general list
If no order, end flow. Don't keep pushing same cart — pollutes deliverability. Customer stays on newsletter for future campaigns.

Flow filter: exit on Placed Order event for any product. Avoid double-discounting: suppress if Welcome 10% code already redeemed in last 7 days.

3. Post-Purchase Replenishment — Entry & Branching

A single Klaviyo flow triggers on every Placed Order. First gate routes to single-pack or bulk-buyer track based on line-item quantity.

TRIGGER: Placed Order metric · Klaviyo Shopify integration · per region
ANCHOR: all Day N values below count from delivery, not order. Resolution cascade:
  1. Wait for Order Delivered event (AfterShip / Shopify Shipping Notifications) — max 14 days.
  2. If timeout, wait for Fulfilled Order event (Shopify native) — max 10 days.
  3. If still no event, anchor = order date + regional shipping buffer: US +3d · UK +4d · AU +5d.
Implementation: trigger Placed Order → 3 sequential "Wait for event or X days" steps → branch into Track A/B/C using whichever anchor resolved.
Conditional split: ANY line item quantity ≥ 3?
YES → Bulk buyer flow (Tracks A + C) · NO → Single-pack flow (Tracks A + B)

Flow filter (always applied): exit when profile records another Placed Order event after trigger. Customer who reorders early skips remaining sends.

4. Single-Pack Buyer Flow

For 1× of any SKU. Customer is exploring. Need habit formation, then a clear reorder ladder timed to actual run-out. 5 emails over ~50–90 days depending on product.

Track A — Habit

No-pressure usage check-ins. No reorder pitch.

All regions
A1 · Day 3 (starter) / Day 7 (standard)
How's the first week going?
"How's the first week of better sleep going?"
Lifestyle hero. 2 short usage tips: apply just before bed; one dilator lasts ~10 nights, don't stretch. Soft link to usage guide. No reorder CTA.
Read the guide
A2 · Day 7 / Day 21
Refill nudge (gentle)
"You're 7 nights into the habit. Keep going."
Streak framing. Reorder is an option, not a pitch. Secondary link to "7 sleep tips" content.
Reorder {{product}}

Track B — Replenishment

Single-pack reorder ladder. Escalating offer.

Single-pack only
B1 · Day 14 (starter) / Day 35 (standard)
Almost out
"Almost out of mouth tape, {{first name}}?"
Clean product shot. "Based on when your order arrived ({{delivery date}}), a few days left." Single CTA. No discount.
Reorder {{product}}
AU/UK: "Subscribe & Save 15% →" small link · US: "Save 20% on the 60-night pack →"
B2 · Day 28 / Day 55
10% off refill
"Running low? 10% off your refill"
Clean hero. Code MUTE10. Free shipping over $40. Short body.
Reorder + save 10% 10% off
B3 · Day 50 / Day 90
Win-back + S&S
AU/UK: "Never run out — 15% off + S&S" · US: "Come back to better sleep — 15% off"
Lifestyle hero. Bigger offer. AU/UK pivots to S&S anchor. US offers waitlist signup.
Reorder + save 15% 15% off
AU/UK secondary: Switch to Subscribe & Save · US: Join S&S waitlist
+30 days
Exit to reactivation
If no order, move to standard win-back / sunset segment. Replenishment flow stops.

5. Bulk Buyer Flow (3×, 6×, 12×)

For any order with quantity ≥ 3 on any SKU. Customer is committed — they pre-paid for the long haul. Replenishment urgency wastes the relationship. Use the long supply runway for cross-sell, S&S conversion, and brand deepening. Reorder ask comes very late.

Track A — Habit

Same as single-pack. Day 7 single send only.

All regions
A · Day 7
How's it going?
"How's the first week of better sleep going?"
Acknowledges bulk purchase. "Smart move — you're set for {{effective supply}} nights." Two usage tips. Soft link to guide.
Read the guide

Track C — Retention & cross-sell

Long supply runway → cross-sell + S&S pitch. Reorder ask delayed until 80% of effective supply.

Bulk only
C1 · Day 21 (3-pack) / Day 30 (6-12 pack)
Cross-sell + S&S pitch
"You're set on {{product}}. Let's level up."
Hero shows complementary product. Bought dilator → push Mouth Tape. Bought Mouth Tape → push Nasal Dilator. AU/UK include S&S CTA on existing purchase.
Try {{cross-sell}} 10% off cross-sell
AU/UK secondary: Subscribe & Save your {{purchased product}} · US: bundle discount only
C2 · Day 60 (3-pack) / Day 90 (6-12 pack) / Day 180 (12 pack only)
S&S lock-in OR pack-size upsize
AU/UK: "Lock it in — save 15% every order" · US: "Going through these faster? Try the 12-pack"
AU/UK: S&S badge hero + lock-in pitch. US: bigger-pack upsell with per-night savings math + waitlist signup link.
AU/UK: Subscribe & Save · US: Try the 12-pack
C3 · 80% of effective supply
Replenishment ask (acknowledges bulk)
"Time for another {{quantity}}-pack? 15% off"
"You bought {{quantity}}× delivered {{delivery date}} — by our math you've used most of them." 15% off. AU/UK: S&S CTA.
Reorder + save 15% 15% off
+30 days
Exit to VIP segment
Bulk buyers exit to VIP, not generic win-back. Already proven high-LTV — handle with care.

6. Timing Matrix — All Effective Supply Combinations

Computed as effective supply = unit_supply × quantity. Reorder ask fires at ~80% of effective supply.

Order combo Effective supply Track (A flows always run early) First reorder ask 10% off 15% off / S&S
1× Starter10 nightsSingle-pack (A + B)Day 14Day 28Day 50
1× Standard (3 dilators)30 nightsSingle-pack (A + B)Day 35Day 55Day 90
1× Mouth Tape30 nightsSingle-pack (A + B)Day 35Day 55Day 90
3× Starter30 nightsBulk (A + C)Day 60Day 90 (S&S/upsize)
3× Standard / Mouth Tape90 nightsBulk (A + C)Day 75Day 90 (S&S/upsize)
6× Starter60 nightsBulk (A + C)Day 50Day 90 (S&S/upsize)
6× Standard / Mouth Tape180 nightsBulk (A + C)Day 145Day 90 (S&S), Day 180 (replenish)
12× Starter120 nightsBulk (A + C)Day 95Day 90 (S&S/upsize)
12× Standard / Mouth Tape360 nightsBulk (A + C)Day 290Day 90 (S&S), Day 180 (replenish)

7. Bulk-Buyer Signal — Cross-Program Impact

Once you tag a profile as "Bulk buyer" you don't stop at the replenishment flow. Apply across the entire program.

Suppress from "First Purchase" discounts

Bulk buyers have already committed. Sending them "15% off your first order" insults them and erodes margin.

FILTER: bulk_buyer = true → EXCLUDE

Add to VIP / Early Access segment

Bulk buyers see new products, restocks, and bundles 48–72 hrs before the general list. Reinforces premium feel.

SEGMENT: bulk_buyer = true → VIP list

Higher-touch review request

Their UGC carries more weight. Add a personal touch — named ask, free shipping next order in return for review.

FLOW: bulk + days_since_order > 21 → Judge.me w/ incentive

Skip beginner content

Don't send "what is Mute?" educational emails to a 12-pack buyer. They know. Push them to advanced content or community.

CONTENT: bulk_buyer = true → skip onboarding emails 1-2

Exit to VIP, not generic win-back

If bulk buyer goes inactive, they get a different sunset sequence than a one-time buyer. More respect, longer dwell, custom offer.

FLOW EXIT: bulk → VIP win-back · single → standard win-back

S&S waitlist priority (US)

When US S&S launches, bulk buyers get notified first. They're the most likely converters.

TAG: us + bulk_buyer = true → S&S waitlist priority

8. Klaviyo Implementation — How To Actually Build This

Concrete steps. Most of this lives in Klaviyo's flow builder + Shopify integration. Some needs custom event properties from Shopify.

Step 1 — Confirm Klaviyo-Shopify line-item data

Klaviyo's Placed Order event from Shopify includes Items as an array. Each item has Product Name, SKU, Quantity, ItemPrice. Verify this in Klaviyo:

  1. Go to Profiles → search any past customer → click their latest Placed Order event.
  2. Check the event payload for Items[].Quantity and Items[].SKU.
  3. If quantity isn't there, the Shopify integration needs upgrading or a custom webhook.

Step 2 — Tag bulk buyers at trigger

Two ways:

  1. Klaviyo flow only: trigger flow on Placed Order, first action is conditional split using Placed Order event dimension. Filter: Items contains where Quantity is greater than 2.
  2. Profile property (recommended): add a flow that updates profile property bulk_buyer = true when the conditional fires. Persistent flag lets you segment them globally for the other 6 cross-program use cases.

Step 3 — Compute effective supply

Klaviyo can't do arithmetic in a flow split natively. Two workarounds:

  1. Discrete flow per pack/quantity combo: 9 flows per region (the matrix in section 4). Cleaner but more to maintain.
  2. Custom property via Shopify webhook → Klaviyo: on order paid, compute effective_supply_days server-side and POST to Klaviyo via Track API as a custom event. Use that as flow trigger. Most flexible but needs dev.

Recommend (1) for v2; consider (2) for v3.

Step 4 — Conditional split for tracks

Inside each flow, use Klaviyo's conditional split:

If: Items[].SKU starts with 'STARTER'
    AND total quantity = 1
Then: → Starter single-pack track
Else: → continue to next split…

Or use profile-level bulk_buyer property if step 2 set it.

Step 5 — Flow filters

Every replenishment flow needs three filters:

  • What someone did/didn't do: NOT placed an order since flow start (auto-exit on reorder).
  • Has consented to marketing: opted in to email channel.
  • Is on suppression list: NOT on exclusion (no recent unsubscribe, no bounces).

Klaviyo refreshes filters at each step, so reorder mid-flow exits cleanly.

Step 6 — Regional fork (S&S)

Use Klaviyo's Location → Country profile property to vary content:

  1. Build one template per email (B1, B2, B3, C1, C2, C3) with dynamic content blocks.
  2. Inside template, conditional block: {% if person.location.country in ['AU','GB'] %} renders the S&S CTA; {% else %} renders US-specific pack-size upsize / waitlist link.
  3. Alternative: split per region with 3 parallel flows (US/UK/AU). More flows, simpler templates. Recommended if regional copy diverges materially over time.

Step 7 — Subscribe & Save integration

For AU + UK:

  • Confirm S&S app on Shopify (Recharge / Skio / Loop). Each has Klaviyo integration that adds Subscribed profile property.
  • S&S subscribers should be excluded from replenishment flow (they're already on auto-ship). Add filter: subscriber_active = false.

For US: build a Klaviyo signup form for "S&S waitlist" — tag profile ss_waitlist = true. On US S&S launch, run dedicated campaign to that segment first.

Step 8 — SMS layer

Replenishment is the highest-ROI SMS use case. For each email (B2, B3, C3 especially), build a parallel SMS variant:

Hey {{first}}, your Mute strips are
running low. Reorder + save 10%:
mutesnoring.com/r/abc Code MUTE10
Reply STOP to opt out

Klaviyo flows support multi-channel — add SMS send block after email send block. Will only fire for profiles with SMS consent + phone number.

Step 9 — A/B testing

Klaviyo supports A/B at the message level. Set up:

  • B1: test "Almost out" vs "Running low" subjects (50/50).
  • B2: test 10% off vs free shipping vs both (33/33/33).
  • C2: AU/UK test "Lock it in" vs "Never run out" framings.

Run each test for at least 4 weeks or 200 recipients per arm, then promote winner.

Step 10 — Build order in Klaviyo

Don't try to build everything at once. Sequence:

  1. Pause existing replenishment flows.
  2. Build single-pack Track A + Track B for Mute Nasal Dilator standard pack only, AU region first (smallest list, fastest learning).
  3. Validate timing, copy, conversions for 30 days.
  4. Clone to UK, US.
  5. Clone to other products (Mouth Tape, Turbine, Starter).
  6. Build bulk flow (Track C) as separate flow, again AU first.
  7. Layer SMS once email is stable.

Total build: ~3 weeks if focused. Iterate from there.

9. Measurement — What To Track

Re-run repeat_cycle.py + pull_flows.py every 30 days post-launch.

KPIToday30 days90 days12 months
Repeat rate (US)9.2%10%12%25–30%
Repeat rate (UK)8.8%9.5%11%22–28%
Repeat rate (AU)11.3%12%14%28–35%
Replenishment flow revenue (combined)~$100/yr$1k/mo$3k+/qtr$30k+/yr
Bulk-buyer share of customersTBCbaselinetrack20%+ of repeat orders
S&S subscribers (AU/UK)~recent launch50+200+1,000+
US S&S waitlist signups050+300+2,000+ at launch

Source data: out/{region}/repeat_cycle.json · out/{region}/flows/ · replenishment-strategy.md

Open this file in browser: open replenishment-flow-map.html