Klaviyo + Shopify Integration: The Complete Data Sync and Event Tracking Setup Guide

The Klaviyo Shopify integration installs in one click — and fails silently. Before you trust any flow, verify that Viewed Product, Started Checkout, and Placed Order events actually fire correctly, because every browse abandonment trigger, cart recovery email, and revenue report you build inherits the gaps in your event data.
Nobody notices a browse abandonment flow underfiring by half. There's no error message when a subscription app hijacks your Started Checkout event. The integration dashboard says "connected" either way.
This guide covers the standard setup in a few minutes, then spends the rest on what official documentation skips entirely: how to verify your integration is actually working, the three failure modes we keep finding in lifecycle audits, and how to trace a broken flow back to its data cause.
Last updated: July 15, 2026
How Do You Connect Klaviyo to Shopify?
Connect Klaviyo to Shopify from Klaviyo's Integrations tab: search for Shopify, click Install, approve the permission scopes in your Shopify admin, and toggle on onsite tracking. The install itself takes a few minutes. Verifying that the connection actually feeds your flows correct data is the part every guide skips — and where the real work lives.
Here's the standard install path:
- In Klaviyo, go to Integrations, click Explore apps, and search for Shopify.
- Click Install and log into your Shopify admin when prompted.
- Approve the permission scopes — Klaviyo needs read access to customers, orders, and products.
- Enable onsite tracking so the JavaScript snippet gets added to your theme. On most modern themes this ships as an app embed you toggle on inside the Shopify theme editor.
- Confirm the sync status shows active in Klaviyo's integration settings.
Klaviyo's official install documentation covers this happy path well. What it doesn't cover is everything after the green checkmark — which is exactly where flows quietly break.
What Data Does Klaviyo Sync From Shopify?
Klaviyo syncs Shopify customer profiles, subscriber lists, and order history, plus the core events your flows run on: Placed Order, Ordered Product, Started Checkout, and Fulfilled Order from the server, and Viewed Product and Active on Site from the browser. Historical data arrives in two passes — recent orders first, full backfill second.
Before mapping the data, a quick grounding: Shopify is the ecommerce platform that acts as the source of record for your customers, orders, and products — everything Klaviyo syncs originates there. The distinction that matters is where each event comes from, because that determines how it breaks:
- Server-side events: Placed Order, Ordered Product, Started Checkout, Fulfilled Order, Refunded Order. These flow through Shopify's backend and are generally reliable — until a checkout-adjacent app reroutes them. Placed Order is the server-side event Shopify fires when a customer completes a purchase, carrying the full order value and line items that power revenue attribution and post-purchase flows.
- Browser-side events: Viewed Product and Active on Site. Viewed Product is the browser-side event fired when a visitor loads a product page, capturing the item's name, price, and URL, and Active on Site is the browser-side event fired whenever an identified visitor browses any page of your store. Both depend entirely on the tracking snippet loading in the visitor's browser, which makes them the most fragile data in your account.
klaviyo.js is the JavaScript snippet Klaviyo adds to your Shopify theme to track onsite behavior — it identifies known visitors via cookie and fires the browser-side events that power browse abandonment and site-activity segments. A browse abandonment flow is the automated email sequence triggered when a visitor views a product but never adds to cart or starts checkout — it depends entirely on Viewed Product firing. If klaviyo.js doesn't load, those events simply don't exist. No error, no warning.
On the historical side, Klaviyo's own Shopify data reference documents the sequence: the most recent 90 days of data sync first, then a complete historical backfill runs behind it. This matters more than it sounds — any segment or RFM analysis you build before the backfill completes will be computed on partial order history and will be wrong. If you're mid-migration from another ESP, our Klaviyo migration playbook covers how to sequence segment rebuilds around this sync behavior.
How Do You Verify Your Klaviyo Integration Is Actually Working?
Verify the integration by tracing real behavior through Klaviyo's profile activity feed: browse your own store, place a test order, and confirm each event appears with correct product data. Then check subscription app event routing and historical sync completeness. This is the diagnostic layer official documentation never mentions — and the layer flows depend on.
Flows generate $1.94 in revenue per recipient versus $0.11 for campaigns, according to Blossom's Klaviyo benchmark data — an 18x gap that only exists when the events triggering those flows fire correctly.
This is the same sequence we run at the start of every Blossom lifecycle audit — roughly 30 minutes end to end:
- Check a real profile's activity feed. Open your own customer profile in Klaviyo, then browse your store in a logged-in session. Within minutes you should see Active on Site and Viewed Product events appear in the feed with the correct product names. If they don't show, your onsite tracking is broken before anything else matters.
- Place a test order and trace it. Add to cart, start checkout, complete the purchase. Then confirm Started Checkout, Placed Order, and Ordered Product all landed on your profile with accurate line items, prices, and timestamps. One test order validates the entire server-side chain.
- Validate tracking as an anonymous visitor. Repeat the browse test in an incognito window, click through from a Klaviyo email to cookie yourself, and confirm events attach after identification. This catches consent-tooling and theme conflicts a logged-in test misses.
- Map your subscription and checkout apps. If you run Recharge, Skio, or any app that touches checkout, place a subscription test order and check which integration recorded it — and whether it recorded twice. Duplicate or missing checkout events are the most common conflict we find.
- Confirm historical sync completeness. Compare total order counts between Shopify analytics and a Klaviyo segment of all-time purchasers. Material gaps mean the backfill didn't finish or profiles failed to merge.
Once every check passes, you have a foundation worth building on — our complete Klaviyo flow setup guide covers what to build on top of it, in what order.
The Three Silent Failure Modes That Break Klaviyo Flows
Three failure modes silently break Klaviyo Shopify integrations: onsite tracking gaps that starve browse abandonment, subscription apps that intercept or duplicate checkout events, and missing custom events that force flows onto low-intent default triggers. Each one degrades revenue without throwing a single error — which is why they survive for months.
Failure Mode 1: Onsite Tracking Quietly Stops Working
Symptoms: Browse abandonment sends drop relative to site traffic. Viewed Product events stop appearing on profiles of people you know visited. Site-activity segments shrink for no reason.
Cause: klaviyo.js isn't loading. The usual culprits: a theme update or redesign removed the snippet or disabled the app embed, or cookie consent tooling blocks the script and never re-injects it after the visitor accepts. Consent tools are the sneakiest version — tracking works for you (you accepted months ago) while failing for a large share of new visitors.
Fix: Confirm the Klaviyo app embed is enabled in your current theme — not just the theme you had at install. Then test the consent path explicitly: fresh incognito session, accept cookies, browse a product, verify the event lands. Browse abandonment converts in the 2-5% range according to Blossom's benchmark data, but only for the recipients the trigger actually catches — if your tracking misses half your browsers, the flow silently forfeits half its revenue. Once tracking is verified, our browse abandonment flow guide covers how to build the sequence itself.
Failure Mode 2: Subscription Apps Corrupt Checkout Events
Started Checkout is the server-side event Shopify fires when a visitor enters checkout with contact information attached — it's the trigger your abandoned checkout flow lives on. Subscription apps like Recharge and Skio historically routed subscription checkouts and renewals through their own infrastructure, which means those events can enter Klaviyo through a different integration, arrive with different properties, arrive twice, or not arrive at all.
Symptoms: Cart and checkout recovery emails fire at active subscribers mid-renewal. Or subscription checkouts never trigger recovery at all. Or Klaviyo-attributed revenue runs suspiciously hot because Placed Order is being recorded by two integrations.
Fix: Decide which integration owns which event, and enforce it. Audit both the Shopify and subscription app integrations in Klaviyo, identify duplicate metrics, and add flow filters that exclude renewal orders from recovery logic. Every time you install a checkout-adjacent app, re-run the test order trace. Your abandoned cart flow strategy is only as good as the trigger population feeding it — a corrupted Started Checkout event means you're recovering the wrong carts.
Failure Mode 3: Flows Running on Default Triggers When Custom Events Should Exist
Symptoms: Nothing looks broken — that's the trap. But your "post-quiz" follow-up runs on a generic list trigger, your cancellation save runs on a manual segment, and your refill reminder guesses at timing instead of reading actual usage.
Cause: The default integration only sends default events. Any behavior that happens outside Shopify's standard funnel — quiz completions, subscription pauses, loyalty milestones — is invisible to Klaviyo unless you send it.
Fix: Instrument the high-intent moments as custom events (covered two sections down). In our experience with DTC clients, the flows built on custom triggers tend to be the strongest performers in the account, precisely because the trigger encodes intent the defaults can't see.
Which Flows Break When Which Data Breaks?
Work backward from the symptom: browse abandonment volume dropping points to onsite tracking, cart flows firing at the wrong people points to checkout event conflicts, and revenue mismatches between Klaviyo and Shopify point to duplicated or missing Placed Order events. Every flow symptom maps to a specific data cause.
Symptom-to-Cause Map
- Browse abandonment volume drops while traffic holds steady: Onsite tracking gap. klaviyo.js was removed by a theme change or is blocked by consent tooling. Fix the snippet, not the flow.
- Abandoned cart or checkout flow targets the wrong people: Checkout event conflict. A subscription or checkout app is duplicating or rerouting Started Checkout. Audit event ownership and add renewal filters.
- Klaviyo revenue doesn't reconcile with Shopify revenue: Duplicated or missing Placed Order events distorting attribution. Our breakdown of what Klaviyo gets right and wrong in revenue attribution covers how to sanity-check the numbers.
- Segments built right after install look wrong: Historical backfill still running. Recent data synced first; the complete history is still loading. Rebuild segments after the backfill finishes.
- Post-purchase flows double-send or skip subscription customers: Renewal orders entering through a different event path than first purchases. Split flow logic by order type.
The pattern across all five: the flow was never the problem. Rebuilding emails on top of broken events is redecorating a house with a cracked foundation.
When Should You Add Custom Events to Your Shopify Integration?
Add custom events when default Shopify events don't capture your highest-intent moments — quiz completions, subscription cancellations, upcoming refill dates, loyalty milestones. Klaviyo's Track API lets you send any event with any properties, so flows trigger on what customers actually did instead of the nearest default approximation.
The Track API is Klaviyo's endpoint for sending server-side custom events to a profile — you define the event name and attach whatever properties matter (quiz answers, cancellation reason, predicted refill date), and Klaviyo treats it like any native metric: usable as a flow trigger, a segment condition, or a personalization variable.
A practical priority order for most Shopify brands:
- Quiz or product-finder completion — carries self-declared preferences the default events will never know.
- Subscription lifecycle events — started, paused, cancelled, upcoming renewal. Essential if a subscription app owns part of your checkout.
- Replenishment signals — projected run-out dates computed from purchase history, so refill reminders land before the customer runs out rather than after.
- Support and satisfaction events — a refund request or negative review should suppress promotional flows immediately.
One warning: custom events inherit the same silent-failure risk as everything else in this article. If the app or middleware sending them breaks, the flows downstream just... stop. Fold your custom metrics into the same diagnostic checklist you run on the native ones.
Treat Integration Health Like Infrastructure, Not a Setup Task
Your integration degrades over time: theme updates remove snippets, new apps reroute events, consent tools change behavior. Re-run the diagnostic checklist after every theme change, every checkout-adjacent app install, and every consent tooling update — and put a quarterly check on the calendar even when nothing has changed.
These are the moments that break working integrations, in rough order of how often we see them:
- Theme updates and redesigns — the number one killer of onsite tracking. The new theme ships without the app embed enabled, and browse abandonment starves for months.
- Installing or migrating subscription, checkout, or upsell apps — every one of these can touch Started Checkout and Placed Order.
- Cookie consent or privacy tooling changes — new banner, new blocking behavior, new gap in browser-side events.
Need help implementing this?
Let us take the hassle of managing your email marketing channel off your hands. Book a strategy call with our team today and see how we can scale your revenue, customer retention, and lifetime value with tailored strategies. Click here to get started.
Curious about how your Klaviyo is performing?
We’ll audit your account for free. Discover hidden opportunities to boost your revenue, and find out what you’re doing right and what could be done better. Click here to claim your free Klaviyo audit.
Want to see how we’ve helped brands just like yours scale?
Check out our case studies and see the impact for yourself. Click here to explore.
Read Our Other Blogs

Popup Strategy for Ecommerce: How to Grow Your List Without Training Customers to Wait for Discounts



Email Offer Architecture: How to Structure Promotions That Protect Margin and Still Convert



Klaviyo vs Attentive: Which Platform Is Right for Your DTC Stack in 2026




Not Sure Where to Start?
Let's find the biggest retention opportunities in your business. Get a free Klaviyo audit or retention consultation.

























































































