Jewelry Depot — Email Flow Architecture & Decision Logic

Last updated: April 3, 2026  |  Store: shop.jewelrydepot.com  |  AOV: $750  |  Avg sales cycle: 27 days  |  Profiles active: 82 (4 purchasers excluded)  |  Plan: Klaviyo Email (no SMS)

1. Legend & Color Key

Track Colors

Checkout Recovery — highest intent
Cart Recovery — high intent
Browse Abandonment — medium intent
Welcome — new subscriber
Post-Purchase — buyer
Suppressed — blocked by higher-priority track
Lifecycle Campaign — scheduled sends

Status Badges

LIVE Currently active in Klaviyo
NEW Built in this project (digest system)
REC Recommended addition for optimization
GAP Missing — identified as a gap
TODO Planned, not yet implemented

2. Priority Decision Tree — Which Email Wins

When a customer is eligible for multiple flows simultaneously, this tree determines which track takes priority. Read top-to-bottom — the first match wins.

Core rule: The highest-intent behavioral signal always takes priority. Checkout > Cart > Browse > Welcome > Campaigns. A new subscriber who starts checkout gets checkout emails, not welcome emails.

3. Intent Escalation Ladder

When a customer's intent upgrades mid-flow, the higher-intent track takes over. The lower-intent flow exits or goes to offset.

🔵 BROWSE
Viewed ProductMedium intent
→
🟠 CART
Added to CartHigh intent
→
🔴 CHECKOUT
Started CheckoutHighest intent
→
🟣 PURCHASE
Placed Order20-day suppress
Escalation EventWhat Happens to Current FlowWhat Activates
Browser adds to cartBrowse flow: EXIT immediatelyCart Flow Email 1 at +2h → Cart Digest sequence
Cart user starts checkoutCart flow: Pause, moves to offset daysCheckout Flow Email 1 at +1h → Checkout sequence gets priority days
Checkout user places orderCheckout + Cart flows: EXIT immediatelyPost-Purchase Thank You → 20-day suppression on ALL flows
New subscriber takes any actionWelcome flow: CONTINUES in parallelRelevant action flow fires concurrently — momentum preserved
Critical momentum rule: The Welcome flow does NOT suppress and is NOT suppressed by action flows. A new subscriber who immediately starts checkout receives BOTH the welcome email AND the checkout flow. This captures high-intent momentum from new leads (often from Meta Ads).

4. Track-by-Track Email Schedules

4a. 🔴 Checkout Recovery Track

Trigger: Checkout Started event, no Placed Order within window
Lookback: 7 days  |  Total emails: 4 over 7 days  |  Exit: Purchase or 7-day expiry

TimingEmailStatusContentCTANotes
+1 hour Checkout #1 LIVE "Complete your purchase" — dynamic product block showing checkout items, images, prices. Clean, elegant, single focus. Return to Checkout Uses existing Klaviyo flow. Template: Abandoned Cart Klaviyo March 2026.html. Skip smart sending — too time-sensitive to delay.
+24 hours Checkout #2 LIVE Trust & reassurance — returns policy, warranty, authenticity certification, financing options. Cart contents reminder. Customer service contact info. Complete Purchase Existing flow Email 2. "Questions? We're here to help."
+3 days Checkout Digest NEW ALL checkout items consolidated (from checkout_digest_items property). Social proof — reviews for those items/categories. "Customers who bought these also loved…" Return to Checkout Uses digest campaign with checkout_digest_count > 0 segment. Script updates property; campaign sends. Items >$1,000: include financing callout.
+7 days Checkout Final REC "Your pieces are waiting." Complimentary service offer (free engraving, resizing, cleaning kit). Full trust block. Final gentle close. If cart >$2,000: personal note from consultant. Complete Purchase Final touch before items expire. Do NOT discount. Service-based incentive ONLY.

4b. 🟠 Cart Recovery Track

