Klaviyo email marketing for Shopify is easy to connect and easy to get wrong, because the connection succeeds whether or not the data behind it is right. Most guides stop at “install the app”. This one puts the steps in the order that prevents rework and adds a reconciliation test that most teams never run.
The article is for operators at $3M–$30M revenue on Shopify Plus or a paid subscription platform, who already have a list and real order volume. If you’re below that floor, Shopify’s own email tooling is likely enough, and the rest of this setup will cost more than it returns.
Why does the setup order matter for Klaviyo on Shopify?
The order matters because every later step trusts an earlier one. Flows read events, events depend on the sync, and revenue reports depend on both. A flow built on a broken event will still send, still show opens, and still report attributed revenue. Nothing turns red.
Klaviyo reports that 41% of email revenue across its 183,000+ brands comes from automated flows (vendor-reported). If that share holds for you, then the flows are where a data fault costs the most, and a campaign-first setup puts your attention on the smaller share.
So the setup sequence is built around one rule: prove the data, then automate on it. The Klaviyo flows guide covers what each flow contains. This page covers what has to be true before you build one.
How do you set up Klaviyo email marketing for Shopify?
Five steps, in this order. Each one has a check, and the check has to pass before the next step starts.
Step 1: Connect Shopify and confirm the data is real
Install the Klaviyo integration from the Shopify side, sign in to the correct Klaviyo account, and choose the store. If you run more than one storefront, connect each deliberately and note which account holds which. Connecting the wrong store to the wrong account is a five-minute mistake that takes days to unpick once profiles have merged.
Then open a test customer journey yourself. Browse a product, add it to the cart, start checkout with a test email, and place a small order. In Klaviyo, open that profile’s activity feed and look for the events: Viewed Product, Added to Cart, Started Checkout and Placed Order. Open each event and check its properties. A Placed Order event should carry the order value, the line items, and the discount code if you used one.
Two settings to look at on the Shopify side. Confirm onsite tracking is switched on in your theme (in an Online Store 2.0 theme this is an app embed, and if it’s off, browse and cart events never arrive). And confirm the integration’s consent-collection options match what your checkout actually asks for. Klaviyo renames interface labels from time to time, so read the current help documentation rather than trusting a screenshot from a two-year-old blog.
The check for this step: one test order, four events, correct properties. If Placed Order arrives but Started Checkout doesn’t, stop. That’s the gap that later empties your abandoned checkout flow.
Step 2: Authenticate the sending domain
Before any list is imported, set up a dedicated sending domain and add the authentication records Klaviyo gives you to your DNS. The point is that mail goes out authenticated as your brand rather than as a shared domain, so your sender reputation belongs to you.
Use a subdomain of your main domain for marketing mail, and keep transactional mail from Shopify on its own path. Mixing them means a bad campaign can hurt order confirmations. Do the DNS work with whoever owns your domain, and don’t change existing records for your main mail provider while you’re in there. An overwritten SPF record is a classic way to knock out company email.
Set the sender name and reply-to address to something a person could answer. A reply-to that bounces is a small signal, but it’s also where customers ask questions about orders, and those replies are worth reading.
The check: send a test to a few personal inboxes at different providers and look at the authentication result in the message headers. Don’t move on until it shows as authenticated.
Step 3: Import consent deliberately
Consent import is where most teams mark everything as subscribed to make the list look big. Don’t. Sync marketing consent as Shopify holds it, and put customers with unknown or missing consent into their own segment.
Three decisions to make explicitly:
- Unknown consent. Customers who bought but never opted in to marketing are not the same as subscribers. Send them the transactional emails they expect, and put a permission-based re-engagement in front of them if your counsel agrees you can.
- Channel separation. Email consent and SMS consent are separate. A customer who agreed to email hasn’t agreed to text messages. The Klaviyo SMS marketing guide covers the SMS side, and Klaviyo email marketing and SMS can share flows only once each channel has its own clean consent.
- Suppression. Bring across anyone who has unsubscribed or complained in your previous tool. Losing that list and mailing those people again is the fastest route to complaints.
Compliance rules for email and SMS differ by country and change. Describe your actual capture flow to counsel and confirm the specifics; don’t rely on a blog for hours, thresholds or wording.
The check: the count of subscribed profiles in Klaviyo should be explainable. You should be able to say why the number is what it is, and list the buckets that make it up.
Step 4: Build the four flows that carry the revenue
Build these four, in this order, and switch each on only after Steps 1 to 3 pass:
- Welcome. Triggered by joining the list. The welcome email automation article goes deeper on content.
- Abandoned checkout. Triggered by Started Checkout without a Placed Order. Read the Klaviyo abandoned cart flow walkthrough for structure.
- Post-purchase. Triggered by Placed Order, to set expectations and prompt the next purchase.
- Win-back. Triggered by time since last order, so it reads the order history, which makes it the flow most sensitive to a sync fault.
The setting most teams leave at its default is flow filtering. Without filters, a customer can sit inside a welcome flow, an abandoned checkout flow and a post-purchase flow at the same moment and get three emails in a day. Add a filter to each flow so it skips anyone who is already in another flow or was emailed very recently. The exact time window is a business decision, and I won’t give you a number that you’d copy without thinking; set it from how often your customers actually reorder.
Also check trigger and flow filters use the right event. A post-purchase flow that triggers on Fulfilled Order behaves differently from one that triggers on Placed Order, and the difference shows up when fulfilment is delayed. Choose deliberately.
Add browse abandonment, back-in-stock and the rest later, once these four reconcile. The Klaviyo back-in-stock article covers that one. And segments come after flows, not before; Klaviyo segments explains how to build them on the events you just verified.
The check: put your own test profile through each flow and read every email as a customer would, on a phone, with images off.
Step 5: Reconcile Shopify against Klaviyo before you send
Reconciliation is the step most teams skip. It’s also the one that catches problems while they’re cheap.
Choose a fixed window, say a full past week, and fix the time zone on both sides, because Shopify and Klaviyo can default to different ones. Then compare three things.
| Check | Shopify side | Klaviyo side | What a gap means |
|---|---|---|---|
| Order count | Orders in the window, excluding test orders | Placed Order events in the same window | Missing events, a paused sync, or a channel the integration doesn’t cover |
| Revenue | Order value in the window | Sum of Placed Order value | Discounts, refunds, tax or shipping treated differently |
| Consent | Customers with marketing consent | Subscribed profiles from the sync | Import errors or unknown consent counted as yes |
Use the table to see where to look. A count gap points to a connection problem, a value gap points to how the properties are calculated, and a consent gap points to Step 3. A small difference from refunds or timing is normal; a difference you can’t explain is not. There is no universal tolerance, so set yours from the size of your own order volume and write it down: metric to confirm.
If the numbers don’t match, the Klaviyo not syncing Shopify orders article goes through the causes one by one. Fix the gap, rerun the comparison, and only then start sending campaigns.
Repeat the test after every new integration. A subscription platform, a loyalty app or a reviews tool can each write to the same profiles, and the Yotpo and Klaviyo integration is a good example of a connection that adds properties and events you’ll want to verify.
What does the reconciliation test catch that the setup guides don’t?
The reconciliation test catches the silent failures: profiles that were never created, events that arrive without their value, consent that flipped on import. Standard setup guides verify that the integration is connected. They don’t verify that what arrived is right.
Consider a hypothetical brand whose checkout extension changed the shape of a discount property. Orders keep flowing, the flows keep sending, and Klaviyo keeps reporting revenue. But a segment built on “used a discount code” now returns nobody, and the win-back flow that excludes discount-only buyers has quietly widened. Nothing errors. The team notices three months later when retention looks odd.
A weekly comparison of order count, revenue and consent finds this in days. It costs an hour to set up and a few minutes to run. Keep the results in a shared sheet so that whoever inherits the account can see the history.
Attribution has the same weakness. Klaviyo credits a flow with an order if the customer clicked or opened within its attribution window and then bought. That’s a reasonable rule, but it means flows can claim orders that would have happened anyway. Use the revenue figures as a comparison between flows, and use a holdout or a before-and-after window when you need to know what a flow actually added.
What do you do about pricing and plan size?
Klaviyo prices by the number of profiles or by sends, depending on the plan, and the packaging changes, so check the current pricing page rather than any number in an article. The Klaviyo pricing guide explains how the cost moves with list size.
The practical point for setup: profiles you can’t email still count toward what you pay for in many pricing models. That’s a second reason to keep the unknown-consent segment and the dormant profiles under control. Suppress or sunset them deliberately, and the sunset flow in Klaviyo walks through how.
If you’re weighing Klaviyo against other tools, Klaviyo alternatives and Omnisend vs Klaviyo cover the trade-offs. At the revenue level this article assumes, the deciding factor is usually data depth and how far the tool lets you segment, not the sticker price.
Who should not use this setup?
Brands below the $3M floor, or those that sell a handful of products with few repeat buyers, will spend more time on flows and reconciliation than the revenue justifies. Shopify’s built-in email is a fair starting point for them.
The order here also assumes you have someone who owns the account. An orphaned Klaviyo account, where the person who built the flows has left and nobody reads the reconciliation, drifts. If you don’t have that owner, fix that before adding flows.
And don’t hand any of this to an AI tool to run unsupervised. Drafting subject lines is fine. Deciding who to email, or fixing consent and sync problems without a person reading the result, is where a wrong answer costs more than a human minute.
Where does this fit in the wider lifecycle programme?
Klaviyo email marketing for Shopify is one part of a lifecycle programme, and the five-step setup order is the foundation for the rest. If you want a sense of what the flows could be worth before building more, the flow revenue calculator lets you put your own inputs in. For the wider view of how growing brands structure retention, see Pointerflow for scaling brands.
Most of what goes wrong in a Klaviyo account at this scale is a lifecycle flows problem: events that don’t match orders, consent that isn’t understood, flows that collide. That is what Pointerflow’s lifecycle flows service is built to fix, starting with the reconciliation before any new flow is added.
Sources
- Klaviyo, benchmark data across 183,000+ brands: 41% of email revenue comes from automated flows (vendor-reported). No other external figures are quoted; the setup order and checks are written from how the Klaviyo and Shopify integration is documented to work.