๐ŸŒฟ Self-initiated Klaviyo portfolio project โ€” built after completing the Klaviyo Practitioner certification

AAVYA ร— Klaviyo

Building a DTC lifecycle marketing system from customer data to automated customer journeys โ€” for AAVYA, a fictional botanical skincare brand created specifically to demonstrate hands-on Klaviyo execution.

Klaviyo Lifecycle Marketing CRM Email Marketing Segmentation Automation DTC Self-Initiated Project

This case study walks through a complete Klaviyo build for AAVYA โ€” starting with the customer data foundation, moving through audience segmentation and lifecycle flow architecture, into email design, personalization, signup capture, campaigns, A/B testing, and finishing at QA and analytics. Every screen shown is a real screenshot from the Klaviyo account this project was built in, not a mockup.

Project
AAVYA Lifecycle Marketing System
Platform
Klaviyo
Brand
AAVYA โ€” Botanical Skincare
Project Type
Self-Initiated Portfolio
Status
Portfolio Implementation
Objective
Demonstrate Klaviyo execution across the customer lifecycle
The Problem

Sending emails isn't the hard part. Knowing who to send what, and when, is.

Most DTC brands can turn on a welcome email in an afternoon. The harder problem โ€” the one this project is actually about โ€” is building the structure underneath it: who is this customer, where are they in their relationship with the brand, what have they shown interest in, what did they just do, and what should happen next as a result.

Without a system

Every customer gets the same generic campaign, regardless of whether they're a first-time browser or a repeat buyer. Nothing responds to behaviour. Communication is a broadcast, not a conversation.

With a lifecycle system

Data structures the audience, segments turn that data into meaning, and flows respond to behaviour automatically โ€” a browser gets a nudge, a first-time customer gets onboarded, a high-value customer gets recognised. This project builds that structure inside Klaviyo, end to end.

Project Objectives

Ten things this build sets out to prove

01

Build the customer data foundation

Import and structure profile data with the properties a lifecycle system needs.

02

Create meaningful audience segments

Turn raw customer data into segments that actually change what a person receives.

03

Design lifecycle automation

Map ten flows to the moments in a customer's journey that actually warrant one.

04

Create reusable email communication

Build a consistent AAVYA visual system that scales across every touchpoint.

05

Implement personalization

Use profile and behavioural data inside emails, with safe fallback handling.

06

Demonstrate conditional logic

Branch a flow based on what a customer actually does, not just time delays.

07

Demonstrate A/B testing

Build and structure a subject-line test the way a live campaign would use one.

08

Create campaign structure

Show the difference between automated flows and one-time targeted sends.

09

Define a reporting framework

Lay out what would be monitored once this system runs on real traffic.

10

QA the complete system

Check triggers, filters, personalization, and content before anything ships.

System Overview

One connected system, not a set of separate features

Klaviyo's building blocks only work as a lifecycle system when they're wired together deliberately. This is the shape of the AAVYA build: customer data feeds lists and segments, segments and events trigger flows, flows and campaigns carry personalized email, and analytics and QA close the loop.

Customer Data
โ†“
Lists
โ†“
Segments
โ†“
Signup Form
Flows
โ†“
Personalized Email
โ†“
Campaigns
A/B Testing
โ†“
Analytics
QA
Customer Data Foundation

Every segment in this build starts from a structured profile

The AAVYA account runs on a portfolio/demo dataset of 50 imported profiles. These aren't verified real subscribers โ€” they exist to give the lifecycle system real data to segment against, rather than building segments against empty lists. Each profile carries the properties a skincare DTC brand would actually use: name, location, signup source, product interest, customer status, order history, and engagement.

AAVYA Audience & Segment Overview dashboard
Audience & Segment Overview
50 total email subscribers, 22 active customer segments, and 10 lifecycle flows created โ€” the foundation everything else in this build sits on top of.

The properties structuring this dataset: First Name, Last Name, City, Gender, Age, Signup Source, Product Interest, Customer Status, Total Orders, Total Spent, Last Purchase Date, and Email Engagement. Customer Status is the property that powers most of the lifecycle segmentation shown in the next section.

Audience Architecture

List โ†’ Segment โ†’ Flow

