integrationshopifyklaviyoautomation

Shopify and Klaviyo Integration: Setup, Sync, and Flows That Convert

The native Shopify-Klaviyo integration covers most ecom email needs. Setup, what syncs, key flows, and when to reach for iPaaS or custom.

VV
Valerian Valkin Founder & CEO, 2V Automation
·
Jump to a section

You can connect Shopify and Klaviyo three ways: through Klaviyo’s native Shopify integration, via an iPaaS for custom workflows, or with a custom build via APIs. For 95% of ecom stores the native integration is the right answer - it’s Klaviyo’s bread-and-butter use case, syncs everything you need for email and SMS marketing automatically, and powers their reputation as the ecom email tool.

Here’s how setup actually works, what flows you should build first, and where teams trip up.

The 60-second answer

Install the native Klaviyo Shopify integration. It syncs orders, customers, products, checkouts, refunds, and fulfillment events automatically, and gives you trigger access to all of them in flows. Setup is one OAuth click plus a few config decisions. You’d only reach for iPaaS if you’re doing something Klaviyo’s native integration doesn’t cover - like syncing data from a non-Shopify source into the same Klaviyo profile.

The three integration paths

Path 1: Native Klaviyo Shopify integration

The standard install. Klaviyo built and maintains it.

What you get:

  • Orders - order created, placed, fulfilled, cancelled, refunded events available as flow triggers
  • Checkout Started - the trigger that powers abandoned-cart flows
  • Customer sync - Shopify customers become Klaviyo profiles with order history, lifetime value, and product preferences
  • Products - full product catalog synced for dynamic product recommendations in emails
  • Categories / Collections - synced for segmentation (“bought from Sale collection”)
  • Refunds - trigger flows like “win-back after refund”
  • Add to Cart - Klaviyo’s onsite tracking captures this (requires the Klaviyo onsite tracking snippet)
  • Viewed Product - same as Add to Cart (requires snippet)

Pros: Native, deep, fast setup, maintained by Klaviyo, no per-event charge. The integration is rich enough that almost every ecom-Klaviyo use case is covered.

Cons: Some advanced data (custom Shopify metafields, line item properties for B2B/configurator products) requires extra setup. Two-way sync (Klaviyo → Shopify) is limited - Klaviyo can update Shopify customer notes/tags via flows but isn’t a full bi-directional sync.

Pricing: Free integration. Klaviyo charges by contact volume - Klaviyo Free up to 250 profiles, paid tiers scale from there based on active profile count.

Path 2: iPaaS workflows

Zapier, Make, n8n with both Shopify and Klaviyo connectors.

When this makes sense:

  • You’re aggregating data from multiple sources (Shopify + Amazon + retail POS) into one Klaviyo profile
  • You need to enrich a Klaviyo profile with data from a third system (loyalty platform, support tool) at the moment of a Shopify event
  • You’re filtering complex conditions in middleware before triggering Klaviyo events

Pros: Cross-system flexibility.

Cons: You’re reinventing what the native integration does for free. Per-task pricing. Most teams don’t need this layer.

Path 3: Custom integration

Klaviyo’s Events API (POST events) and Shopify’s webhooks + REST/GraphQL APIs let you build any custom flow.

When:

  • You have a non-standard Shopify customization (headless, subscription app, B2B configurator) where the native integration misses key data
  • You’re doing high-volume real-time event tracking from custom storefronts
  • You need fine-grained control over profile attribution and event payloads

Pros: Full control.

Cons: You’re rebuilding what Klaviyo provides for free.

What flows between Shopify and Klaviyo

Shopify → Klaviyo (the main direction)

  • Customer creation/update
  • Order events (placed, fulfilled, cancelled, refunded)
  • Checkout Started (abandoned cart trigger)
  • Product catalog (for dynamic recommendations)
  • Collections and tags (for segmentation)

Onsite tracking → Klaviyo

  • Active on Site (when a profile visits the store)
  • Viewed Product
  • Started Checkout
  • Added to Cart (requires Klaviyo snippet)

Klaviyo → Shopify (limited)

  • Update customer tags via flow actions
  • Update customer notes via flow actions
  • Discount code generation for use in campaigns

What Klaviyo doesn’t push back: inventory updates, product creation, order modification. Klaviyo is fundamentally a marketing tool, not an OMS.

Step-by-step: native integration setup

1. Install the Klaviyo integration in Shopify

