How to Experience this portfolio
How to experience
this portfolio
The brand is fictional. The supplements don't exist. But the Shopify architecture, Klaviyo flows, segmentation logic, and lifecycle copy behind all of it are real work, built to demonstrate what I can actually do.
This page tells you how to trigger the system so you can see it in action, not just read about it.
Visit the homepage. A pop-up will appear after a few seconds. Subscribe with a real email address you can check.
What follows is a 3-email welcome series spaced over 7 days. The first email introduces the brand, the second showcases the product range, and if you place an order at that point the series stops there. If you don't, a third email arrives with a 15% discount code. The timing and conditional logic are intentional: they're part of what's being demonstrated.
The pop-up also includes three content preference checkboxes (Product Updates, Wellness Commentary, Marketing Strategy Breakdowns). Checking any of them writes a boolean property to your Klaviyo profile and triggers the corresponding newsletter preference flow -- making this the only entry point that can fire up to four flows simultaneously.
If you never open or click, you'll eventually enter a sunset flow designed to clean unengaged subscribers from the list.
Scroll to the bottom of any page. The footer subscribe field is always available.
This triggers the same welcome series as the pop-up, but in a real store these two subscriber groups behave differently. Someone who scrolled past a pop-up and still subscribed via the footer is a meaningfully more intentional subscriber. The architecture treats them the same; the segmentation could separate them.
Find the quiz on the homepage. It asks a few questions about your (fictional) wellness goals and returns a product recommendation. Complete it with a real email address.
Under the hood: your answers update custom profile properties in Klaviyo via the Typeform integration, which then personalise the follow-up email sequence. This is a separate flow from the welcome series. Complete the quiz after subscribing to trigger both.
Add any product to your cart and go through checkout. At the payment step, select bank transfer as it's the only available method. No payment details are required and nothing should be transferred. The order confirmation email explains this.
I process orders on the back end to keep the post-purchase sequence running as it would in a live store. Nothing ships, because nothing exists.
This path unlocks the largest portion of the Klaviyo architecture, flows that can only fire from a real order event.
If you're already subscribed, visit the preference center via the link in any email footer. From there you can select which content tracks you want to receive: Product Updates, Wellness Commentary, or Marketing Strategy Breakdowns.
Each selection writes a boolean property to your Klaviyo profile (preference_product_updates, preference_wellness_content, preference_marketing_insights). When that property flips to true, the corresponding dynamic segment updates -- and the segment membership triggers the relevant preference flow.
This is distinct from the pop-up entry point in one important way: it targets existing subscribers actively managing what they receive, rather than new subscribers at acquisition. The trigger is also different -- "Added to segment" rather than "Form submitted" -- which means it fires every time the preference is updated, not just the first time.
Flow documentation
14 flows across 4 categories. Every trigger, split, timing, and strategic rationale. Click any flow to expand.
| # | Demo timing | Real-world timing | Condition | |
|---|---|---|---|---|
| 1 | Brand introduction | Immediately | Immediately | Always sends |
| 2 | Product showcase | +5 min | Day 2 | Always sends |
| 3 | 15% discount (PLACEBO15) | +5 min | Day 7 | Only if no purchase made |
A purchase event before Email 3 exits the subscriber from the flow. The discount is withheld from buyers — standard suppression logic to avoid discounting customers who already converted at full price.
The timing hold before the discount is deliberate. Email 1 builds trust, Email 2 educates and surfaces purchase intent, Email 3 applies discount pressure only to non-converters. Showing the discount too early trains subscribers to wait for it — the 2-email hold is a standard DTC pattern to protect margin while still recovering hesitant buyers.
Demo vs. real timing: Demo timings are compressed to 5/5 minutes so recruiters can experience the full sequence without waiting days. Each email footer explains the real-world timing rationale explicitly.
quiz_result
Zero-party data collection at its most direct. The quiz explicitly asks and writes
the answer to the profile rather than inferring intent from behaviour. The 2-minute
wait before the split is intentional — it gives the Typeform webhook time to write
the quiz_result property before the conditional split evaluates,
avoiding a race condition where the split fires before the data arrives.
Copywriting rationale: Each branch email opens with the subscriber's specific result ("Your quiz results: ..."). The personalisation is surfaced explicitly rather than hidden — which doubles as a live demonstration of how personalisation logic works for any recruiter reading it.
Requires Klaviyo JS snippet active on the storefront AND the visitor must be an identified subscriber (cookied from a previous email click). Anonymous browsers cannot be targeted — this is one of the most common implementation gaps in real stores and worth understanding before building this flow.
Demonstrates onsite tracking integration and mid-funnel behaviour targeting. The 5-minute demo timing is compressed — in a live store, 1–3 hours allows genuine browse sessions to complete before triggering and avoids interrupting active shoppers.
| # | Focus | Demo timing | Real-world timing |
|---|---|---|---|
| 1 | Soft reminder | 5 min after | 1h after |
| 2 | Mild urgency — product framing | +5 min | +24h |
| 3 | Final nudge — 5% discount (PLACEBO5) | +10 min | +72h |
Three-email checkout recovery is DTC standard. The discount is held until Email 3 deliberately — leading with a discount in Email 1 trains customers to abandon intentionally to receive one. Email 3's 5% code targets pricing-aware customers who needed a final nudge rather than a genuine reminder.
| # | Demo | Real-world | |
|---|---|---|---|
| 1 | New Customer Thank You | Immediately | Immediately |
| 2 | Usage tips (category-specific) | +1h | Day 3 |
| 3 | 2nd purchase incentive — 5% off | +2h | Day 7 |
| # | Demo | Real-world | |
|---|---|---|---|
| 1 | Thank You — returning customer | Immediately | Immediately |
| 2 | Cross-category recommendations (category split) | +1h | Day 5 |
| 3 | Review request | +1h 10min | Day 10 |
| # | Demo | Real-world | |
|---|---|---|---|
| 1 | Thank You — loyal customer | Immediately | Immediately |
| 2 | Bundle recommendations + loyalty discount | +10 min | +2h |
| 3 | Loyal customer review request | +1h 10min | Day 10 |
The most architecturally complex flow in the system. It demonstrates three capabilities simultaneously: order-count segmentation (treating new, returning, and loyal customers differently), product-category personalisation (educational content matched to what was purchased), and progressive incentive logic (5% for 2nd-order conversion, bundle discount for loyal customers). The review request is withheld until the 2nd order — a customer with two purchases has a more informed opinion and higher likelihood of leaving a meaningful review.
30-day replenishment cadence maps to the standard supply cycle for most supplement products. This is consistently one of the highest-ROI post-purchase emails in DTC — it targets customers at the exact moment their supply runs out, before they've had time to switch to a competitor.
Most brands send one generic "thanks for your review" email regardless of rating. Splitting by rating and responding contextually — especially with service recovery for negative reviews — demonstrates that the retention strategy extends beyond the purchase moment. A 1-star review is an opportunity, not just a metric.
Back in Stock flows capture the highest-intent customers in the system — they have already self-identified as wanting a specific product. Conversion rates on these emails are typically the highest in any flow library because the persuasion work is already done. The only job of the email is to remove friction between intent and purchase.
| # | Timing | |
|---|---|---|
| 1 | Day 0 | Welcome — confirms recurring order, sets expectations |
| 2 | Day 3 | What to expect — usage tips and fictional product benefits |
| 3 | Day 7 | Subscription management — how to pause, skip, or cancel |
| # | Timing | |
|---|---|---|
| 1 | Before renewal | Upcoming renewal reminder — what's coming, how to manage |
| 2 | On renewal | Renewal confirmation — order confirmed, nothing will ship |
| # | Demo | Real-world | Condition | |
|---|---|---|---|---|
| 1 | "It's been a while" | 3 days after order | 75 days after order | No new order |
| — | Wait + recheck | 1 day | 15 days | Check for new order |
| 2 | "Last attempt" | 1 day after Email 1 | 90 days after order | Still no new order |
The 75/90-day cadence maps to the replenishment cycle of most supplement products. Day 75 catches customers whose 60-day supply has run out. Day 90 is the accepted last-ditch effort before moving customers to passive retention (quarterly newsletters or suppression). The 15-day gap between attempts is deliberate — enough time to feel like a separate touchpoint rather than a follow-up.
Both emails are written with full transparency about the mechanics being demonstrated. Each includes a P.S. that explains the strategic rationale behind the timing — which serves double duty as portfolio documentation embedded directly in the email itself.
| Step | Timing | Action |
|---|---|---|
| Email 1 | Day 1 | "Still want to hear from us?" — offers preference update link |
| Wait | 3 days | — |
| Email 2 | Day 4 | "We tried." — final warning, last chance to stay subscribed |
| Wait | 5 days | — |
| Property update | Day 9 | Sets Unengaged = true if no action taken |
Opens Email 1, clicks any link, or updates preferences → exits flow, remains subscribed.
Unengaged = true does in the
systemSetting this property is the foundation for downstream suppression logic. The
intended use is to exclude profiles where Unengaged = true from all
marketing flow filters and campaign segments — ensuring suppressed contacts never
receive sends even if they remain technically subscribed. Full automated profile
suppression in Klaviyo requires API implementation beyond the native flow builder.
In the current implementation, the property is set and available as a filter;
API-level suppression is the documented next step. This approach preserves the
profile and its data for list health reporting while stopping all marketing sends.
List hygiene is one of the most overlooked and highest-impact aspects of email marketing. Sending to chronically unengaged subscribers damages sender reputation and inbox placement for the entire list. The Sunset flow gives unengaged subscribers two clear opportunities to self-select out or reduce frequency before suppression — more respectful and more effective than hard-unsubscribing without notice. Email 1's preference center link is particularly important: it allows subscribers to reduce frequency rather than unsubscribe entirely, recovering people who want the content but feel overwhelmed by volume.
preference_product_updates = true —
new launches, offers, store updates
preference_wellness_content = true —
brand commentary on wellness culture
preference_marketing_insights = true
— CRM strategy and retention marketing breakdowns
Segment-based triggers future-proof the flows to capture preference center updates — not just the initial form submission. If a subscriber updates their preferences 6 months later, the flow fires again. A form submission trigger would only fire once, missing all future updates.
Preference-based segmentation is the most direct form of consent-based personalisation. The three tracks reflect three distinct audiences visiting the store: potential customers, wellness readers, and marketing professionals evaluating the portfolio. The Marketing Strategy Insights track is particularly intentional — it acknowledges that a significant portion of this store's audience is there to evaluate the work, and gives them a content track built specifically for that purpose.
A note on how this was built
It's worth being transparent about that, partly because honesty is the whole point of this project, and partly because knowing how to work effectively with AI tools is increasingly part of the job.
If you're evaluating this portfolio, you're also seeing what a one-person project can look like when that person knows how to use the tools available to them.