The complete guide · Klaviyo

Klaviyo implementation: the complete guide

Everything we actually do when implementing Klaviyo for an ecommerce or DTC brand, written out in full. How the lifecycle flows work, what segmentation strategy actually means in Klaviyo, how to connect Shopify without data gaps, how to protect and recover deliverability, how to run A/B tests that produce a decision rather than noise, and how to migrate from another ESP without burning the list. No fluff, nothing held back.

A working reference. When you want it applied to your account, start with a free lifecycle audit.

This guide is written for people who want to understand what a properly implemented Klaviyo account looks like, not just how to click through the setup wizard. If you have an account already, use it to diagnose what is missing. If you are starting from scratch, use it as the spec for what to build. Either way, read through the flow section first: that is where most of the revenue lives, and most accounts do not have it.

How Klaviyo actually works

Klaviyo is built around three concepts: profiles (the record of a person and everything you know about them), events (things that happened, like a purchase or a cart being abandoned), and flows (automated sequences triggered by events or segment membership). Campaigns are broadcast sends to a defined audience. Understanding the difference between a flow and a campaign is the most important thing to get right before building anything.

A flow runs automatically when a trigger condition is met for a specific person. A campaign is a one-off or scheduled send to a static or dynamic segment. Most of the recoverable revenue in an underperforming account is in flows that are not live, not in campaigns that have not been sent. Campaigns can drive volume; flows drive the revenue that compounds because they run every day without human input.

Lifecycle flow map: the five flows and where they sit in the customer journey
First visit Subscriber First buyer Repeat buyer At-risk Welcome series Abandoned cart Post-purchase Winback Browse abandonment
Browse abandonment runs across the full pre-purchase journey, not just at the cart stage. Welcome, abandoned cart, post-purchase, and winback map to the four transitions that account for most of the recoverable revenue in a typical ecommerce account. All five should be live before any campaign optimisation is prioritised.

The five core lifecycle flows

These are not optional extras. In a well-run Klaviyo account, flows account for 30 to 40 percent of total email revenue, running automatically without any campaign effort. Most accounts have one or two of them in an incomplete state.

Welcome series

The welcome flow is the highest-engagement moment in the entire lifecycle. A person just gave you their email address, which means they either already know your brand or they are actively considering it. Open rates on welcome emails routinely hit 50 to 70 percent. The question is not whether to have one; it is whether yours converts at that level.

A well-built welcome series runs three to five touches over seven to ten days. Touch one is immediate confirmation with a clear value statement or offer if you promised one on the opt-in. Touches two and three introduce the brand story, best sellers, and social proof. The final touch is a time-pressure element if a discount was used to capture the email. The branching logic matters: people who purchase during the series should exit the sequence and enter the post-purchase flow, not receive a winback offer when they just bought.

Abandoned cart

Cart abandonment rates run at 70 percent or higher across most ecommerce categories. An abandoned cart flow does not recover all of that, but it recovers a meaningful portion of people who had intent and got distracted. The mistake most accounts make is sending one email too quickly and then stopping. The data consistently supports three touches: one at one hour (while the intent is fresh), one at 24 hours (for people who needed to think), and one at 72 hours (a final push with or without an incentive).

The filter logic matters as much as the timing. Suppress customers who have purchased in the last day (they checked out on a different device). Suppress people already in a high-value customer segment from the discount touch (they do not need the incentive). Dynamic product blocks that show the specific items from the abandoned cart consistently lift conversion over generic brand emails.

Post-purchase

The period immediately after a first purchase is when a customer is most receptive to the brand. Most accounts send one transactional confirmation and nothing else for 30 days. A post-purchase flow uses this window: a shipping notification (which earns very high open rates because people want to know where their order is), a review request at the right moment after expected delivery, a cross-sell sequence based on the category purchased, and a loyalty or referral prompt for repeat buyers.

The cross-sell logic is where Klaviyo's data layer earns its value. If a customer bought a product from category A, show them the products from category B that people who bought category A most often purchase next. This requires clean product catalogue data in Klaviyo and a custom property or feed that maps the relationship.

Browse abandonment