Trigger: Added to Cart event, no Started Checkout within window
Lookback: 21 days  |  Total emails: 4 over 10 days  |  Exit: Purchase, checkout start, or 10-day expiry

TimingEmailStatusContentCTANotes
+2 hours Cart #1 LIVE "Your cart is saved" — most recent item with image, name, price. Clean design, brand imagery. View Cart Existing Klaviyo flow triggered by Added to Cart. Skip smart sending.
+2 days Cart Digest #1 NEW ALL cart items consolidated (from cart_digest_items property). Styling tips: "How to wear these pieces." Compare-at price strikethrough where applicable. View Cart Uses digest campaign with cart_digest_count > 0 segment. Exclude profiles with recent checkout (in Checkout Track).
+5 days Cart Digest #2 NEW Social proof — reviews for carted items or categories. "Customers who loved these also loved…" Include 1–2 complementary product suggestions. View Cart Second digest send. If no engagement on Digest #1, consider different subject line angle.
+10 days Cart Final REC Trust & reassurance — returns, warranty, secure payment, financing. "These pieces are still available." Last touchpoint before items go stale. View Cart Final cart touch. No discount. Service-based incentive if appropriate (complimentary gift wrap).

4c. 🔵 Browse Abandonment Track (Digest-Based)

Trigger: Viewed Product event
Re-entry: After 7 days  |  Total emails: 2 over 5 days  |  Exit: Purchase, checkout, or browse_digest_count = 0 (conditional split)

Redesigned April 3, 2026: Converted from per-view 4-email flow to digest-based 2-email flow. The old flow fired on every product view, spamming frequent browsers. The new flow uses browse_digest_items (populated by daily_digest_updater.py) to show ALL recently viewed products in a single grid. Conditional split on browse_digest_count > 0 ensures emails only send when digest data exists.

Profile Filters (re-checked before every action):

TimingEmailStatusContentCTANotes
+1 day Browse #1 LIVE "💎 Did Something Catch Your Eye?" — Dynamic product grid from browse_digest_items showing ALL recently viewed products with images, names, prices. Purple "View Details" buttons. No divider lines between items. View Details (per item) Conditional split: browse_digest_count > 0 → YES sends email, NO exits flow. Subject: 💎 Did Something Catch Your Eye? Preview: Pieces you've had your eye on at Jewelry Depot
+5 days Browse #2 LIVE "Still Thinking It Over? Only 1 Left In Stock" — Same product grid + Shop With Confidence trust block (free shipping, 30-day returns, lifetime warranty, Affirm financing). Real scarcity — Jewelry Depot carries 1 of each piece. View Details (per item) Second conditional split: browse_digest_count > 0. Subject: Still Thinking It Over? Only 1 Left In Stock Preview: Each piece is unique — free shipping, 30-day returns & lifetime warranty
Digest architecture: The daily_digest_updater.py script populates browse_digest_items (list of up to 8 products), browse_digest_count, browse_first_item_name, and browse_first_item_price on each profile. Browse items are suppressed if the customer also carted or checked out the same product (matched on product_id). Script must run before flow emails render — schedule via cron or run manually.

4d. 🟢 Welcome Track

Trigger: Profile created + subscribed to email (NOT triggered by purchase). Multiple triggers allowed (newsletter signup, discount form, Shopify checkout subscription).
Current state: 1 email only  |  Does NOT suppress other flows
Profile Filter: Has received email from this flow zero times over all time — prevents duplicate welcome emails when multiple triggers fire for the same profile (e.g., Shopify sync + Klaviyo form simultaneously). LIVE

TimingEmailStatusContentCTANotes
Immediate Welcome #1 LIVE Welcome + brand story. Signature pieces hero imagery. What makes Jewelry Depot different. Browse Collection Currently the ONLY welcome email. This is functional but under-optimized — see Gaps.
Day 2–21 Welcome #2–7 GAP Not yet built. See Future Enhancements for the full 7-email sequence plan. — Future expansion: education, social proof, styling, craftsmanship, trust signals, soft CTA.
Parallel operation: Welcome is unique — it runs alongside any action flow. A Meta Ads lead who subscribes AND immediately adds to cart gets Welcome #1 (immediate) PLUS Cart #1 (+2h). Both fire. Smart sending should not block the action flow email.