In your Shopify admin: Apps → Visit Shopify App Store → search “Klaviyo” → Add app. OAuth-authorize.

Alternatively, in Klaviyo: Integrations → Add integration → Shopify. Either direction works.

2. Sync historical data

After installing, Klaviyo offers to sync historical orders and customers (typically the last 12 months by default; configurable). Run this. It backfills your Klaviyo profiles with prior order history, which is essential for any segmentation that depends on “ever purchased” / “last purchase date” / “LTV.”

The historical sync runs in the background - for a store with 100K+ orders, expect a few hours to a day.

3. Install the onsite tracking snippet

For Add to Cart, Viewed Product, and Active on Site events:

  • In Klaviyo: Account → Settings → API Keys → Public API Key
  • Install the snippet on your Shopify theme. Klaviyo’s docs walk through the exact theme.liquid edit.
  • Once installed, anonymous browsers get tracked; the moment they identify (via a form fill or login), the events are merged into their profile.

For most modern Shopify themes, Klaviyo also offers an app block in the theme editor that installs the snippet automatically - check there first before manual edits.

4. Set up sign-up forms

Klaviyo’s sign-up forms (popup, embedded, flyout) capture email/SMS opt-ins on the storefront. Build forms in Sign-up Forms inside Klaviyo and assign them to your active list.

5. Build the foundational flows

The flows every Shopify-Klaviyo setup should have, in priority order:

  1. Welcome Series - triggered on list join. Typical 3-4 emails over 7-14 days introducing the brand
  2. Abandoned Cart / Abandoned Checkout - triggered on Checkout Started, filtered to “no Placed Order in last 4 hours.” Typical 2-3 emails over 24-72 hours
  3. Browse Abandonment - triggered on Viewed Product, no Add to Cart. One email after 1-3 hours
  4. Post-Purchase - triggered on Placed Order. Thank you, expectation setting, cross-sell after delivery
  5. Win-back / Lapsed Customer - segmented on “last order > 60-90 days ago”
  6. Sunset / Inactive - profiles with no engagement in 6+ months get removed to control costs

Klaviyo provides template flows for all of these. Start with templates, customize the copy.

6. Set up segments

Segments are dynamic groups based on profile properties and event history. Useful ones:

  • VIP customers - total spent > $X or order count > Y
  • Recent purchasers - placed order in last 30 days (suppress for sales emails)
  • Engaged subscribers - opened or clicked an email in last 30 days
  • At-risk customers - placed order 60-90 days ago, hasn’t purchased since

7. Test before going live

Send test emails to yourself for every flow. Trigger them with real test data (place a real test order, abandon a real cart). Verify dynamic product blocks pull the right products and pricing.

The flows that actually matter

If you’re building from scratch and want the 80/20 of revenue impact, focus on these:

Abandoned Cart - every ecom store’s #1 revenue-driving flow. Properly built, it recovers 5-15% of abandoned carts. Use a single-product hero image, urgency copy, and a discount on email 2 or 3.

Welcome Series with discount - converts new subscribers at 2-5x the rate of cold campaigns. Offer a discount in email 1, build brand context in emails 2-3, soft-sell collection or category in email 4.

Post-Purchase - review request after delivery, cross-sell email 7-14 days after delivery, win-back if no second purchase by day 60.

Browse Abandonment - lower volume but high intent. Triggers when someone views a product and doesn’t buy. One email is usually enough.

SMS abandoned cart - if you have SMS opt-in, an SMS after 1 hour and an email after 4 hours often outperforms email-only.

Common pitfalls

Historical sync limits

By default Klaviyo syncs 12 months of orders. If your store has been running longer and you want longer history (for LTV calculations, lifetime spend segments), enable extended history sync in the integration settings. This costs nothing but takes longer.

Klaviyo profile counts

Klaviyo’s pricing is based on active profiles. “Active” means “in your account, regardless of email or SMS consent.” Profiles include anyone who’s ever made a purchase or signed up - but also any anonymous browser who eventually became identified. Stores with high traffic can accumulate large profile counts fast.

Mitigation: build a sunset/suppression flow that removes profiles with 6+ months of no engagement and no recent orders. This keeps the active count down and your bill manageable.

SMS compliance

SMS consent is governed by TCPA in the US (and equivalents elsewhere). Explicit double opt-in is required. Klaviyo’s sign-up forms include the right consent language by default; don’t strip it. Sending SMS without proper consent is a real legal risk.