Browse abandonment fires when someone views a product page or category but does not add to cart. It runs at lower conversion than cart abandonment because the intent was softer, but it runs on much higher volume. A single-touch sequence 24 to 48 hours after the browse event, showing the viewed product with social proof, adds meaningful incremental revenue without cannibalising the cart flow. The filter condition is critical: only fire if the person did not add to cart or purchase within the trigger window, otherwise you are sending the same message twice.

Winback

A winback flow targets customers who have not purchased in a defined window, typically 90 to 180 days depending on your average purchase frequency. The goal is to re-engage before the customer becomes inactive permanently, which is when you need to move them to a suppression list rather than keep sending to them. A two or three touch winback sequence, ending with an explicit opt-down or unsubscribe prompt for people who do not respond, protects your deliverability by reducing inactive addresses in your sends. Marketers who never run a winback sequence watch their deliverability deteriorate gradually without understanding why.

Segmentation strategy

Segmentation in Klaviyo is not about having a lot of segments. It is about having the right ones and using them correctly in flows and campaigns. Most accounts either have no segments (one list, everything gets everything) or too many that have never been used. Both are problems.

Segmentation matrix: engagement tier vs. customer value band
LOW VALUE MID VALUE HIGH VALUE ACTIVE AT-RISK INACTIVE Nurture towardfirst purchase Cross-sell tonext category VIP campaign,loyalty offer Re-engage orsunset Winback flow,incentive Personal outreachbefore winback Move tosuppression Suppress orre-permission Re-permissioncampaign first
Each cell calls for a different approach. Sending the same campaign to the full list treats a high-value at-risk customer the same as a low-value inactive one, which is where deliverability problems start: inactive addresses drag down engagement rates, which damages inbox placement for the active subscribers.

The five segments that every account should have active before anything else are: active subscribers who have not purchased (nurture toward first order), one-time buyers (cross-sell), repeat buyers (loyalty and VIP), at-risk customers (winback), and inactive addresses (suppression candidates). Everything more sophisticated than this is built on top of these five.

Predicted customer lifetime value (pCLV) is one of the more useful Klaviyo properties for segmentation. Klaviyo calculates it automatically for accounts with sufficient order history. Segmenting by pCLV lets you weight your best customers more heavily in flow logic and suppress high-discount behaviour for the customers least likely to churn without one.

Shopify and ecommerce integration

The Klaviyo native Shopify integration handles the main event stream for most standard storefronts, but it has gaps that affect flow logic if you do not verify them at setup. The events that matter most for lifecycle automation are: viewed product, added to cart, started checkout, placed order, fulfilled order, cancelled order, and refunded order. All of them should fire before you build any flows.

Data sync topology: Shopify events to Klaviyo profiles and flows
Shopify Orders, Products, Customers Native integration JS snippet (browse, cart events) Profiles Segments Flows Email and SMS
The native integration handles order events and customer data. Viewed product and cart events require the Klaviyo JavaScript snippet on product and cart pages. Without the snippet, browse abandonment and cart abandonment flows cannot fire. Headless Shopify builds route both layers through the Klaviyo API instead.

Custom properties are what separate a generic Klaviyo setup from one that supports sophisticated flow logic. Examples that earn their keep: the category of the last purchase (to drive cross-sell logic), the number of orders in the last 90 days (for frequency-based branching), the net promoter score collected post-purchase (to segment review request recipients), and the date of the last email open (for engagement scoring). These properties are populated by the integration layer or by API calls at the order event, and they unlock the segmentation logic in the matrix above.

Deliverability and sending reputation

Deliverability is the condition in which your email actually reaches the inbox rather than the spam folder. It is not a checkbox. It is a reputation state that every send either builds or erodes, and a damaged sending reputation is one of the most expensive problems in email marketing because it takes weeks or months to recover and damages every send in the meantime.

Deliverability reputation funnel: signals that inbox providers watch
Authentication: SPF, DKIM, DMARC all passing Complaint rate below 0.08% (Google threshold) List hygiene: low hard bounce, suppression current Engagement: opens, clicks on recent sends
Inbox providers evaluate these four layers in roughly this order. You cannot compensate for failed authentication with good engagement. You cannot compensate for a high complaint rate with good authentication. Each layer is a prerequisite for the next. Most accounts that come to us with deliverability problems are failing at layer two or three, not layer one.

