Deliverable 03 · Retention (Klaviyo)

Ten flows that sell while you sleep — in French and English.

Campaigns get you reach. Flows get you revenue. They fire on intent — a browse, an abandoned cart, a first order — and convert at multiples of any broadcast. This is Cloudy's full retention engine: 10 automations, drawn as builder canvases, with fully-written bilingual email mockups in your own "Join the Wave" voice.

10Automated flows
~35%Target: email revenue from flows
3Abandonment recovery nets
FR / ENBilingual on every send
The strategy in one screen

Flows vs. campaigns — and how we keep the brand premium

Where the revenue comes from

For a store Cloudy's size, well-built flows should generate 30–40% of total email & SMS revenue — from a tiny fraction of the sends. The three abandonment nets (Browse, Cart, Checkout) plus Welcome do most of the heavy lifting; the retention flows (Post-Purchase, Winback, VIP, Replenishment) build long-term LTV.

Trigger Email Wait Conditional split SMS

Bilingual, by design (FR / EN)

Every flow branches at entry on a preferred_language property — captured by a FR/EN toggle on the signup form and Shopify locale, defaulting to French for Quebec IPs. Cleaner reporting, cleaner subject-line testing, and copy that actually sounds like Cloudy in both languages.

Every mockup below shows the EN subject + a FR variant line so either track is drop-in ready.

Discount-ladder discipline

Cloudy is premium — 460 GSM, Quebec-proud, story-led. Discounting erodes that. So the ladder only ever descends inside a single flow, never across flows. A subscriber can't stack Welcome → Cart → Winback by waiting: gating properties (last_discount_sent_at) suppress overlaps for 30 days. VIPs get access, not markdown.

0%Browse, Post-Purchase, Review, Back-in-Stock — sell on product love & social proof.
10%Soft Welcome incentive & the Cart/Checkout close — never stacked.
15%Standard floor. Deepest Winback step only.
AccessVIP perk = early drops, free ship, priority restock — no discount.
The build

All ten flows — trigger, canvas & copy

Each is a real Klaviyo builder canvas with node-level logic and bilingual email mockups in Cloudy's brand.

01

Welcome / Newsletter Signup

Soft first-order incentive · the front door of the Wave
10% first order — single-use
TriggerSubscribed to list "Newsletter" (popup, footer, checkout opt-in)
GoalConvert new subscribers to first purchase; set brand voice
AudienceNew subscribers who have not placed an order
TriggerNewsletter signupList: Newsletter
Splitpreferred_language?FR / EN branch
Wait1 day
SplitPlaced order?yes → exit to Post-Purchase
SMSLast call on 10%+2d · if consented
Personalization: Email 3 pulls a dynamic bestsellers block (Provincial Club Hoodie, Héritage Q-Zip, Casquette Rainy) from the catalog. Coupon is single-use, sets welcome_discount_sent_at, and suppresses this profile from Cart/Checkout discount steps for 30 days. SMS step skips email-only subscribers.
Mockup · Welcome Email 1 (0h)
02

Browse Abandonment

Gentle, no-discount nudge for high-intent browsers
Full price · social proof
TriggerViewed Product · no add-to-cart · no purchase
GoalRecover browsers with fabric story & reviews
AudienceKnown, subscribed profiles who viewed a product
TriggerViewed Product$30+ items
Wait4 hours
SplitAdded / purchased?yes → exit
Wait20 hours
Dynamic block = last-viewed product ({{ event.ProductName }}, image, price) + 2–3 same-category cross-sells. Suppress anyone in an active Cart/Checkout flow. Max one entry per 3 days. No discount — Browse is top-of-funnel and price this early trains discount-seeking.
03

Cart / Add-to-Cart Abandonment

Reassurance first — incentive only if needed
10% appears at Email 3 only
TriggerAdded to Cart · no purchase since
GoalRecover carts with reassurance, then a gated close
AudienceSubscribed profiles with an active cart
Mockup · Cart Email 1 (1h · no discount)
TriggerAdded to Cart
Wait1 hour
SMSQuick nudge~1d · if consented
SplitUsed Welcome 10%?yes → free-ship instead
Mockup · Cart Email 3 (Day 3 · incentive)
04

Checkout Abandonment

The highest-intent drop-off — tighter, faster cadence
Supersedes Cart flow
TriggerStarted Checkout (email captured) · no purchase
GoalSolve friction — shipping, payment, hesitation
AudienceStarted-checkout profiles, no order since
TriggerStarted Checkout
Wait30 min
SMSResume link4h · if consented
SplitDiscount in 30d?gate the close
Suppression: a profile that triggers both Cart & Checkout follows Checkout only — the deeper intent wins. Email 1 deep-links to the prefilled {{ checkout_url }}, not the cart. Email 2 names both Quebec stockists (Golf Pen-Y-Bryn, Golf La Tempête) as a pickup/trust signal for local hesitators.
Mockup · Checkout Email 1 (30 min)
05

Post-Purchase — Thank-You, Education & Cross-Sell