Discount code uniqueness

Klaviyo can generate unique Shopify discount codes per profile (for “your personal 10% off” emails). Setup requires connecting Klaviyo’s discount feature to Shopify and pre-staking a code pool. If you run out of codes, the flow sends the email without a code - disastrous. Monitor code pool depth.

Dynamic product blocks

Klaviyo can show “products you recently viewed” or “similar to what you bought” in emails. For these to work, the onsite tracking snippet must be installed correctly and your product catalog must be synced. Test these blocks with multiple profiles to make sure they render right.

Theme updates breaking tracking

When your Shopify theme is updated (or you switch themes), the onsite snippet may get stripped. Add a monitoring check - “no events from onsite tracking in 24h” → alert.

Order events vs. checkout events

A common confusion: “Placed Order” fires when payment is confirmed. “Checkout Started” fires when someone enters checkout. “Ordered Product” is the line-item event (one fires per product in the order). Pick the right one for your flow trigger.

Pricing

ComponentCost
Klaviyo Free (up to 250 profiles, 500 email sends)Free
Klaviyo Email plan (paid)Starts ~$30/month for 500 profiles; scales with profile count
Klaviyo SMS plan (add-on)Separate per-message pricing
Shopify (Basic to Plus)$39 to $2,300+/month
Native integrationFree
iPaaS (if you need it)$30-$300/month

When to use which path

NeedRecommended path
Standard ecom email flowsNative integration
SMS marketing alongside emailNative + Klaviyo SMS
Aggregating multi-channel customer data into KlaviyoiPaaS
Custom Shopify app data → Klaviyo eventsCustom + Events API
Headless storefront trackingCustom + Events API
Loyalty platform data → Klaviyo segmentsiPaaS or native partner integration

If your Shopify-Klaviyo setup is running but you suspect there’s revenue being left on the table - flows that should be more aggressive, segments you’re missing, post-purchase moments that aren’t instrumented - the Automation Discovery Week maps the gaps.

Frequently asked questions

Is the Klaviyo Shopify integration free?

Yes. The integration itself is free to install and use. You pay only for Klaviyo's plan based on your active profile count (free up to 250 profiles; paid tiers scale up from there) and for SMS sends if you use SMS.

Does Klaviyo sync past Shopify orders?

Yes. After installing the integration, Klaviyo offers a historical sync - default 12 months, configurable to longer. This is essential because most useful segments (LTV, last purchase date, repeat customer) depend on historical order data being in Klaviyo.

Can I use Klaviyo with Shopify Plus?

Yes - and many Plus merchants do. The native integration works the same way on Plus. The advantage with Plus: access to checkout extensibility, scripts/functions, and more advanced data layer events you can push to Klaviyo for richer segmentation.

How do I track abandoned carts in Klaviyo?

Klaviyo uses the "Checkout Started" event from Shopify as the trigger. Build a flow with that trigger, filter conditions like "no Placed Order in last 4 hours and last 30 days," and send a series of 2-3 emails. The integration handles event delivery automatically - no extra setup needed beyond installing the snippet.

What's the difference between "Placed Order" and "Ordered Product"?

"Placed Order" fires once per order, with full order details. "Ordered Product" fires once per line item in the order - so a 3-product order fires Placed Order once and Ordered Product three times. Use Placed Order for order-level flows (thank you, post-purchase) and Ordered Product for product-specific flows (review request for a specific item).

Can Klaviyo update Shopify customers?

Limited. Klaviyo flows can tag Shopify customers and update customer notes. It can't update broader fields, modify orders, or create products. Klaviyo is a marketing tool, not an order management system. For deeper write-backs, use an iPaaS workflow.

Does Klaviyo work with Shopify subscription apps?

Most major subscription apps (Recharge, Bold, Stay AI, Skio, Loop) have specific integrations with Klaviyo that emit subscription events (created, cancelled, paused, renewed) as Klaviyo events. Build flows on those events for subscription-specific lifecycle marketing. Check the subscription app's docs for the exact event names.

How does Klaviyo handle SMS compliance?

Klaviyo's sign-up forms include the legally required consent language for SMS (TCPA in the US). Profiles are double-opt-in. Klaviyo handles unsubscribes and stop replies automatically. Don't strip the consent language from forms; it's there for legal reasons, not aesthetics.