Domain authentication is the non-negotiable starting point: SPF, DKIM, and DMARC records must all be correctly configured for your sending domain. Klaviyo provides the DKIM keys; your DNS admin adds the records. DMARC tells inbox providers what to do when authentication fails (reject, quarantine, or report only), and for a new sending domain we start with a reporting-only policy and tighten it once the sending record is established.

Complaint rates matter more than most senders realise. Google's threshold for Gmail deliverability is 0.08 percent. Yahoo's guidance is similar. One spam complaint per 1,250 sends keeps you under the threshold. Most complaints come from people who do not remember signing up, which is a list quality problem as much as a content problem. Suppressing chronically unengaged addresses before they click spam is a more effective approach than trying to re-engage them with another send.

Warm-up is required for any sending domain that is new or has been inactive. Start with the most engaged subscribers (opened in the last 30 days), send modest volume (500 to 1,000 per day initially), and expand the audience and volume over three to four weeks. Monitor bounce rate and complaint rate at each step. Jumping straight to a full list send from a cold domain is the single fastest way to land in spam permanently.

SMS in the lifecycle

SMS in Klaviyo earns its place in specific moments, not as a replacement for email. The moments where SMS consistently outperforms are: the second or third touch of a cart abandonment sequence (when email has already been sent and the person is clearly not checking email), shipping and delivery notifications (because people genuinely want to know where their order is), and time-sensitive winback offers with a clear deadline.

SMS does not work as a nurture channel. Long-form brand content does not belong in a text message. The rule of thumb is: if the message cannot be read and acted on in ten seconds, it is probably the wrong format. SMS also carries a higher cost per send than email, so the revenue attribution logic needs to be honest. Do not count a purchase as SMS revenue if the same person had an email in their inbox from the same flow sequence.

A/B testing that produces decisions

Most A/B tests in email do not produce decisions. They produce noise with a confidence interval too wide to act on, run on a variant that was never the real question, and end with the team making the same choice they were going to make anyway. A test that produces a decision needs a clear hypothesis, a sample large enough to reach statistical significance, a single variable per test, and a pre-defined threshold for what counts as a win.

In flows specifically, the highest-leverage tests are: send time (does morning or evening perform better for your audience in the cart flow), incentive presence in the final touch (does a discount actually lift conversion, or does it train people to abandon and wait), and subject line approach (curiosity vs. urgency vs. product-led vs. social proof). Start with the flow variables, not the design. A subject line test on a cart flow runs on a large volume of triggered sends daily and reaches significance quickly. A design test on a low-frequency campaign can take months to reach the same confidence.

Data feeds and custom properties

Klaviyo stores custom properties on both profiles and events. Profile properties persist over time (number of orders, last purchase category, pCLV band, opt-in source). Event properties are attached to a specific event (the items in a specific abandoned cart, the product category of a specific order). Both are available for use in flow filters, dynamic content blocks, and segmentation conditions.

The most common data gap we find is that the Shopify integration fires the order placed event but the product-level data inside it is incomplete or incorrectly structured. This breaks dynamic product blocks in post-purchase flows. The fix is to verify the event payload structure against what the Klaviyo flow template expects, and to fill any gaps with a webhook or API call at order time.

Migrating from Mailchimp or another ESP

ESP migrations are more complex than they appear because the work is not just moving data. It is also preserving deliverability reputation and not breaking the engagement history you have built.

The migration checklist we work through has four stages. First, list export and hygiene: export all subscribers including suppression and unsubscribe lists, run the active list through a verification service to remove role addresses and hard-bounce candidates, and build the import file in the format Klaviyo expects. Second, suppression mapping: unsubscribes from the old ESP must be imported as suppressions in Klaviyo before any send, or you will send to people who legally opted out, which is a compliance problem as well as a deliverability one.

Third, flow and template rebuild: do not import flows from the old ESP and expect them to work. Rebuild them in Klaviyo using the native flow builder, with the correct trigger conditions and filter logic for the Klaviyo data model. This is also the time to fix what did not work in the old setup rather than replicating the same mistakes. Fourth, domain warm-up: even if the sending domain is the same, Klaviyo is a new sending infrastructure and inbox providers track reputation at the IP level as well as the domain level. Run the warm-up sequence above.

Revenue attribution

