The Complete Klaviyo + Shopify Integration Guide: Setup, Flows & Best Practices
Klaviyo and Shopify together generate more revenue per subscriber than any other email platform + e-commerce stack combination. That’s not opinion — Klaviyo’s own data shows their Shopify merchants earn an average of $85 per recipient from automated flows alone.
But here’s the problem: most stores install Klaviyo, connect it to Shopify, and stop there. They miss the advanced syncing, proper event tracking, custom properties, and flow architecture that separate stores making $2 per subscriber from stores making $15+.
We’ve integrated Klaviyo with Shopify on 500+ stores. This is the complete guide to doing it right.
Key Takeaways
- The native Klaviyo-Shopify integration syncs 6 core event types automatically — but you need to verify each one
- Onsite tracking (Active on Site, Viewed Product) requires the Klaviyo snippet to be properly installed in your theme
- Custom properties synced from Shopify (tags, metafields, customer notes) unlock powerful segmentation most stores never use
- The 7 essential flows should be live within 48 hours of integration — they generate revenue from day one
- Back-in-stock flows powered by Klaviyo’s catalog sync can recover 5-12% of lost product page visitors
- Proper UTM tagging in Klaviyo is critical for accurate Shopify revenue attribution
Part 1: Setting Up the Integration
Step 1: Install Klaviyo on Shopify
Go to the Shopify App Store and install the official Klaviyo app. Do not use third-party connectors — they break, they lag, and they miss events. The native integration is the only one worth using.
Once installed, Klaviyo will ask you to authorize access to your Shopify store. Approve all requested permissions. Klaviyo needs access to customers, orders, products, and checkout data to function properly.
Step 2: Verify the Data Sync
After connecting, go to Klaviyo > Analytics > Metrics. You should see these 6 core Shopify events populating:
- Placed Order — fires when a customer completes a purchase
- Ordered Product — fires for each individual item in an order
- Started Checkout — fires when a customer enters the checkout flow
- Added to Cart — fires when a product is added to cart (requires onsite tracking)
- Viewed Product — fires when a customer views a product page (requires onsite tracking)
- Active on Site — fires when a known subscriber is browsing your store
The first three sync automatically via the Shopify API. The last three require Klaviyo’s onsite JavaScript snippet. If you don’t see Active on Site, Viewed Product, or Added to Cart events, the snippet isn’t installed correctly.
Step 3: Verify Onsite Tracking
Go to Klaviyo > Settings > Setup > Integrations > Shopify and check the onsite tracking status. If it shows “Not Installed,” you have two options:
Option A: Automatic install (recommended)
Click “Install tracking snippet” and Klaviyo will inject the JavaScript into your theme automatically.
Option B: Manual install
If automatic install fails (common with heavily customized themes), add the Klaviyo snippet manually to your theme.liquid file, just before the closing </head> tag. The snippet code is available under Settings > Setup.
Verification: Open your store in an incognito window, browse a few products, and check Klaviyo’s Live Feed (Analytics > Live Feed). You should see Viewed Product events appearing within 30-60 seconds.
Step 4: Sync Historical Data
Klaviyo will automatically backfill up to 90 days of historical order data from Shopify. For stores with longer histories, the sync may take 24-48 hours for large catalogs (50,000+ orders).
Check the sync status under Integrations > Shopify > Sync Status. Don’t start building segments or flows until this completes — incomplete data leads to inaccurate segments.
Step 5: Enable Catalog Sync
Go to Content > Products in Klaviyo and verify your Shopify catalog is syncing. This powers:
- Dynamic product recommendations in emails
- Back-in-stock flows
- Price drop alerts
- Personalized product feeds
The catalog syncs every 6 hours by default. For stores with frequent inventory changes, you can trigger manual syncs.
Part 2: Essential Configuration
Configure Your Sending Domain
Before sending a single email, set up a dedicated sending domain. Go to Settings > Domains in Klaviyo and add your domain (e.g., send.yourstore.com). Add the required DNS records:
- DKIM records (3 CNAME records)
- SPF record (TXT record)
- DMARC record (TXT record — if you don’t already have one)
This takes 5 minutes to configure and 24-48 hours to fully propagate. Sending from a properly authenticated domain improves inbox placement by 15-25% compared to using Klaviyo’s shared domain.
Set Up Consent and Compliance
Klaviyo respects Shopify’s consent settings. Make sure your Shopify checkout has:
- Email marketing opt-in checkbox (pre-checked is legal in the US, must be unchecked by default in EU/UK under GDPR)
- SMS consent collection if you plan to use Klaviyo SMS
In Klaviyo, go to Settings > Consent and verify the consent sources are properly mapped. Shopify subscribers should appear under the “Shopify” consent source.
UTM Tracking Setup
Accurate revenue attribution requires proper UTM parameters. Go to Settings > UTM Tracking in Klaviyo and enable auto-UTM tagging. The default parameters are:
utm_source=klaviyoutm_medium=emailutm_campaign={{ campaign_name }}
These allow Shopify’s analytics (and Google Analytics) to attribute revenue back to specific Klaviyo campaigns and flows. Without this, you’re flying blind on ROI.
Part 3: Syncing Custom Properties from Shopify
This is where most stores leave money on the table. Beyond the standard events, Klaviyo can sync custom data from Shopify that unlocks advanced segmentation.
Customer Tags
Shopify customer tags sync to Klaviyo as profile properties. Use them for:
- VIP tiers — tag customers as “VIP-Gold,” “VIP-Silver,” etc. in Shopify, then build Klaviyo segments and flows around those tags
- Wholesale vs. retail — different messaging for different customer types
- Acquisition channel — tag by source (Facebook, Google, referral) for channel-specific flows
Customer Metafields
Shopify metafields sync to Klaviyo when properly configured. Common use cases:
- Birthday — trigger birthday flows with automated discount codes
- Preferences — style preferences, size, skin type, etc.
- Subscription status — for stores using subscription apps
Order Properties
Every Shopify order syncs with its complete metadata. You can segment and trigger flows based on:
- Order value
- Discount codes used
- Shipping method
- Product categories purchased
- Number of items
- Fulfillment status
Part 4: The 7 Essential Flows to Build Immediately
With the integration complete, build these flows in priority order. Combined, they typically generate 25-40% of total email revenue.
Flow 1: Welcome Series (3-5 emails)
Trigger: Subscribed to List (your main email list) Expected revenue contribution: 3-7% of total email revenue
- Email 1 (immediate): Welcome + brand story + discount code if offered
- Email 2 (Day 2): Social proof + bestsellers
- Email 3 (Day 4): Education / how to choose the right product
- Email 4 (Day 6): Discount reminder (if unused) or new arrivals
- Email 5 (Day 8): UGC showcase + final incentive push
Use Klaviyo’s Conditional Split after Email 1 to separate purchasers from non-purchasers. Purchasers skip the promotional emails and enter a post-purchase track instead.
Flow 2: Abandoned Cart (3-4 emails)
Trigger: Started Checkout Filter: Has not Placed Order since starting this flow Expected revenue contribution: 8-15% of total email revenue
- Email 1 (4 hours): Simple reminder with cart contents
- Email 2 (24 hours): Address objections (shipping, returns, reviews)
- Email 3 (48 hours): Urgency or incentive
- Email 4 (72 hours): Final reminder (optional, for high-value carts only)
Use Klaviyo’s Dynamic Cart Block to auto-populate the exact products left in cart with images, prices, and direct links back to checkout.
Flow 3: Browse Abandonment (2-3 emails)
Trigger: Viewed Product Filter: Has not Started Checkout and has not Placed Order Expected revenue contribution: 3-8% of total email revenue
- Email 1 (2 hours): “Still looking at [Product Name]?”
- Email 2 (24 hours): Social proof for that product + related items
- Email 3 (48 hours): Category-level recommendations
Flow 4: Post-Purchase (3-5 emails)
Trigger: Placed Order (Fulfilled) Expected revenue contribution: 5-10% of total email revenue
- Email 1 (immediately after fulfillment): Shipping confirmation + what to expect
- Email 2 (Day 3): Usage tips / how to get the most out of the product
- Email 3 (Day 7): Review request
- Email 4 (Day 14): Cross-sell related products
- Email 5 (Day 30): Replenishment reminder (for consumable products)
Flow 5: Winback (3-4 emails)
Trigger: Placed Order (date-based, 60-90 days ago) Filter: Has not Placed Order since trigger event Expected revenue contribution: 2-4% of total email revenue
- Email 1: “We miss you” + what’s new
- Email 2 (Day 3): Personalized recommendations based on past purchases
- Email 3 (Day 7): Incentive offer
- Email 4 (Day 14): Final attempt + sunset warning
Flow 6: Back-in-Stock
Trigger: Back in Stock event (requires Klaviyo catalog sync) Expected revenue contribution: 1-3% of total email revenue
Single email sent immediately when a previously out-of-stock product returns. These emails have some of the highest conversion rates we see — 12-18% click-to-purchase — because the subscriber already expressed intent.
Flow 7: Sunset / Re-engagement
Trigger: Profile property — hasn’t opened or clicked in 90+ days Purpose: List hygiene (not direct revenue)
- Email 1: “Are you still interested?” with re-engagement incentive
- Email 2 (Day 7): Final email with clear unsubscribe option
- If no engagement after Email 2: suppress the profile from campaigns
This flow is critical for maintaining deliverability. Klaviyo’s engagement-based segments make it easy to identify disengaged subscribers.
Part 5: Advanced Shopify + Klaviyo Tactics
Dynamic Coupon Codes
Use Klaviyo’s Shopify Coupon integration to generate unique, single-use discount codes. Go to Content > Coupons and connect a Shopify Price Rule. Each subscriber gets a unique code, which prevents code sharing and leakage.
Predictive Analytics
Klaviyo’s Predictive Analytics (available on paid plans) uses your Shopify order history to calculate:
- Predicted next order date — trigger flows right before a customer is likely to reorder
- Predicted customer lifetime value — segment by future value, not just past spend
- Churn risk — identify at-risk customers before they leave
Build segments around these predictive properties and create targeted flows for each. Stores using predictive segments see 20-30% higher flow revenue compared to standard time-based triggers.
Product Review Integration
Connect your Shopify review app (Judge.me, Loox, Stamped, etc.) to Klaviyo. This allows you to:
- Trigger review request emails from Klaviyo instead of the review app (better deliverability and design control)
- Include star ratings and review counts in email templates
- Segment by customers who have/haven’t left reviews
Multi-Currency and International
For Shopify stores selling internationally, Klaviyo supports multi-currency dynamic content. Use conditional blocks in your email templates to show prices in the subscriber’s local currency based on their Shopify profile data.
Common Integration Problems and Fixes
Events Not Syncing
Symptom: Placed Order or other events stop appearing in Klaviyo. Fix: Go to Integrations > Shopify and click “Resync.” If that doesn’t work, disconnect and reconnect the integration. This doesn’t delete your flows or data.
Duplicate Profiles
Symptom: The same customer appears multiple times with different email addresses. Fix: Use Klaviyo’s Merge Profiles feature. For bulk duplicates, contact Klaviyo support for a bulk merge.
Revenue Attribution Discrepancies
Symptom: Klaviyo shows different revenue numbers than Shopify. Fix: Klaviyo uses a 5-day click / 24-hour open attribution window by default. Shopify attributes differently. Align the attribution windows or use UTM-based attribution as the source of truth.
Slow Sync After Theme Changes
Symptom: After a Shopify theme update, onsite events stop tracking. Fix: Reinstall the Klaviyo tracking snippet. Theme updates often overwrite the injected code.
The Bottom Line
The Klaviyo + Shopify integration is powerful out of the box, but it reaches its full potential only when you properly configure the data sync, build the right flows, and leverage advanced features like predictive analytics and dynamic coupons.
Most stores are running at maybe 30% of what this integration can do. The gap between a basic setup and an optimized one is easily $5,000-$50,000+ per month in additional email revenue, depending on store size.
Get the foundation right, build the seven essential flows, and then layer in the advanced tactics. That’s the playbook.
Want us to set this up for your store? Get a Free Audit
Want Us to Implement This for Your Brand?
Get a free email audit and see exactly where you're losing revenue.
Get Your Free Audit