A list is the core database โ€” everyone who's opted in. A segment is dynamic logic layered on top of that data. A flow is the automated journey a segment or event can trigger. Getting this layering right is what separates a lifecycle system from a spreadsheet of email addresses.

Klaviyo Lists & Segments view showing all AAVYA segments
Lists & Segments โ€” full account view
The complete segment library inside Klaviyo: the AAVYA โ€” Subscribers list, lifecycle segments (Browsers, High Value, Repeat, First-Time), and every product-interest segment, each with live member counts and creation timestamps.
Segment list with product interest and lifecycle segments
Product interest + lifecycle segments
Acne Spot Treatment, Niacinamide Serum, Hyaluronic Moisturizer, Foaming Cleanser, Body Butter, Under-Eye, Lip Care through to At Risk, High Value, Repeat, and First-Time Customers โ€” each backed by a real member count.
Customer Lifecycle Segments distribution chart
Customer Lifecycle Segments โ€” distribution
28% High Value, 24% Repeat, 20% First-Time, 12% Browsers, 8% Inactive, 8% At Risk. A deliberately balanced dataset so every lifecycle stage has something to segment.
Product Interest Segments chart
Product Interest Segmentation
Rose Clay Face Mask leads at 16%, followed by Exfoliation Toner and Lip Care at 12% each โ€” this is what the Product Education flow and the Vitamin C / SPF 50 campaigns target against.
On "Inactive Customers": this segment is a straightforward filter on the Customer Status property, not a behavioural churn-prediction model. It's a portfolio-level audience definition โ€” worth stating plainly rather than implying more sophistication than the segment actually has.
Lifecycle Architecture

Ten flows, mapped to ten real moments in the customer journey

Rather than building isolated automations, each flow in this system answers a specific question: what does this person need to hear right now, given what stage they're at and what they just did?

Journey stage
Flow
Trigger
01
Subscriber
Welcome Series
List signup
Built
02
Browser
Browse Abandonment
Viewed Product event
Designed
03
Checkout
Cart Abandonment
Checkout Started event
Built
04
Customer
Post-Purchase
Placed Order event
Built
05
First-Time Customer
First-Time Customer Journey
Segment entry
Designed
06
Repeat Customer
Loyalty Journey
Segment entry
Designed
07
High-Value Customer
VIP Journey
Segment entry
Designed
08
Inactive Customer
Winback
Segment entry
Designed
09
Product Interest
Product Education
Segment entry
Designed
10
Engaged Audience
Re-Engagement
Segment entry
Built

Built = flow canvas screenshotted below with trigger, timing and logic. Designed = audience segment exists and is evidenced in Klaviyo (see above), flow architecture is mapped in Section 08, but a flow-canvas screenshot wasn't captured for this portfolio โ€” noted honestly rather than implied.

Flow System

How each flow actually works

Trigger, audience, purpose and the key logic behind each of the ten flows โ€” the mechanics, not just the names.

Flow
Trigger
Key logic
1
Welcome Series
AAVYA โ€” Subscribers
Added to list
2 emails, 4-day gap, product-interest lookup tag
2
Cart Abandonment
Checkout, no order
Checkout Started
3h wait โ†’ email โ†’ 20h wait โ†’ conditional split on Placed Order
3
Browse Abandonment
AAVYA โ€” Browsers
Viewed Product
2h wait โ†’ email โ†’ 20h wait โ†’ conditional split on purchase
4
Post-Purchase
New customers
Placed Order
4-email arc: Thank You โ†’ Product Education โ†’ Review Request โ†’ Discovery
5
Repeat Customer / Loyalty
AAVYA โ€” Repeat Customers
Segment entry
90-day re-entry ยท Appreciation โ†’ Early Access โ†’ Discovery
6
Winback
AAVYA โ€” Inactive Customers
Segment entry
Conditional split ยท Email 01 โ†’ split โ†’ Email 02 โ†’ Email 03
7
Product Education
Vitamin C Serum interest
Segment entry
Education โ†’ Routine โ†’ Product Discovery
8
Re-Engagement
AAVYA โ€” Engaged 90 Days
Segment entry
7-day wait โ†’ conditional split on Has Opened Email
9
High-Value Customer
AAVYA โ€” High Value Customers
Segment entry
Appreciation โ†’ Early Access โ†’ Product Discovery
10
First-Time Customer
AAVYA โ€” First-Time Customers
Segment entry
Thank You โ†’ Routine Guide โ†’ Discovery
Flow Deep-Dive ยท 01

