All segments

Klaviyo Shopify App: The Setup Most Teams Get Wrong

Klaviyo Shopify app setup: the sync settings, flow triggers and profile properties to configure first, plus the step teams skip.

  • Published
  • Reading time 8 min read
  • Author Nafiul Hasan
Klaviyo Shopify App: The Setup Most Teams Get Wrong. Diagram: the stage nobody automated. RETAIN Klaviyo Shopify App: The SetupMost Teams Get Wrong BY HAND pointerflow.com

Short answer

The Klaviyo Shopify app connects your store's customer, order and catalog data to Klaviyo so flows can trigger on real events. Installing it is five minutes; getting sync scope, consent mapping and back-order handling right is the part that decides whether your flows send accurate messages.

What the Klaviyo Shopify app actually connects

The Klaviyo Shopify app is not a messaging tool on its own. It’s a data pipe: it takes the events, properties and catalog that live inside Shopify and pushes them into Klaviyo so your flows can trigger on something real, rather than a guess. Placed Order, Started Checkout, Viewed Product, Back in Stock, refund and fulfilment status all flow through this one connection. Get the connection wrong and every flow built on top of it inherits the fault, whether that’s a Welcome series that fires on the wrong trigger or a Back in Stock email sent to someone who already has the item on order.

This guide is for brands running $3M-$30M in revenue on Shopify Plus or a comparable paid subscription platform, where flow revenue is a meaningful enough line that a misconfigured sync costs real money. If you’re pre-revenue or running a single-founder store on Shopify’s basic plan, the stakes here are lower and a default install will likely serve you fine — this level of setting-by-setting detail isn’t necessary yet.

What you need before you install the app

Before you touch the install button, confirm three things. First, who owns the Shopify admin login that will authorise the app — it needs full store-admin access, not a limited staff account, or the sync will silently skip catalog or customer scopes. Second, whether you’re migrating from another email platform. If Mailchimp, Omnisend or a legacy ESP is still connected and sending, plan the cutover date before you install Klaviyo, so you’re never running two abandoned-checkout emails at once. Third, pull a list of every custom checkout field, subscription add-on and loyalty integration currently live on the store — anything Shopify doesn’t track natively (subscription renewal dates, loyalty tier, wholesale account flag) needs its own data source, because the Shopify app alone won’t carry it.

Step 1: Install the Klaviyo Shopify app from the Shopify App Store

Search “Klaviyo” in the Shopify App Store and install directly — never install through a third-party link, since Klaviyo’s own listing is the only one that receives Shopify’s official API updates. On install, Shopify prompts you to approve the permissions Klaviyo requests: customer data, order data, product catalog and (if you use it) subscription data. Approve all of them at this stage. Restricting scope now just means you’ll be back in this settings screen re-approving them later once a flow fails for lack of data.

Step 2: Connect Klaviyo to your Shopify data feed

Inside Klaviyo, go to Integrations and confirm Shopify shows as connected, not just installed — the two are different states. A store can show the app installed on the Shopify side while Klaviyo’s own integration screen still shows a pending or failed handshake, usually because the OAuth token expired mid-authorisation. If Klaviyo’s integration page shows anything other than “Connected” in green, disconnect and reconnect rather than troubleshooting around it; a partial connection here causes intermittent sync gaps that are far harder to diagnose two months in.

Step 3: Set your sync scope — customers, catalog, and historical orders

Klaviyo gives you a choice on first sync: pull historical order data or start fresh from the connection date. Pull the history. A customer who ordered eight months ago but not in the last sixty days is exactly the “lapsed” segment your win-back flow needs to see, and without historical sync that segment starts empty and stays empty until enough new data accumulates. Large catalogs and long order histories take longer to finish the initial backfill; if a segment count looks wrong on day one, check the sync status page before assuming a flow is broken.

Set the catalog sync to include product variants, not just parent products, and confirm “Back in Stock” is enabled at the variant level. A product showing “in stock” while the one variant a customer wanted is still out is the single most common Back in Stock complaint from Shopify merchants, and it traces straight back to this setting.