Klaviyo's default attribution window is five days for email clicks and one day for email opens. That window determines what revenue gets credited to the email program. It is long by most standards, and if you are running a multi-touch program with email, SMS, and paid retargeting running simultaneously, the attribution overlap can significantly inflate the revenue number that Klaviyo reports.

The cleaner approach is to treat Klaviyo's reported revenue as directional and to validate it against your Shopify attribution data and your multi-touch model. For flow-level decision making, last-click attribution within the Klaviyo attribution window is a reasonable proxy. For program-level reporting to leadership, use a conservative window (24 hours for clicks, zero for opens) and note the methodology. Nobody gets fired for reporting conservatively. Plenty of people have had to explain why the email revenue number was twice as high as total site revenue.

What breaks most often

A short, honest list of the implementation failures we find most commonly:

  • Cart flow with one touch. One email one hour after the abandon. No follow-up. The data is clear that most recovered carts come from touches two and three.
  • Welcome series that does not branch. People who purchase during the welcome series keep receiving the sequence including the discount offer they already used. The branching condition (exit if placed order) is a five-minute fix with a large revenue impact.
  • Sending to full list with no suppression. Inactive addresses are dragging down engagement rates and training inbox filters to deprioritise future sends. A single suppression pass often lifts open rates by 30 percent or more on the remaining active list.
  • Flows without a holdout group. If you never measure lift against a control, you cannot prove the flow is responsible for the attributed revenue. A 10 percent holdout group on key flows is the minimum honest test.
  • SMS layered on without consent audit. SMS consent in the US and EU requires specific opt-in language. Adding SMS touches to existing email-only subscribers without verifying SMS consent is a compliance violation, not just a deliverability risk.
  • Migration without suppressions. Sending a welcome email to someone who unsubscribed from the previous ESP is the fastest way to lose the migration gains you just worked four weeks to achieve.

Frequently asked questions

How long does a Klaviyo implementation take? +
A standard build covering five core flows, segmentation, and Shopify integration runs four to six weeks in clear sprints. Migrations from another ESP add one to two weeks for list hygiene and warm-up.
What flows should every Klaviyo account have? +
The five that move the most revenue are: welcome series, abandoned cart, post-purchase (cross-sell and upsell), browse abandonment, and winback. Most accounts have one or two of these running in an unfinished state. Getting all five live and correctly filtered is where the largest revenue gains come from.
What is a good revenue per recipient benchmark in Klaviyo? +
Revenue per recipient varies by industry and average order value, but a well-implemented account for a mid-market ecommerce brand typically earns between $0.08 and $0.18 per recipient per campaign send. Accounts we audit at the start of an engagement often sit below $0.04, which tells us the flows or the segmentation, or both, are underperforming.
How do you protect deliverability during an ESP migration? +
The main risk in a migration is sending from a cold domain to a large list all at once. We warm up the new sending domain by starting with the most engaged subscribers (opened in the last 30 days), expanding to 90 days, then 180, over three to four weeks. We monitor complaint rates and inbox placement at each stage before broadening the send.
Does Klaviyo work with headless Shopify? +
The native Klaviyo integration assumes a standard Shopify storefront. Headless builds need a custom integration layer that fires the key events via the Klaviyo API or JavaScript snippet. We build and validate this layer as part of the implementation.
When should we add SMS to the lifecycle? +
SMS works best layered into flows where urgency is real and the message is short: the second or third touch of an abandoned cart sequence, a shipping notification, and a time-limited winback offer. Start with the three or four moments where SMS genuinely earns its place, measure revenue attribution, then expand.
What does it cost to implement Klaviyo? +
Implementation is priced as a fixed-scope project after the free audit, when we know the actual state of your account. The scope depends on how many flows need building, the complexity of your segmentation, and whether migration is involved. We share exact numbers before any work begins.

That is the whole method. When you want it applied to your account, the next step is a free lifecycle and deliverability audit: real findings on your real data, in about a week, with no obligation.

Get a free lifecycle audit

Ready to put this to work?

A free audit on your real account data, the gaps quantified, and a fixed scope to build what the numbers justify. Findings in a week.

Get a free lifecycle audit
No credit card · You keep the audit · 24h reply

Related reading

Related reading

Related reading

Related reading

Get a free Klaviyo audit