Klaviyo for Shopify: A Practical Setup Order

Cover graphic for the guide 'Klaviyo for Shopify: A Practical Setup Order' on a purple background
Graphic: Ecom Field Guide
In this guide
  1. The order, in one table
  2. 1 and 2: Connect Shopify the safe way
  3. 3: Choose the list that receives subscribers
  4. 4: Turn on onsite tracking
  5. 5: Add a sign-up form
  6. 6: Build the welcome flow
  7. 7: Set up a branded sending domain
  8. 8: Event-based flows and segments
  9. Cost and limits
  10. Common mistakes
  11. What to do next

Disclosure: the author uses Klaviyo for email on his own sites and sells Shopify apps under Orbitloft. We have no affiliate relationship with Klaviyo and every link here is plain; see the disclosure page. Our own Klaviyo builds feed from custom sites and app events, not from a Shopify storefront, so the Shopify-specific steps below come from Klaviyo’s documentation, not from a store we run.

The short answer: connect Klaviyo to Shopify, choose which list gets new subscribers, turn on onsite tracking, build one three-email welcome flow, switch it on, and only then worry about campaigns, segments and fancier flows. Set up a branded sending domain early, because it takes DNS changes that can take up to 48 hours to verify. The order below is designed so that each step makes the next one testable.

The order, in one table

StepWhat you doWhy it comes here
1Disconnect any old email integrationPrevents duplicate opt-in emails
2Install the Klaviyo Shopify integrationSyncs customers, orders and subscribers
3Pick the list that receives subscribersA welcome flow needs a trigger list
4Turn on onsite tracking and the app embedBrowse and cart events depend on it
5Add a sign-up formNothing to send to without subscribers
6Build the welcome flow and set it LiveFirst automated revenue and trust
7Set up a branded sending domainReputation and inbox authentication
8Add event-based flows and segmentsOnly after the basics are sending

1 and 2: Connect Shopify the safe way

Klaviyo’s Shopify setup article says to disconnect an old email provider from Shopify first, warning that failing to do so could result in double opt-in emails to existing subscribers. Then, in Klaviyo, go to Integrations, search for Shopify, install it, enter your store URL in the mystore.myshopify.com format, review the sync options and approve the permissions.

The integration syncs customer profile and order data from Shopify, along with email subscribers who accept marketing at checkout or through Shopify sign-up forms. SMS subscribers sync too once text messaging is set up in Klaviyo. You can also send some Klaviyo data back to Shopify; choose that deliberately, since Klaviyo notes that a synced locale can overwrite a customer’s existing Shopify locale.

3: Choose the list that receives subscribers

Under sync settings, choose the list for subscribers coming from Shopify. This choice is the one that most often breaks the first flow. Klaviyo’s help center says that for Shopify sign-ups to start a welcome series, the integration must be set to add subscribers to a list, via the option to sync your Shopify email subscribers to the selected list. If you skip it, customers who accept marketing never reach the list your flow watches.

One list per audience keeps segmentation simple. We run separate lists per site for our own travel sites for exactly that reason, so each audience can be messaged and measured on its own.

4: Turn on onsite tracking

Enable onsite tracking, then switch on the Klaviyo app embed in the Shopify theme editor and save. Per Klaviyo’s article, Viewed Product and Active on Site events are on by default once the embed is enabled. Viewed Collection, Submitted Search and Added to Cart need the Track behavioral events setting, and Klaviyo says those require Shopify Network Intelligence to be enabled or events may not be attributed to profiles. Visitors in the EU, EEA, UK and Switzerland may depend on consent under Shopify’s privacy settings.

Check the Historical data section in Klaviyo afterward to confirm the first sync is progressing before you build anything on it.

One note from our own account: Klaviyo showed an “add onsite tracking” alert even after we had installed the snippet manually. That was a false positive from its detector for a manual install, and dismissing it was correct. On a standard Shopify install you should use the app embed, so you will not hit this.

5: Add a sign-up form

Start with one form and one clear offer. A popup that triggers on exit intent or after a delay, plus an embedded form in the footer, is plenty. Two form-building lessons from our own builds, both about layout inside Klaviyo’s editor:

  • Blocks placed in the same row render side by side; put one block per row if you want a stacked layout.
  • For a button, the color setting controls the button fill and the background setting controls the block behind it. We once published a form with a white label on a white button because we set them the other way round.

Forms created through Klaviyo’s API arrive as drafts and must be published in the Forms UI, which is worth knowing if you automate anything. Always load the page and trigger the form yourself after publishing. We confirmed one popup was actually firing by checking that the Klaviyo script was loaded on the live page.

6: Build the welcome flow

Klaviyo’s welcome series guide walks through it: Flows, Create Flow, Build your own, name it, choose the Added to list trigger and your main subscriber list, add email actions and delays, then set it Live. It recommends three emails over about a week:

  1. Email 1: immediately after sign-up, no delay.
  2. Email 2: three days after sign-up.
  3. Email 3: four days after Email 2.

Our own welcome flows for three email lists follow the same shape (immediately, plus three days, plus seven days), and the one lesson that mattered was operational: a flow does nothing until it is Live. Klaviyo says so directly: a flow left in draft will not send welcome emails automatically.