Shopify’s checkout consent checkbox and Klaviyo’s own sign-up forms create two separate consent records, and the app does not automatically reconcile them into one. Go to Klaviyo’s Shopify integration settings and confirm the “Sync Shopify’s marketing consent” toggle is on for both email and SMS, if you collect SMS consent at checkout. Then check your Klaviyo profile properties for email_marketing_consent and sms_marketing_consent on a handful of recent test customers — don’t assume the toggle worked; verify it against real profiles.

Legal exposure sits right here. Consent rules under TCPA, CAN-SPAM, GDPR and CASL vary by where your customer is and what they agreed to, and the specifics change. Confirm your checkout consent language and your Klaviyo suppression logic with counsel rather than relying on a default setting to be compliant out of the box.

Step 5: Turn on the core flows — Welcome, Abandoned Checkout, Post-Purchase, Back in Stock

Klaviyo ships pre-built flow templates the moment the integration goes live: Welcome Series, Abandoned Checkout, Browse Abandonment, Post-Purchase and Back in Stock. Switch on Abandoned Checkout and Post-Purchase first — across Klaviyo’s own benchmark set of more than 183,000 brands, automated flows account for 41% of total email revenue (Klaviyo, vendor-reported), and those two flows typically carry the largest share of that number because they trigger on the highest-intent moments: someone who started checking out, and someone who just bought.

Before you turn each flow live, go into Shopify’s own notification settings and disable Shopify’s native abandoned-checkout email if it’s still on. Running both sends the same customer two competing recovery emails within minutes of each other, which reads as spam regardless of how good either email is.

Step 6: Set flow trigger delays and filters

Every flow’s trigger has two parts worth checking individually: the delay before the first message sends, and the filter that decides who’s excluded. For Abandoned Checkout, add a filter excluding anyone who has a “Placed Order” event for the same cart contents since the checkout started — without it, a customer who abandoned, came back on their own, and bought anyway can still receive a “you left this behind” email for something they already own.

For Back in Stock, the trigger filter needs to check against your pre-order and back-order tag, not just raw inventory count. This is the step covered next, and it’s the one most teams miss.

The step most teams get wrong: back-order and pre-order sync

Here’s the failure that shows up most often once a Klaviyo Shopify app connection has been live for a few months: a product goes out of stock, customers subscribe to a Back in Stock alert, inventory is replenished via a pre-order or back-order mechanism rather than a straight restock, and Klaviyo fires the “it’s back” email to everyone on the waitlist — including customers who already placed a back-order for that exact item and are just waiting on fulfilment.

The Klaviyo Shopify app syncs on inventory quantity going from zero to a positive number. It does not, by default, distinguish “restocked and ready to ship” from “back-order slots opened, ships in six weeks.” If your store sells anything on pre-order or back-order — apparel drops, limited-run products, made-to-order goods — build a custom property or tag in Shopify that marks an order as a back-order, sync that tag into Klaviyo, and add it as an exclusion filter on your Back in Stock flow. Skip this and the flow sends an “in stock, buy now” message to someone who already bought and is annoyed to be told to buy again.

How to verify the integration is working

Don’t trust the green “Connected” status alone. Run a manual test: place a test order on your own store, abandon a checkout deliberately, and watch both events land in a test profile inside Klaviyo within a few minutes. Check that the order value, product names and discount code (if used) all show correctly on the Klaviyo profile timeline, not just that an event fired. Then check one real customer profile against Shopify’s own customer record side by side — same email marketing consent, same order count, same lifetime value. A mismatch on any of those three during verification means the sync has a gap worth finding now, before a flow sends on bad data.

Finally, use Pointerflow’s flow revenue calculator to sanity-check what your Welcome, Abandoned Checkout and Post-Purchase flows should be generating against your current traffic and order volume. If your actual Klaviyo flow revenue sits well below that estimate once the integration has been live a few weeks, the shortfall usually traces to sync scope, consent mapping, or a missing exclusion filter, rather than the flows themselves needing a rewrite.