Welcome Series

Triggered the moment someone is added to AAVYA โ€” Email Subscribers. Two emails, four days apart: an immediate welcome, then a product-discovery follow-up that personalizes around whatever product interest the profile has on file.

Trigger: Added to AAVYA โ€” Email Subscribers
โ†“
Welcome Email 01
โ†“ wait 4 days
Product Discovery Email 02
โ†“
End
Welcome Series flow canvas in Klaviyo
Full flow canvas
Trigger, Day 0 send, a 4-day wait, and the Day 4 follow-up โ€” built with Smart Sending enabled on the second email to avoid over-messaging.
Welcome Email 01 details panel
Email details & status
Email name, Draft status, and performance panel โ€” showing this flow was built and QA'd but deliberately left in draft rather than turned on for live sending.
Klaviyo flow preview with sample profiles
Preview flow โ€” sample profiles
Klaviyo's flow preview against real imported profiles, confirming each one correctly enters the flow before it goes live.
Welcome flow template preview
Template preview, in-flow
The rendered email template as seen from inside the flow builder, confirming the design carries through correctly.
This flow, like every flow in this build, remains in Draft rather than Active โ€” see Section 26 for why that distinction matters.
Flow Deep-Dive ยท 02

Cart Abandonment

Triggered by the Checkout Started event, restricted to AAVYA subscribers, with a 30-day re-entry window. The part that actually demonstrates Klaviyo logic: a conditional split three hours in, checking whether the person has placed an order before deciding whether they get a second nudge.

Trigger: Checkout Started
โ†“ wait 3 hours
Cart Abandonment Email 01 โ€” "You left something behind"
โ†“ wait 20 hours
Split #1 โ€” Has Placed Order at least once since starting?
Yes โ†’ End
No โ†’ Cart Abandonment Email 02 โ€” "Still thinking about your AAVYA picks?"
AAVYA Cart Abandonment Flow full canvas
Full flow, Actions panel visible
The complete Cart Abandonment Flow with the Klaviyo Actions panel open โ€” Email, Time delay, and Split are the building blocks used throughout this project.
Cart Abandonment flow with both split paths built out
Both split paths resolved
"Everyone else" (no order placed) routes to Cart Abandonment Email 02, while "Path #1" (order already placed) ends the flow โ€” the conditional logic that keeps a customer from being nudged to buy something they've already bought.
Flow Deep-Dive ยท 03

Post-Purchase

Triggered by Placed Order. Four emails spread across 34 days, moving a new customer from a simple thank-you through product education, a review request, and a final discovery nudge โ€” each timed to when that message is actually useful, not just evenly spaced.

POST-PURCHASE flow full canvas in Klaviyo
Full POST-PURCHASE canvas
Placed Order โ†’ wait 1 day โ†’ Post-Purchase Thank You (Day 1) โ†’ wait 5 days โ†’ Product Education (Day 6) โ†’ wait 14 days โ†’ Review Request (Day 20) โ†’ wait 14 days โ†’ Post-Purchase Discovery (Day 34) โ†’ End.

The spacing is deliberate: a Day 1 thank-you feels immediate, Day 6 education gives the customer time to actually start using the product before being taught more about it, a Day 20 review request lands after they've had a real skincare routine's worth of experience, and Day 34 discovery reopens the door to a second purchase once the first product is roughly due for a refill.

Flow Deep-Dive ยท 04

Re-Engagement โ€” 90 Days

Triggered when someone is added to AAVYA โ€” Engaged 90 Days. A second conditional split, this time checking email engagement rather than purchase behaviour โ€” the same Split building block, applied to a different signal.

RE-ENGAGEMENT-90 DAYS flow canvas in Klaviyo
RE-ENGAGEMENT-90 DAYS canvas
Re-Engagement Email 01 ("Still interested in AAVYA?") โ†’ 7-day wait โ†’ Split on "Has Opened Email at least once since starting" โ†’ engaged profiles end the flow, unengaged ones receive Email 02 ("Should we keep sending you AAVYA updates?").
Being direct about the data: the imported demo profiles don't carry real historical Klaviyo engagement events, so the segment this flow triggers from currently shows 0 members. The flow demonstrates the intended engagement-based logic correctly โ€” it isn't a claim of live engagement data. See the Analytics section for the full picture on this.
Additional Flow Architecture

