- Connecting Shopify is step one, not the setup. Without onsite tracking turned on, browse, collection and site abandonment have nothing to trigger on.
- My install is 8 core flows and 60+ emails, every flow split for customers and people who haven't bought yet, live in the first 7 days.
- The first version of every flow is a starting point. Personalizing once early data comes in is part of the setup, not an extra.
- Campaigns come after flows. Flows run every day; the calendar gets built off what your list actually does.
What does a full Klaviyo setup for Shopify include?
Here's the whole thing at a glance. Each layer depends on the one above it, so the order matters.
- Integration and tracking. Shopify connected, subscribers syncing, onsite events firing.
- Sending domain. Emails come from your brand, not from Klaviyo's shared domain.
- Sign-up forms. A way for people to join the list that works on mobile.
- The 8 core flows, both paths. 60+ emails, each flow split for customers and non-customers.
- Add-ons for consumables. A reorder reminder and back in stock, on top of the core 8.
- Personalization. Rewrite and adjust once early data shows what's working.
- Campaign calendar. Monthly sends built off your own list.
Skip the first two and every number underneath them is wrong. Skip the last two and you've got a template, not a system.
Step 1: Connect Shopify and turn on tracking
Klaviyo's help center walks through the connection. In Klaviyo, go to Integrations, search for Shopify, enter your store URL in the "mystore.myshopify.com" format, review the permissions and install. Then set your sync settings.
Three settings I'd check before anything else:
- Email subscriber sync. Turn it on so customers who accept email marketing at checkout or through a Shopify sign-up form get added to the list you choose.
- Behavioral events. Klaviyo's "Track behavioral events" option turns on Viewed Collection, Submitted Search and Added to Cart. Your collection abandonment flow needs Viewed Collection to exist.
- The app embed. Viewed Product and Active on Site only start tracking once the Klaviyo app embed is switched on in your Shopify theme's App embeds tab. No embed, no browse or site abandonment.
One more thing worth knowing: depending on your Shopify privacy settings, tracking may not apply to visitors in the EU, EEA, UK and Switzerland without consent.
Then open a real profile, ideally your own after a test order, and confirm Placed Order, Started Checkout and Viewed Product are showing up. If they aren't, stop here. Nothing after this works right.
Step 2: Set up a branded sending domain
By default, Klaviyo accounts send from a shared domain, and your emails show "via klaviyomail.com" next to your name. A branded sending domain makes them come from you.
Klaviyo says this helps inbox providers verify who you are and pass checks like DMARC, and it's part of meeting inbox provider rules for bulk senders. Google treats anyone sending 5,000 or more emails a day to Google accounts as a bulk sender.
Plan for it early. Klaviyo notes DNS changes can take up to 48 hours to update, and new accounts are advised to warm up sending over the first 2 to 4 weeks. If you're getting into spam already, read why Klaviyo emails go to spam.
Step 3: Build sign-up forms that actually collect emails
Your flows can only email people who joined. So the form matters more than most founders think.
Here's where I'd start: one form that works on mobile, an offer people understand at a glance, and email and SMS consent collected separately. I go deeper in how to grow your email list and whether to lead with an email popup discount.
Step 4: Install the 8 core flows, with both paths
This is the bulk of the work, and the part most "setups" cut short. Here are the 8 core flows I install for every brand, and how each one runs in my Flow System:
| Flow | Trigger | Emails (non-customer + customer) | Runs over | Exits when |
|---|---|---|---|---|
| Welcome Series | Joins main list | 6 + 6 | 7 days | They buy |
| Site Abandonment | Active on Site | 3 + 3 | 4 days | They buy or hit a higher-intent flow |
| Collection Abandonment | Viewed Collection | 3 + 3 | 4 days | They buy or hit a higher-intent flow |
| Browse Abandonment | Viewed Product | 3 + 3 | 4 days | They buy or hit a higher-intent flow |
| Abandoned Cart | Added to Cart | 5 + 5 | About 8 days | They check out or buy |
| Abandoned Checkout | Started Checkout | 5 + 5 | 7 to 8 days | They buy |
| Post Purchase Thank You | Placed Order | 6, 5, 4 or 3, by order count | 30 days | Re-enters on every order |
| Customer Winback | Placed Order, then a 45-day wait | 5 | Day 45 to 60 | They order again |
A few rules run across all of them:
- "Placed order ever?" sits at the top of every flow. No goes down the non-customer path, yes goes down the customer path. That's how you get to 60+ emails. I explain the split, and how to build it in Klaviyo, in customer vs non-customer email flows.
- Every flow carries an offer. Non-customers get the same offer the welcome series gives at signup, in every flow, never a bigger one, so nobody gets a better deal for abandoning a cart than for signing up. Customers get a slightly upgraded version, a buy-more or bundle offer, or a monthly subscription offer, which gives the brand predictable, recurring revenue. Customers who order in large quantities are usually excluded.
- In cart and checkout, email 1 has no offer. It comes in through the sequence, the final reminder carries it, and it expires with the last email.
- Post-purchase splits by order count instead: 6 emails after a first order, 5 after a second, 4 after a third, 3 after that. Each branch ends with a soft nudge that carries the customer offer. The third-order branch carries the review invitation, and it goes to everyone who reaches that order count. Nobody is filtered by how happy we think they are.
- A 35-day re-entry window on the five abandonment flows, so nobody gets the same flow twice in a month.
- Recent buyers skip the low-intent flows. Anyone who ordered in the last 30 days is routed out of site, collection and browse abandonment.
- Winback only goes to engaged openers (non-Apple open tracking), and anyone who reorders exits. The offer comes at email 4.
Two things my data says about why they're built this way. Across 4 consumable brands, welcome email #1 earned about $4.50 per person, and emails #2 to #5 about $0.10 each. Email #1 carries most of the money, which is why the offer goes in it, and the rest of the week builds trust before the offer expires on day 7. Cart and winback keep earning late: cart email #5 still earned about $0.25 per person, the same as email #3, and winback email #3 earned about 2x email #1.
The full flow-by-flow build order is in the essential Klaviyo flows for CPG brands.
Step 5: Add the flows consumable brands need
The core 8 work for any Shopify brand. If you sell something people use up, I'd add two more on top.
- Reorder reminder (replenishment). In my 4-brand data, it earned about $2.23 per person, about 28x the best campaign. Only 2 of the 4 brands had one built. If your product runs out, don't leave this one for later. Here's how to build a Klaviyo replenishment flow.
- Back in stock. If you sell out, the restock email is your biggest send of the month. Setup is in Klaviyo back in stock emails.
Step 6: Personalize once the data comes in
The first version of a flow is a good guess. After a few weeks, you have real numbers.
That's when I go back through each flow email by email. Which emails earn revenue per person and which don't? Where do clicks drop off? Is one path doing much better than the other? Then I rewrite the weak spots for the brand's product and customers, instead of leaving generic copy in place.
Judge all of this by clicks and revenue per person, not opens. In my 4-brand data, click rate tracked revenue at 0.65 and open rate at 0.32, and Apple Mail auto-opens pushed open rates past 85% on some segments.
Step 7: Build the campaign calendar
Flows come first because they run every day without you. Campaigns come next.
I plan campaigns as a monthly calendar with a 14-step process. In short: collect the brand's products, the month's dates and its past campaign and flow data; pull out what's worked; set one story for the month, broken into 3 to 5 phases; and write a brief for every campaign before any copy. The calendar should support your strongest flows, not fight them. Normal campaigns go out every other day, with consecutive sends for major promotions. I break the whole process down in how to build an email campaign calendar.
What order should you do it in?
If you're doing it yourself, here's the order I'd suggest. It's not a day-by-day schedule. It's the sequence that keeps you from building on a broken base.
- Integration, subscriber sync, behavioral events and the app embed. Confirm events on a real profile.
- Branded sending domain, since DNS can take up to 48 hours.
- Sign-up form.
- Welcome Series, then Abandoned Checkout and Abandoned Cart, both paths each.
- Post Purchase Thank You, plus a reorder reminder if your product runs out.
- Browse, Collection and Site Abandonment.
- Customer Winback.
- Test everything: send a test profile through both paths of every flow, and click every link.
Before anything goes live, check that every split path has criteria. Klaviyo notes that a path with no criteria is skipped when profiles reach the split.
Where these numbers come from
The per-person flow numbers and the open versus click correlations are pooled from 4 consumable brands I work with: 2,897 campaigns and $17.7M in email revenue. It's a small sample, so treat it as directional.
FAQ
How long does it take to set up Klaviyo for Shopify?
Connecting the app takes minutes. A full install is longer. For my clients, the 8 core flows (60+ emails) are live in the first 7 days, then personalized once early data comes in. Doing it yourself, plan for longer, and build in the order above.
Is Klaviyo free for Shopify stores?
Klaviyo is free to install. Its Shopify App Store listing says email is free for up to 250 contacts, with paid email starting at $20 a month for 251 to 500 contacts. The bill grows with your active profiles, which I explain in why your Klaviyo bill went up.
Can I just turn on Klaviyo's pre-built flows?
They're a fine starting point for structure. But they won't split customers from non-customers, and they won't know your product. Use them as a skeleton, then rewrite.
Do I need to set up a branded sending domain?
I would. Klaviyo recommends it to help inbox providers verify you and to meet bulk sender requirements. Without it, your emails show "via klaviyomail.com."
Should I set it up myself or hire someone?
If you're under about $25K a month in revenue, I'd hire a specialist, not a done-for-you agency. Above that, it depends on your time. I lay out the options and what they cost in what a Klaviyo agency costs.