4e. 🟣 Post-Purchase Track

Trigger: Placed Order event
Suppression window: 20 days — ALL other flows blocked except Thank You
After 20 days: Profile re-enters normal flow eligibility

TimingEmailStatusContentCTANotes
Immediate Thank You REC Warm personal thank you. Reaffirm great choice. Order details + shipping timeline. Brand voice. Track Order Currently handled by Shopify's order confirmation, not Klaviyo. GAP — Klaviyo thank-you email would allow brand-consistent experience and lead into post-purchase flow.
Day 1–20 ⛔ 20-DAY SUPPRESSION WINDOW — No checkout, cart, browse, welcome, or campaign emails. Only Shopify transactional emails (shipping confirmations).
Day 20+ Re-entry TODO Suppression lifts. Profile re-evaluated against current behavior. If new browse/cart activity exists, appropriate flow activates. — Currently the 20-day exclusion is in the digest script only. Needs to be enforced across ALL Klaviyo flows via flow filters.

5. Combined Swimlane Timeline

This grid shows ALL tracks side-by-side. Read each row (track) left-to-right to see the email cadence. Colored cells = email fires. Gray cells = suppressed.

Track 0–1h 2–4h Day 1 (24h) Day 2 Day 3 Day 5 Day 7 Day 10 Day 14 Day 20+
🔴 CHECKOUT
🟠 CART
🔵 BROWSE
🟢 WELCOME
🟣 POST-PURCHASE ⛔ 20-DAY SUPPRESSION — All flows & campaigns blocked
⚪ CAMPAIGNS New Arrivals (2×/mo) · Editorial/Lifestyle (2×/mo) · Collection Spotlight (1×/mo) · Seasonal per calendar
Frequency: Max 1 campaign/week for engaged. Max 1–2/month for low engagement. Always respect flow priority — skip campaign if profile received flow email that day.

6. Dual-Track Scenario: Checkout + Cart Items