The remaining six flows

Browse Abandonment, Repeat/Loyalty, Winback, Product Education, High-Value, and First-Time Customer are all mapped in the flow system table above, and every one of their trigger audiences is a real, evidenced segment in this account (see Section 06). What's honestly missing from this specific evidence set is a flow-canvas screenshot for each โ€” so rather than imply more than was captured, here's what each is built on and what it's designed to do.

Browse Abandonment

Trigger: Viewed Product. 2-hour wait โ†’ email โ†’ 20-hour wait โ†’ conditional split on purchase, mirroring Cart Abandonment's logic. Klaviyo needs ecommerce/Shopify event integration for the "Viewed Product" trigger to fire live โ€” that integration wasn't completed in this portfolio, so this is architecture documentation rather than a claimed live build.

Repeat Customer / Loyalty

Trigger: AAVYA โ€” Repeat Customers (12 members, evidenced in Section 06). 90-day re-entry. Appreciation โ†’ Early Access โ†’ Product Discovery โ€” rewarding a second or third purchase without waiting for a high-value threshold.

Winback

Trigger: AAVYA โ€” Inactive Customers (4 members, evidenced in Section 06). Email 01 โ†’ conditional split โ†’ Email 02 โ†’ Email 03, escalating gently rather than assuming the relationship is over after one message.

Product Education โ€” Vitamin C Serum

Trigger: AAVYA โ€” Product Interest: Vitamin C Serum (4 members). Education โ†’ Routine โ†’ Product Discovery. This is the one flow in the group with real send-level proof: the AAVYA โ€” Vitamin C Routine campaign in Section 22 sent to this exact segment.

High-Value Customer

Trigger: AAVYA โ€” High Value Customers (14 members, the largest lifecycle segment). Appreciation โ†’ Early Access โ†’ Product Discovery, recognising the customers a real DTC brand would least want to lose.

First-Time Customer

Trigger: AAVYA โ€” First-Time Customers (10 members). Thank You โ†’ Routine Guide โ†’ Discovery โ€” a lighter-weight onboarding arc distinct from the full Post-Purchase flow, aimed at converting a first purchase into a habit.

Email System

One visual language, reused across every touchpoint

Every AAVYA email shares the same design system: warm cream backgrounds, deep botanical green typography, minimal product photography, and a single consistent CTA style. Reusing this system โ€” rather than designing each email from scratch โ€” is what made a 10-flow, 3-campaign build achievable without the brand starting to feel inconsistent by email seven.

AAVYA Vitamin C Serum brand creative
AAVYA Vitamin C Serum โ€” brand creative
The product photography and typographic system that the Vitamin C Routine campaign and Product Education flow content are built around.
AAVYA SPF 50 Sunscreen brand creative
AAVYA SPF 50 Sunscreen โ€” brand creative
Same visual system applied to a second product line, reused directly in the SPF 50 Everyday Protection campaign in Section 22.
Personalization

Dynamic content, with a fallback for when the data isn't there

Two levels of personalization are built into this system: a simple first-name merge tag with a safe default, and a more advanced lookup tag that pulls a profile's Product Interest property directly into email copy.

first_name personalization tag in Klaviyo email builder
First-name tag, with fallback
{{ first_name|default:'there' }} โ€” if a profile has no first name on file, the email still reads naturally instead of showing a blank or breaking.
Rendered personalized email preview
Rendered against a real profile
Inbox-test preview showing the tag correctly resolving to "Hi CHITRANGADA," confirming the merge tag works against real profile data, not just in the editor.
person lookup Product Interest personalization tag
Advanced lookup tag
{{ person|lookup:'Product Interest'|default:'AAVYA skincare' }} โ€” pulling a custom profile property into the email body, with its own independent fallback.
Rendered email with product interest personalization
Rendered result
"You're exploring AAVYA skincare โ€” discover products designed to fit your routine" โ€” the lookup tag resolving into natural copy inside the live Welcome flow email.
Signup Form

Where the whole system begins