This setup work is not really about the Klaviyo Shopify app in isolation. It’s a lifecycle flows problem: the app is only as good as the data feeding it and the filters governing who sees what, and that’s the layer where most of the revenue sits or leaks. If your flows are live but the numbers don’t match what the data should support, that’s the gap Pointerflow’s lifecycle flows service is built to close, and it’s exactly the kind of setup work we do for scaling brands moving off a default integration and onto one that’s actually configured for their catalog.

Sources

  • Klaviyo, more than 183,000 brands: automated flows account for 41% of total email revenue (vendor-reported).

Frequently asked

Does the Klaviyo Shopify app cost anything on top of my Klaviyo plan?

The app itself is free to install from the Shopify App Store. What you pay for is your Klaviyo plan, which is priced by the number of profiles you hold, not by the number of stores you connect. Check Klaviyo's own pricing page for current tiers before you commit.

Can I connect more than one Shopify store to one Klaviyo account?

Yes, Klaviyo supports multiple Shopify integrations on one account, each with its own sync settings. Keep the catalogs separate in your flow filters, or a Back in Stock email for one store's catalog can trigger against the wrong store's inventory feed.

Will installing the Klaviyo Shopify app slow down my store?

No. The app reads from Shopify's webhooks and APIs in the background; it does not add script tags that render on the storefront the way some review-widget apps do. Any speed complaint after installation is almost always a different app, not this one.

Does the Klaviyo Shopify app replace Shopify Email or Shopify's own marketing tools?

It runs alongside them rather than replacing them. Klaviyo becomes your flow and campaign engine; Shopify stays your storefront and checkout. Turn off Shopify's own abandoned-checkout emails once Klaviyo's flow is live, or a customer gets two competing messages.

What happens to historical order data when I first connect Klaviyo to Shopify?

Klaviyo pulls in your historical order history during the initial sync, which is what makes segments like 'lapsed 90-day customers' usable on day one rather than after three months of new data. Very large catalogs or order histories can take longer to finish backfilling.

Do I need a developer to set up the Klaviyo Shopify app?

No. The app and its default flows install without code. A developer becomes useful only if you want custom properties pulled from checkout, a headless storefront, or events Shopify doesn't send by default, like a loyalty-tier change.

Why are my Klaviyo flow revenue numbers different from Shopify's own reports?

Klaviyo attributes revenue to the last flow or campaign a customer clicked within its attribution window, while Shopify's reports show total order value regardless of channel. The two are measuring different things and will never match exactly; use Klaviyo's number for flow performance, Shopify's for total sales.

Can I use the Klaviyo Shopify app with a subscription platform like Recharge?

Yes, but Recharge needs its own integration alongside the Shopify one, because subscription renewal, skip and cancel events don't come through the standard Shopify order webhook. Without it, your win-back and dunning flows only see one-off orders, not subscription activity.

How do I stop the Klaviyo Shopify app from double-messaging customers who already bought?

Add a filter to your acquisition and browse-abandonment flows that excludes anyone with a 'Placed Order' event for the relevant product in a set lookback window. Without that filter, a customer who already checked out can still land in an abandoned-cart send.

Does the Klaviyo Shopify app sync SMS consent automatically?

It syncs whatever consent Shopify itself captured at checkout, but Shopify's checkout consent checkbox and Klaviyo's own SMS sign-up forms are separate consent records. Confirm with your legal counsel that your checkout language and Klaviyo's consent property match what your compliance obligations require.

What's the difference between the Klaviyo Shopify app and the Klaviyo API integration?

The Shopify app is a pre-built connector: install it, and Shopify's standard events, properties and catalog map into Klaviyo without configuration. The API integration is for custom data Shopify doesn't send natively, and it requires a developer to build and maintain the mapping.

Next step

Is this your lifecycle flows problem, or a symptom of another one?

Bring your numbers — the churn split, the decline rate, whatever your flows are earning — and we will tell you which of them is the expensive one.

Book a call →