Other behaviors worth knowing:

  • List-triggered flows default to no re-entry, and a person can only receive messages in a list-triggered flow once. Re-subscribers will not get the series again.
  • Importing contacts into the list can trigger the flow. Turn off list-triggered flows before a bulk import.
  • Filters are optional. Without them the series goes to everyone who joins the list.

What to put in the three emails: what the list is and what to expect, your most useful content or best-selling products, and a proof or policy email (how you handle returns, shipping or corrections). Keep the first email short and make unsubscribing easy.

7: Set up a branded sending domain

Klaviyo’s sending domain article explains the default: most accounts start on a shared IP and Klaviyo’s shared domain, and recipients see “via klaviyomail.com” beside the sender. A branded domain makes mail appear from your brand and helps inbox providers authenticate you. The steps are: choose a send type, go to Settings, Domains, add an unused subdomain such as send under your root domain, choose Dynamic (NS records, recommended) or Static (CNAME records) routing, optionally add a DMARC record, publish the DNS records, verify (up to 48 hours) and activate. A new marketing domain should be warmed gradually over roughly two to four weeks.

Two constraints we have run into with our own account, so check them first:

  • The from address must align with the sending domain. Klaviyo states that the friendly from address’s domain must align with the root domain of your branded sending domain. If you send from a free-mail address like Gmail, it cannot align, and our notes record that this fails DMARC alignment and will land in spam for Gmail and Yahoo recipients at volume.
  • One root sending domain per account. In our account, Klaviyo allowed only one root sending domain, and a second brand’s subdomain was rejected with a root-domain mismatch error. If you run several brands, plan for separate accounts or a shared sending subdomain structure before you commit.

Klaviyo says accounts with 5,000 or more active email profiles should have a branded domain with DMARC. If you are far below that, the shared domain is workable for early lifecycle email, but it is not a long-term answer.

8: Event-based flows and segments

After the welcome flow is sending, add flows triggered by shopping behavior. Two technical points matter more than the template design:

  • Event variables only work in metric-triggered flows. Klaviyo says event variables can only be used in metric-triggered flow messages; list-, segment- and date-triggered flows have no event to pull from. We hit this in practice: a flow triggered by entering a segment has no event context, so we had to write the data we needed onto the profile as properties and reference those in the email.
  • Segment-triggered flows fire on entry. Existing members who were already in the segment before the flow went live will not trigger it. If you need to reach them, backfill the event or property after the flow is live. Segment membership can also lag behind newly ingested events by around fifteen minutes, so do not panic at an empty segment right after a backfill.

Name your events carefully before building flows around them; renaming a metric later breaks every flow that uses it.

Cost and limits

Per Klaviyo’s pricing page as of October 2026, the free plan includes up to 250 active profiles and 500 email sends per month. Our own account is on that tier and we watch both numbers, because a few flows and a modest list reach 500 sends quickly. Paid pricing depends on active profile count; use the slider on the pricing page for your list size rather than trusting a figure in a guide.

Common mistakes

  • Forgetting to set the flow Live.
  • Not syncing Shopify subscribers to the list the flow watches.
  • Importing a list while a list-triggered flow is on.
  • Sending from a free-mail address and wondering why deliverability is poor.
  • Building a segment-triggered flow and expecting event data in the email.
  • Piling on flows before the welcome series is proven.

What to do next

Work through steps 1 to 6 on a test profile before announcing anything, confirm each email arrives, then do the sending domain. If you are weighing platforms first, read our Klaviyo vs Mailchimp comparison. If recurring orders are part of your plan, see how email events fit with the subscription apps in our comparison. If Shopify Plus or a custom front end is in your plans, read when headless is worth it because onsite tracking depends on how the storefront loads scripts.

Frequently asked questions

Is Klaviyo free for a small Shopify store?

As of October 2026, Klaviyo's pricing page lists a free plan with up to 250 active profiles and 500 email sends per month, plus small mobile-message and Composer allowances. Paid email plans scale with active profiles, and the page we read did not show the paid tiers, so check the pricing slider for your list size.

What should my first Klaviyo flow be?

A welcome series triggered by your main subscriber list. Klaviyo's guide recommends three emails over about a week: one immediately, one three days after sign-up, and one four days after that. Then set the flow to Live, because a flow left in draft does not send.

Do I need a branded sending domain?

Most accounts start on Klaviyo's shared domain, and recipients may see a 'via klaviyomail.com' label. Klaviyo says accounts with 5,000 or more active email profiles should set up a branded domain with DMARC to avoid disruption from Gmail and Yahoo sender requirements. Below that it is still a good step for reputation and trust.

Why didn't my Shopify sign-ups trigger the welcome flow?

Klaviyo's help center says the Shopify integration must be set to add subscribers to a list for sign-ups through Shopify forms or checkout to trigger a list-based welcome flow. Check the sync setting on the integration page, then confirm the flow is Live.

Can I use Klaviyo and my old email platform together?

Disconnect the old Shopify email integration first. Klaviyo warns that leaving it connected could cause double opt-in emails to existing subscribers.