The AAVYA โ€” Welcome Gift Signup Form is the entry point into everything else in this build: a submission adds the profile to AAVYA โ€” Email Subscribers, which is the exact trigger the Welcome Series listens for.

AAVYA Welcome Gift Signup Form builder
Email opt-in step
"A little something for your skin" โ€” first name and email fields, desktop and mobile previews shown side by side in the Klaviyo form builder.
Signup form success step
Success step
"Welcome to AAVYA โ€” You're officially on the list" โ€” confirms submission and sets the expectation that a confirmation email is on its way.
Signup Form
โ†“
AAVYA โ€” Email Subscribers List
โ†“
Welcome Series Flow
Campaigns

Where flows automate, campaigns target

Flows are the automated, always-on lifecycle communication. Campaigns are one-time, deliberately targeted sends โ€” the tool for "everyone interested in Vitamin C gets this specific email today," not an ongoing journey. Three campaigns were built, each targeting a different real segment from Section 06.

Klaviyo campaigns list showing all three AAVYA campaigns
Campaigns โ€” list view
Build Your Simple Routine, SPF 50 Everyday Protection, and Vitamin C Routine โ€” all Draft, all scheduled for Sep 22, 2026, each sending to a distinct segment.
AAVYA Vitamin C Routine campaign review screen
Vitamin C Routine
4 estimated recipients โ†’ AAVYA โ€” Product Interest: Vitamin C Serum, Smart Sending enabled to skip anyone messaged in the last 16 hours.
AAVYA SPF 50 Everyday Protection campaign review screen
SPF 50 Everyday Protection
5 estimated recipients โ†’ AAVYA โ€” Product Interest: SPF 50 Sunscreen. "Sun protection that fits your routine."
AAVYA Build Your Simple Routine campaign review screen
Build Your Simple Routine
10 estimated recipients โ†’ the full AAVYA โ€” Subscribers list, rather than a narrow interest segment โ€” a broad brand campaign vs. the two targeted product sends above.
A/B Testing

Testing framework, not a results claim

The Vitamin C Routine campaign was built with two subject-line variations โ€” a straightforward testing setup, not a statistically significant result. With 4 recipients on this segment, no meaningful open-rate or click-rate comparison is possible, and this project doesn't claim one.

Vitamin C Routine Variation A subject line review
Variation A
Subject: {{ first_name|default:'Your' }}, discover your AAVYA routine ๐ŸŒฟ โ€” a direct, benefit-led line.
Vitamin C Routine Variation B subject line review
Variation B
Subject: {{ first_name|default:'Your' }}, A brighter routine starts here ๐ŸŠ๐ŸŒฟ โ€” a more aspirational, emoji-forward line, testing tone rather than just wording.
Klaviyo's own QA flagged something real here: both variations show a "1 warning" โ€” an unresolved Unsubscribe link check. Rather than crop that out, it's left in on purpose: it's honest evidence that Klaviyo's built-in review step catches compliance gaps before a send, and that this campaign was correctly never sent while that warning stood open.
Analytics & Reporting

What this system would measure โ€” and why the numbers are mostly zero right now

No performance results are fabricated anywhere in this case study. What's shown instead is the measurement framework this system is built to support, plus the honest current state of a Klaviyo account that was built and QA'd but deliberately never turned on for live sending.

AAVYA Lifecycle Flow Audience Map โ€” flow trigger audience counts
Lifecycle Flow Audience Map
Current profile counts against each flow's trigger audience. Event-triggered flows (Cart Abandonment, Browse Abandonment, Post-Purchase) show 0 because no live ecommerce events have been generated for this demo dataset โ€” not because the flows don't work.
Flow list showing Welcome Series draft status with 0 conversion
Flow status โ€” Draft, 0 conversion
Klaviyo's own flow list confirms the Welcome Series is still Draft with 0.0% conversion โ€” exactly what a built-but-never-activated flow should show, and consistent evidence rather than a number to explain away.

What would actually be tracked once this runs on real traffic

Campaign metrics

Delivered, Open Rate, Click Rate, Conversion, Revenue, Unsubscribe

Flow metrics

Recipients, Open, Click, Conversion, Revenue per Recipient

Form metrics

Submissions, Conversion Rate

Audience metrics

Segment size, growth rate over time

QA & Implementation Checklist