Reduce remorse, teach care, seed the second order
No discount · full margin
TriggerPlaced Order
GoalRetention, product care, next-item desire, community
AudienceAll purchasers · branch first-time vs. repeat
Mockup · Post-Purchase Email 1 (0h)
TriggerPlaced Order
SplitFirst order?story vs. VIP teaser
Cross-sell logic: bought a hoodie/Q-Zip → suggest Casquette Rainy, 2-pack socks, Scorebook. Bought a polo → suggest Jupe, another polo, a beanie. First-timers get the fuller brand story; repeat buyers get nudged toward VIP. Feeds the Review flow at delivery + wear window.
06

Winback — Lapsed Customers

Escalating pull; a real offer only for the deepest lapse
Ladder: 0 → 0 → 10 → 15% + free ship
TriggerSegment: no order in 120+ days (long apparel cycle)
GoalRe-activate dormant buyers, then sunset non-responders
AudiencePast purchasers, still subscribed
TriggerLapsed 120dSegment entry
SplitStill dormant?→ tag sunset_candidate
List hygiene: non-openers across all four steps get tagged sunset_candidate and dropped from regular campaign sending to protect deliverability. The ladder lives entirely inside this flow — it won't fire if the profile received a discount elsewhere in the last 30 days.
Mockup · Winback Email 4 (Day 19 · final offer)
07

Replenishment / Seasonal Re-Engagement

Apparel isn't consumable — reframed as new-season gear + new drops
Newness over discount
TriggerPurchased 90–150 days ago · entering a new season
GoalRepeat purchase timed to the Canadian golf calendar
AudiencePast purchasers mapped to the season's category
Trigger90–150d + season changeSegment
Wait4 days
Season drives the hero block: Spring/summer → polos (Tour $48, Club $72, Altitude $70), Jupe $50, Casquette Rainy $34. Fall → Héritage Q-Zip $118, Pull Breezy $98, Provincial Hoodie $120. Winter/holiday → beanies $30–32, corduroy hat $36, gift card, Scorebook $16. An owns-already filter excludes pieces already bought so "refresh" means new colours or adjacent items — not duplicates.
08

VIP / Loyalty — Top Spenders

Recognition and access, not markdown
Perks > discounts
TriggerSegment: lifetime spend ≥ $300 CAD or 3+ orders
GoalRetention through recognition & early access
AudienceTop ~5–10% of customers by value
Mockup · VIP Email 1 (0h)
TriggerVIP segmentis_vip = true
Wait30 days
SplitNew order?→ surprise & delight
No standing discount. Perks = early access, guaranteed free shipping, priority Back-in-Stock alerts, and occasional surprise-and-delight (a free 2-pack socks or Scorebook added to a future order — a gift, not a markdown). is_vip also prioritizes these profiles in the Back-in-Stock flow.
09

Review / UGC Request

Grow beyond the current on-site reviews; harvest content
#JoinTheWave
TriggerOrder Fulfilled + delay for delivery & wear-in
GoalMore reviews, UGC for site/ads, private issue-catching
AudienceRecent purchasers · one entry per order
TriggerOrder Fulfilled
Wait10 days
SplitRating 4–5★?public vs. private service
Low-rating branch protects the brand: 1–3★ routes to a private "let us make it right" service email, never a public push. 4–5★ gets the review + UGC ask (#JoinTheWave / #RejoinsLaVague). Modest incentive (10%-next-order for a review, or a monthly gift-card draw), gated so it can't stack with active Welcome/Cart discounts.
10

Back-in-Stock

Convert waitlisters fast — VIPs first
No discount · demand exists
TriggerBack in Stock event on a subscribed variant
GoalConvert the waitlist with honest scarcity
AudienceProfiles subscribed to an out-of-stock variant
Mockup · Back-in-Stock Email 1 (2h; VIPs at 0h)
TriggerBack in Stockvariant restocked
Splitis_vip?VIP → immediate
SMS+EmailVIP priority alert0h · 2h head start
Wait1 day
VIP priority reinforces Flow 08 — is_vip profiles get a ~2h exclusive window before the general list. Dynamic variant block shows the exact colour/size restocked, deep-linked to the PDP. Scarcity language is honest — "limited restock" only when true. Subscription expires on purchase.
Before you build

Assumptions & guardrails

Free-shipping threshold: $75 CADEvery "free shipping over $75" line is built to a confirmed $75 CAD threshold. If this changes, it's a single find-and-replace across the flows.
Review counts & thresholds are illustrativeReview numbers, the VIP spend tier ($300 / 3+ orders) and discount timings shown here are demo placeholders — we'll calibrate them to Cloudy's real customer data at build.
CASL-compliant by defaultExpress consent captured at signup, sender identified, working unsubscribe on every email, and SMS consent tracked separately from email — as Canadian anti-spam law requires.

This engine is ready to build in your Klaviyo.

Book a 20-minute intro call and we'll walk you through the flows, the bilingual copy, and where the fastest revenue wins are. No slide deck — just the plan.

Book the intro call →

jim@sliceofthepiemarketing.com · (503) 539-7059