When a customer has both Started Checkout items and separate Added to Cart items (items they browsed/carted but didn't proceed to checkout with), both tracks run with interleaved timing. Checkout gets priority days.

Interleave rule: Never send two emails on the same day for the same profile. Checkout emails claim odd/key days, cart fills the gaps. Maximum: 1 email per day, 4 per week during the dual-track window.
DayTrackEmailContentStatus
+1 hour CHECKOUT Checkout Flow #1 "Complete your purchase" — checkout items with images, prices. Immediate urgency (warm, not aggressive). LIVE
+24h (Day 1) CHECKOUT Checkout Flow #2 Trust & reassurance — returns, warranty, financing. Checkout items reminder. LIVE
Day 2 CART (offset) Cart Digest #1 ALL cart items (not in checkout) consolidated. "While you're deciding, you also had your eye on these…" Styling tips. NEW
Day 3 CHECKOUT Checkout Digest Consolidated checkout items + social proof. Reviews. "Customers who bought these also loved…" NEW
Day 5 CART (offset) Cart Digest #2 Cart items + social proof + complementary suggestions. Secondary conversion opportunity. NEW
Day 7 CHECKOUT Checkout Final "Your pieces are waiting." Service offer (engraving, resizing). Final gentle close for checkout items. REC

Result: 6 emails over 7 days. 1 immediate + 5 over the week = roughly 5/week during peak recovery. Acceptable for high-intent dual-track customers with $750+ AOV. The customer has shown intent on multiple items — this level of attention is warranted.

7. Suppression Matrix

Cross-reference: when a profile is "in" the row track, what happens to the column track?

Profile is in ↓ \ Effect on → Checkout Emails Cart Emails Browse Emails Welcome Campaigns
🔴 Checkout Track ✅ ACTIVE ⏸ OFFSET ❌ SUPPRESSED ✅ Unaffected ✅ Normal
🟠 Cart Track — ✅ ACTIVE ❌ SUPPRESSED ✅ Unaffected ✅ Normal
🔵 Browse Track — — ✅ ACTIVE ✅ Unaffected ✅ Normal
🟢 Welcome Track ✅ Unaffected ✅ Unaffected ✅ Unaffected ✅ ACTIVE ✅ Normal
🟣 Post-Purchase (20d) ❌ SUPPRESSED ❌ SUPPRESSED ❌ SUPPRESSED ❌ SUPPRESSED ❌ SUPPRESSED
Key:
✅ ACTIVE = this track's emails send normally
⏸ OFFSET = emails still send but on alternate days (dual-track interleave)
❌ SUPPRESSED = emails blocked entirely while in the suppressing track
✅ Unaffected = no suppression relationship — both can co-exist
— = not applicable (can't be in a lower-intent track if you're in a higher one)

8. Timing, Frequency & Smart Sending

Optimal Send Windows

Email TypeTiming ModelSend WindowTimezone
Immediate triggers (Flow Email #1) Event-based: 1–2 hours after event Fire immediately regardless of time of day N/A — fires on event
Flow follow-ups (Flow Email #2+) Event-based + window: delay hours, then queue for optimal window 7:00–8:00 PM (primary) or 10:00–11:00 AM (secondary) Recipient local time
Digest campaigns Schedule-based: fixed campaign schedule 7:30 PM Recipient local time (Klaviyo "Smart Send Time" or timezone setting)
Lifecycle campaigns Schedule-based: manual sends 7:00–8:00 PM (weekday) or 11:00 AM (weekend) Recipient local time
Why 7–8 PM? Fine jewelry browsing skews heavily to evening and weekend hours. Customers browse on phones/tablets from the couch. Evening sends align with active browse behavior and decision-making time. Secondary 10–11 AM window catches lunch-break browsers.

Frequency Caps

RuleLimitScopeEnforcement
Max emails per day 1 per day (across flows + campaigns) Per profile Klaviyo Smart Sending + flow scheduling
Max emails per week (standard tracks) 3–4 per week Per profile Flow time delays + campaign frequency
Max emails per week (dual-track) 5 per week (peak recovery, high intent) Per profile, dual-track only Interleave schedule (see Section 6)
Browse abandonment throttle Max 1 per 48 hours Per profile, browse flow only Aggregate multiple views into one email

Smart Sending Configuration — Recommended

SettingRecommended ValueRationale
Global Smart Sending window 16 hours Allows evening → next morning sends without blocking. 24h is too restrictive for momentum.
Checkout Flow Email #1 Skip Smart Sending This is the highest-value email. A hot lead who started checkout 1h ago MUST receive this, even if they got a welcome email earlier. Configure via flow settings → Smart Sending Override.
Cart Flow Email #1 Skip Smart Sending Same logic. High-intent action = immediate response, never blocked.
All other flow emails Respect Smart Sending Follow-ups are less time-sensitive. If another email was sent recently, a delay is acceptable.
Campaign sends Respect Smart Sending Campaigns always yield to higher-priority flow emails.
Momentum preservation: The single most important configuration in this document is setting Checkout #1 and Cart #1 to skip smart sending. Without this, a new subscriber from Meta Ads who receives a welcome email and then starts checkout within the smart sending window will NOT receive the checkout recovery email. This is a direct revenue leak for a $750+ AOV store.

9. Segment Definitions for Digest Campaigns

Checkout Digest Campaign Segment

ConditionValuePurpose
checkout_digest_count> 0Has checkout items to show
Checkout Started> 48 hours agoExisting flow emails (1h + 24h) have finished sending
Checkout Started< 7 days agoItems are still fresh / not stale
Placed OrderNOT in last 20 days20-day purchaser exclusion
Received this campaignNOT in last 3 daysPrevent repeat sends on back-to-back campaign dates

Browse Digest Flow Segment (Conditional Split)

ConditionValuePurpose
browse_digest_count> 0Has browse items to show (conditional split in flow, not campaign segment)
Placed OrderNOT in last 20 days20-day purchaser exclusion (profile filter)
Checkout Started0 times since starting this flowExit if they escalated to checkout (profile filter)
Note: Browse uses a flow (not a campaign), so filtering is via conditional splits and profile filters rather than segment conditions. The conditional split on browse_digest_count > 0 is checked before each email — if the digest script hasn't run or the profile has no browse data, the profile exits cleanly down the NO branch.

Cart Digest Campaign Segment

ConditionValuePurpose
cart_digest_count> 0Has cart items to show
Added to Cart> 4 hours agoCart Flow Email 1 (+2h) has already sent
Added to Cart< 21 days agoItems still within consideration window
Started CheckoutNOT in last 7 daysIf they're in Checkout Track, don't send Cart Digest (it offsets instead — handled by dual-track flow)
Placed OrderNOT in last 20 days20-day purchaser exclusion
Received this campaignNOT in last 3 daysPrevent repeat sends

Digest Script → Campaign Timing

StepWhenWhat
1. Script runs7:00 PM (30 min before campaign)python daily_digest_updater.py — updates cart_digest_items and checkout_digest_items on all eligible profiles. Excludes 20-day purchasers.
2. Campaign sends7:30 PM recipient local timeKlaviyo campaign targets segment (see above). Sends to all profiles matching segment conditions.
3. CadenceEvery 3 days (Tue + Fri recommended)Both the script run and campaign send occur every 3 days. Tue + Fri provides even spacing.
Architectural note: The current digest system is campaign-based (scheduled sends to a segment). This means timing is per-schedule, not per-person. A customer who checked out 2 days ago and one who checked out 6 days ago both receive the digest on the same campaign date. Future optimization: Convert digest to a segment-triggered flow for per-person timing (see Gaps).

10. Re-Entry & Cooldown Rules

TrackCycle Ends WhenCooldown PeriodRe-Entry TriggerOverride
Checkout Purchase OR 7 days with no action 7 days after last checkout email New Checkout Started event New checkout event during cooldown → reset immediately, re-enter
Cart Purchase, checkout, OR 10 days with no action 7 days after last cart email New Added to Cart event New cart event during cooldown → reset immediately, re-enter
Browse Cart add, checkout, purchase, or flow completes (2 emails over 5 days) 7 days (Klaviyo re-entry setting: "Allow re-entry after 7 days") New Viewed Product event after re-entry window Digest-based: all views consolidated into browse_digest_items. No per-view emails. Re-entry window prevents email fatigue.
Post-Purchase 20 days after purchase 20 days (the suppression IS the cooldown) Automatic — suppression lifts, profile re-evaluates No override. 20-day suppression is absolute.
Cooldown rationale for fine jewelry ($750 AOV, 27-day cycle):

11. Gaps, Chokepoints & Missed Opportunities

🔴 Critical Gaps (Revenue Impact: High)

GAP-1: 20-day post-purchase suppression not enforced across all flows
The 20-day exclusion currently exists only in the digest script (get_recent_purchaser_ids()). The live Klaviyo flows (checkout, cart, browse) do NOT have this filter. A customer who just purchased can still receive abandoned cart emails from the flow — this damages trust and brand perception.
Fix: Add flow filter to every Klaviyo flow: Placed Order NOT in last 20 days. This is a 5-minute fix per flow in Klaviyo's flow builder. Priority: DO THIS FIRST.
GAP-2: No Klaviyo Thank You email (post-purchase)
Currently, order confirmation is handled only by Shopify's default transactional email. Klaviyo has no post-purchase flow. This means: (a) no brand-consistent post-purchase experience, (b) no lead-in to care instructions, reviews, or cross-sell, (c) no Klaviyo attribution data for post-purchase engagement.
Fix: Create a Klaviyo flow triggered by Placed Order. Email 1 = Thank You (immediate). Start simple, expand later.
GAP-3: Smart Sending may block high-intent checkout/cart emails
If Smart Sending is set to 24 hours (or any window) and a new subscriber received the Welcome email, the Checkout Flow Email #1 will be BLOCKED if they start checkout within that window. For a $750+ AOV store, this is a direct revenue leak.
Fix: (a) Set global Smart Sending to 16 hours, (b) Set Checkout #1 and Cart #1 to "Skip Smart Sending" in flow settings. Verify this setting TODAY.
GAP-4: Digest script runs manually — no automation
The daily_digest_updater.py script must be run manually before each campaign send. If forgotten, profiles have stale data and the campaign sends outdated product info (or doesn't send at all if properties are empty).
Fix: Set up a cron job (macOS launchd or crontab) to run the script at 7:00 PM every Tue and Fri. Example: 0 19 * * 2,5 cd /path/to/project && .venv/bin/python migration/daily_digest_updater.py
GAP-5: Collection page UTM bug still active
Klaviyo UTM parameters break Shopify collection page loading. Links to collection pages in ANY email (flow or campaign) will fail. This affects every email that links to a collection (e.g., "Browse our Rings" CTA → collection URL → broken page for the customer).
Fix: See diagnostic steps in the mode instructions. Test, fix, verify. Every email audit should flag this until resolved.

🟡 Chokepoints (Operational Risk)

CHOKE-1: Checkout Flow + Checkout Digest overlap
The existing live Checkout Flow may have follow-up emails beyond #1 and #2 that could overlap with the Checkout Digest campaign on Day 3. If the flow sends a 3rd email AND the digest campaign fires on the same day, the customer gets doubled.
Fix: Audit the existing Checkout Flow in Klaviyo. Count the emails. If more than 2, either (a) disable flow emails beyond #2 (let digest take over), or (b) add a conditional split in the flow that checks checkout_digest_count > 0.
CHOKE-2: Campaign vs. flow timing mismatch
The digest is campaign-based (fires on Tue/Fri schedule). A customer who checks out on Monday gets Checkout Flow #1 at +1h and #2 on Tuesday — then the Checkout Digest also fires on Tuesday. That's 2 emails on Tuesday.
Fix: The segment condition "Checkout Started > 48h ago" mitigates this (see Section 9). But consider converting the digest to a segment-triggered FLOW for per-person timing. This is the cleanest long-term solution.
CHOKE-3: Browse → Cart escalation mid-flow
When a customer is mid-way through the Browse Abandonment flow (e.g., received Browse #2 on Day 3) and adds to cart, does the Browse flow exit cleanly? Klaviyo flows with "Added to Cart" exit conditions should handle this, but needs verification.
Fix: Verify the Browse Abandonment flow has an exit condition: "Profile has Added to Cart at least once since entering this flow." Test by triggering the scenario manually.
CHOKE-4: No global frequency cap in Klaviyo settings
Without a global cap, a profile in the dual-track scenario (Checkout + Cart) receiving 5 emails/week PLUS a lifecycle campaign PLUS welcome could exceed comfortable thresholds.
Fix: In Klaviyo Settings → Email → Sending, configure a global frequency cap. Check current setting and set to max 4–5 emails/week across all sources if not already configured.

🔵 Missed Opportunities (Revenue Upside)

OPP-1: Welcome series is only 1 email
The first 21 days after subscription is the highest-engagement window. A single welcome email captures ~15% of the available brand-building and first-purchase potential. The recommended 7-email series builds trust over the full consideration cycle.
Impact: Estimated 20–35% increase in first-purchase conversion rate from welcome subscribers. At $750 AOV, even 5 additional conversions/month = $3,750/month incremental revenue.
OPP-2: No price drop / back-in-stock alerts
Customers who viewed or carted a specific item and it later drops in price or returns to stock are the highest-intent reactivation targets. These are 1-email, high-conversion opportunities.
Impact: Price drop emails typically convert at 2–5× the rate of standard browse abandonment.
OPP-3: Cart Flow email shows single item, not all cart items
The live Cart Flow Email #1 (triggered by Added to Cart) shows only the most recent item. If a customer has added 5 items, they only see 1. The digest solves this at +2 days, but there's a 2-day gap where the customer's full cart isn't represented.
Options: (a) Accept the 2-day gap (digest fills it), (b) Convert Cart Flow #1 to use cart_digest_items property for dynamic rendering (requires script to run before flow email, which may not be realistic for a 2-hour trigger).
OPP-4: No cross-sell after post-purchase suppression lifts
At Day 20, the suppression lifts but there's no planned email for re-engagement. A customer who bought a ring 3 weeks ago is prime for a complementary piece (matching band, earrings, necklace).
Impact: Targeted cross-sell at Day 20–30 can drive repeat purchases. "Complete the set" or "Pair with your [purchased item]."
OPP-5: No VIP differentiation
Profiles with $2,000+ lifetime value or $1,500+ single orders receive the same emails as $150 sterling silver buyers. VIP customers warrant: personal consultant outreach on high-value checkouts, early access to new collections, exclusive service offers.
Impact: VIP customers have the highest reactivation potential. Even small improvements in VIP retention yield outsized revenue.
OPP-6: No winback or sunset flows
Customers who haven't purchased in 180+ days have no automated re-engagement. Unengaged profiles (120+ days no opens/clicks) have no sunset flow, potentially hurting deliverability.
Impact: Winback flows for jewelry typically recover 3–8% of lapsed customers. Sunset flows protect deliverability (reduces complaints and bounces).

12. Future Enhancements (Not in Core Diagram)

These are strategic improvements that build on the current architecture. Listed in priority order by estimated revenue impact.

#EnhancementWhyComplexity
F1Expand Welcome Series to 7 emails over 21 daysBrand building during highest-engagement window. Matches 27-day sales cycle.Medium — content creation + flow setup
F2Post-Purchase flow: care instructions (Day 3), review request (Day 14), cross-sell (Day 30)Reduces buyer's remorse, generates reviews, drives repeat purchasesMedium — flow setup + content
F3Price Drop / Back-in-Stock alertsHighest-conversion triggered emails for high-intent viewersMedium — requires Shopify product data integration + flow triggers
F4VIP flow differentiation ($2,000+ lifetime)Personal consultant outreach, early access, exclusive servicesLow — segment creation + conditional splits in existing flows
F5Convert digest from campaign to segment-triggered flowPer-person timing instead of fixed schedule. Cleaner architecture.Medium — push custom Klaviyo event from script, build flow around it
F6Winback flow (180+ days lapsed)Recover lapsed customers with aspirational, non-desperate messagingLow — segment + 4-email flow
F7Sunset flow (120+ days unengaged)Protect deliverability. Suppress or re-permission unengaged profiles.Low — segment + 2-email flow
F8SMS expansion (when plan upgraded)Time-sensitive alerts, VIP-exclusive channel, shipping updatesMedium — plan upgrade + flow modifications
F9Pinterest Ads audience syncSuppress, retarget, and build lookalikes from Klaviyo segments on PinterestLow — integration setup
F10Automated digest script scheduling (cron)Eliminate manual step before each campaign sendLow — crontab setup

13. Implementation Tracker

ItemStatusDateNotes
Checkout Flow Email 1 (immediate)✅ LIVEPre-migrationMailchimp → Klaviyo migration. Template: Abandoned Cart Klaviyo March 2026.html
Checkout Flow Email 2 (trust/financing)✅ LIVEPre-migrationPart of existing flow
Cart Flow Email 1 (cart saved)✅ LIVEPre-migrationExisting flow
Browse Abandonment Flow (digest-based, 2 emails)✅ LIVEApr 3, 2026Redesigned from per-view 4-email → digest-based 2-email. Trigger: Viewed Product, 7-day re-entry. Conditional split on browse_digest_count > 0. Profile filters: Placed Order 0 (20d), Checkout Started 0 since flow start.
Welcome Email 1✅ LIVEPre-migrationSingle email. expansion planned (F1)
Welcome duplicate prevention filter✅ DONEApr 3, 2026Profile filter: "Has received email from this flow zero times over all time." Prevents duplicate sends from multiple triggers (Shopify + Klaviyo form).
Browse Digest Properties (browse_digest_items)✅ DONEApr 3, 202682 profiles updated, 4 purchasers excluded. Properties: browse_digest_items, browse_digest_count, browse_first_item_name, browse_first_item_price.
Browse Digest Email #1 HTML (product grid)✅ DONEApr 3, 2026Dynamic grid: 50% width images, product names, formatted prices, purple "View Details" buttons. Uses {% for %} loop over browse_digest_items.
Browse Digest Email #2 HTML (grid + trust block)✅ DONEApr 3, 2026Same product grid + "Shop With Confidence" trust block: free shipping, 30-day returns, lifetime warranty, Affirm financing.
Cart Digest Properties (cart_digest_items)✅ DONEApr 1, 202643 profiles updated, 3 purchasers excluded. daily_digest_updater.py
Checkout Digest Properties (checkout_digest_items)✅ DONEApr 1, 2026Written for all 43 profiles (same script run)
Cart Digest Email Template (HTML block)✅ DONEApr 1, 2026Klaviyo drag-and-drop with {% for %} loop. Working with images, prices, compare-at.
Checkout Digest Email Template 🔲 TODO— Same pattern as cart template but uses checkout_digest_items
Cart Digest Campaign (Klaviyo segment + scheduled send) 🔲 TODO— Segment: cart_digest_count > 0 + conditions (see Section 9)
Checkout Digest Campaign (Klaviyo segment + scheduled send) 🔲 TODO— Segment: checkout_digest_count > 0 + conditions (see Section 9)
Add 20-day purchaser exclusion to ALL live flows ❌ GAP— CRITICAL — GAP-1. 5-min fix per flow in Klaviyo flow builder.
Verify/fix Smart Sending for Checkout #1 and Cart #1 ❌ GAP— CRITICAL — GAP-3. Check Klaviyo flow settings → Smart Sending override.
Checkout Final Email (Day 7 service offer) 🔲 TODO— Recommended addition. Content: service offer, not discount.
Cart Final Email (Day 10 trust signals) 🔲 TODO— Recommended addition. Final cart touchpoint.
Klaviyo Thank You email (post-purchase) ❌ GAP— CRITICAL — GAP-2. Create Placed Order flow with Thank You email.
Cron job for digest script 🔲 TODO— 7:00 PM Tue/Fri. See GAP-4.
Fix UTM/collection page bug ❌ GAP— CRITICAL — GAP-5. All collection links in all emails are broken.
Verify Browse flow exit conditions 🔲 TODO— CHOKE-3: Confirm browse flow exits on cart/checkout events.
Audit existing Checkout Flow email count 🔲 TODO— CHOKE-1: How many emails in the live flow? Need to prevent overlap with digest.
Check global frequency cap setting 🔲 TODO— CHOKE-4: Klaviyo Settings → Email → Sending.

Jewelry Depot Email Flow Architecture v1.1 — April 3, 2026
Store: shop.jewelrydepot.com | Klaviyo Email Plan | AOV: $750 | 27-day sales cycle
Working document — update tracker as items are completed.
v1.1 changes: Browse track redesigned (digest-based 2-email, 7-day re-entry). Welcome duplicate fix (profile filter). 82 browse profiles updated.