Building a flow isn't the same as shipping one

Every flow and campaign in this project went through the same checklist before being considered done โ€” which is exactly how the unsubscribe-link warning in Section 23 got caught rather than shipped.

Trigger correctly configured
Trigger filters set
Profile filters set
Re-entry settings checked
Wait periods reviewed
Conditional splits tested
Personalization checked
Fallback values confirmed
CTA links checked
Email content proofed
Footer reviewed
Unsubscribe link verified
Mobile rendering checked
Audience eligibility confirmed
Draft/live status checked
Implementation Status

Built and demonstrated vs. live and in production

This is the section that matters most for judging what this project actually proves. Being clear about the difference between "built" and "live" is more valuable than making the portfolio look more finished than it is.

Built & demonstrated

  • Customer data foundation โ€” 50 profiles, full property set
  • 22 audience segments, all with real member counts
  • Signup form, opt-in through success step
  • 4 flow canvases with real trigger/timing/logic โ€” Welcome, Cart Abandonment, Post-Purchase, Re-Engagement
  • 6 additional flow architectures, backed by real segments
  • Personalization โ€” merge tags and lookup tags, with fallbacks
  • Conditional split logic, in two different flows
  • 3 campaigns, correctly targeted to segments
  • A/B test structure with two subject-line variations
  • QA process โ€” including a caught, unresolved warning

Portfolio / demo limitations

  • No production Shopify or ecommerce integration โ€” event-triggered flows are designed, not live-fired
  • Imported profiles are demo data, not verified opted-in customers
  • No historical Klaviyo engagement events on imported profiles
  • No real revenue, open-rate, or click-rate results โ€” none are claimed anywhere in this document
  • Every flow and campaign remains in Draft by design, not by accident
  • 6 of 10 flows have evidenced segments but no flow-canvas screenshot in this set
Final System

The complete AAVYA account, in one tree

AAVYA
  • Customer Data โ€” 50 profiles, 12 properties
  • List โ€” AAVYA โ€” Email Subscribers
  • Segments โ€” 22 total (lifecycle + product interest)
  • Signup Form โ€” Welcome Gift, opt-in โ†’ success
  • Lifecycle Flows
    • Welcome
    • Browse Abandonment
    • Cart Abandonment
    • Post-Purchase
    • Loyalty
    • Winback
    • Product Education
    • Re-Engagement
    • High Value
    • First-Time Customer
  • Campaigns โ€” Vitamin C Routine ยท SPF 50 Everyday Protection ยท Build Your Simple Routine
  • Personalization โ€” merge tags + property lookup tags, both with fallbacks
  • Testing โ€” A/B subject-line variation, QA'd pre-send
  • Analytics + QA โ€” reporting framework + 15-point checklist
What This Project Demonstrates

Three layers of competency

Klaviyo platform execution

Lists ยท Profiles ยท Segments
Signup Forms ยท Flows ยท Campaigns
Templates ยท Personalization
Conditional Splits ยท A/B Testing
Analytics ยท QA

Lifecycle marketing

Acquisition ยท Engagement
Conversion ยท Retention
Winback ยท Customer Loyalty

Strategic thinking

Audience architecture
Lifecycle mapping
Message relevance
Customer journey design
Measurement framework

Key Learnings

Six things this build actually taught

01Lifecycle systems outperform isolated campaigns โ€” because they respond to the customer instead of broadcasting at them.
02Segmentation is what determines message relevance. Without it, personalization has nothing real to personalize against.
03Flow logic matters as much as email creative โ€” the conditional split in Cart Abandonment does more work than the copy around it.
04Personalization is only as good as its fallback. A merge tag with no default is a bug waiting for an incomplete profile.
05QA is part of lifecycle execution, not a separate step โ€” the unresolved unsubscribe-link warning is proof the process works.
06Klaviyo is most powerful when audience, behaviour, and communication are connected โ€” not when any one of the three is treated in isolation.

From customer data โ†’ to connected lifecycle journeys.

AAVYA's Klaviyo environment demonstrates how customer data, audience segmentation, automated flows, targeted campaigns, personalization, testing, and measurement can work together as one lifecycle marketing system.

Designed as a portfolio implementation to demonstrate practical Klaviyo workflow execution, built after completing the Klaviyo Practitioner certification.