Skip to main content
  1. Home
  2. Connectors
  3. Shopify - Klaviyo
Shopify Klaviyo

Send every Shopify event to Klaviyo, server-side

Each event is resolved to a person against a 750M+ device graph before it reaches Klaviyo, so flows trigger on a known profile rather than an anonymous session.

4.6 out of 5 from 36 reviews on the Shopify App Store

US device IDs in the graph
750M+
Match rate on events
90%+
Identity window, per customer
Lifetime
Most brands are live
<20 min

How it flows

How a Shopify event reaches Klaviyo. Captured on the server, resolved to a person, then sent.

01 Capture

Captured from Shopify

One Upstack app setup that captures Shopify storefront and checkout events with the Upstack Pixel, records every order directly from Shopify, and forwards both to every tool you spend on.

See the Shopify integration
ShopifyWhat it sends
  • order_idShopify order and checkout token
  • email / phonecustomer contact from checkout
  • customer_idShopify customer record, if they have one
  • line_itemsproducts, variants and quantities
  • total / subtotal / discountorder economics

02 Understand

Resolved to one person before it leaves

Every Shopify event is matched against a 750M+ device graph, so a phone browse and a desktop checkout resolve to one customer rather than two strangers.

How resolution works
Upstack DataResolved before it is sent
  • IdentityMatched against a 750M+ device graph, so a phone browse and a desktop checkout resolve to one customer.
  • customer_typeNew or returning, resolved before send.
  • DeduplicationOne order produces one event, so a single purchase cannot trigger the same flow twice.
  • Bot and fraud filteringAutomated traffic never becomes a profile, so list quality and deliverability are not paying for it.

Messaging mistakes are expensive and public. These controls exist so a flow never fires against a profile that should not have received it.

03 Activate

Delivered to Klaviyo

Attach re-identified emails to events before they reach Klaviyo, so browse and cart flows fire for people the pixel lost.

See the Klaviyo integration
KlaviyoWhat it receives
  • email / phonethe profile key: no profile, no send
  • external_idtie a browse to a known person
  • $valueflow and campaign revenue attribution
  • event propertieswhat the flow branches on

Which events reach Klaviyo

Each Upstack event is mapped to the Klaviyo event below before it is sent.

Upstack eventSent to Klaviyo asKey data on the event
Product viewViewed ProductProductName, ProductID, Price, ImageURL
Add to cartAdded to CartProductName, ProductID, Price, Quantity, CartValue
CheckoutStarted CheckoutCartValue, ItemCount, CheckoutURL
PurchasePlaced OrderOrderID, Revenue, Items, DiscountCodes

Upstack’s identity resolution attaches the visitor’s email before an event is forwarded, and syncs profile properties ($first_name, $last_name, $city, $region) plus custom identity properties to Klaviyo.

Shopify to Klaviyo, in detail

How the Klaviyo Shopify integration and Upstack work together.

Klaviyo’s own Shopify integration identifies a shopper when they fill in a Klaviyo form, click a Klaviyo email or SMS, or check out, and only in that browser. Keep it installed. Upstack adds the returning visits Klaviyo misses on another device, in another browser or after Safari deletes its cookie: it matches each one to a known customer and sends the event to Klaviyo with their email attached, so your flows fire for them too.

Shopify eventKlaviyo metric
Product view

ProductName, ProductID, Price, ImageURL. Triggers browse abandonment.

Viewed Product - Upstackified
Add to cart

ProductName, ProductID, Price, Quantity, CartValue. Triggers abandoned cart.

Added to Cart - Upstackified
Checkout started

CartValue, ItemCount, CheckoutURL. Triggers checkout abandonment.

Checkout Started - Upstackified
A return visit

Triggers site abandonment.

Active on Site - Upstackified
Order

OrderID, Revenue, Items, DiscountCodes. Powers post-purchase and win-back flows.

Placed Order - Upstackified

Server-side events carry the “ - Upstackified” suffix by default. Turn on Use Standard Event Names on the destination to drop it. Upstack also syncs $first_name, $last_name, $city and $region, plus custom identity properties you can segment on.

Klaviyo’s native Shopify metrics

If Shopify’s Klaviyo integration also records Viewed Product, Added to Cart, Started Checkout or Placed Order, disable those overlapping metrics there, and keep the native integration on for everything Upstack doesn’t send.

One source per flow trigger

Use one source of Added to Cart events per flow, so the same shopper doesn’t enter a flow twice from two integrations.

Shopify’s own abandoned checkout emails

Turn them off under Apps, Messaging, Automations in Shopify, so shoppers don’t get two sets of reminders.

Flows from a previous tool

If Elevar, Triple Whale or another tool created secondary Klaviyo flows, disable them before Upstack’s go live. Running both sends duplicate emails.

Identity

Profiles, flows and anonymous visitors.

Klaviyo flows are metric-triggered: a profile enters the flow when the event lands on it. An add to cart from a browser Klaviyo can’t tie to a person has no profile, so the flow doesn’t fire.

How a visitor is matched

Upstack’s identity resolution runs on its servers, independent of the browser. It matches the visit against its identity graph using the IP address, user agent, device and hashed identifiers from earlier sessions, so it survives a new device, an expired cookie or an in-app browser. Then it sends the event to that person’s Klaviyo profile with their email attached.

The waterfall of flows

The Upstack team clones your browse, cart, checkout and site abandonment flows as “ - Upstack Data” copies triggered by the Upstackified metrics. Each copy waits 30 minutes longer than the original, and a 7-day exclusion filter in both directions means nobody gets both. Setup usually takes 48 to 72 hours, and your original flows stay as they are.

Visitors who never gave you an email

First-party matching only finds customers you already know. A shopper who has never given you an email stays anonymous in Klaviyo, and no flow can reach them. Reaching them takes third-party identification such as Upstack Audience, which adds them as new profiles on a list called UpstackData.

The catch

Shopify only knows a customer at checkout.

Everything before that (the browse, the add to cart, the return visit four days later) is anonymous unless something resolves it. That is the gap the flows fall into, not a problem with the flows.

Where to check in KlaviyoSending you can audit

Klaviyo Analytics Metrics

The event appears as its own metric, and the profile count on it is the number you were losing before.

What changes

What changes when Shopify feeds Klaviyo. Two gains on the Klaviyo side, two on the Shopify side.

Klaviyo

Recover carts you couldn’t email

Anonymous browsers are resolved to a known profile, so abandonment flows can trigger for visitors Klaviyo never identified.

Klaviyo

Profiles, not sessions

Events arrive attached to a resolved customer, so flow logic and segmentation work on a person.

Shopify

Orders recorded from Shopify itself

Purchases also reach Upstack directly from Shopify, about 10 minutes after the order, so an order still counts when an ad blocker stopped the pixel or the shopper closed the page.

Shopify

Recognize returning customers

Shopify customer IDs, emails and phones are matched against the graph, so repeat buyers are identified across devices.

Setup

Live in under 20 minutes.

App install, no theme edits and no developer. You need admin access to a Klaviyo account, with permission to create a Private API key with Full Access and owner or staff access to Shopify.

Upstack dashboardExample
Shopify Data source Connected
Klaviyo Destination Healthy
Read the full Klaviyo setup guide
  1. 01

    Connect Shopify

    In the Upstack dashboard, open System, then Data Sources, and click Connect Shopify. Approve the install in your Shopify Admin: Upstack reads products, orders and customers, and writes only its own pixel.

  2. 02

    Create a Klaviyo private API key

    In Klaviyo, open Settings, Account, API Keys and create a Private API key named UpstackData with Full Access. It starts with pk_ and is shown only once.

  3. 03

    Add the Klaviyo destination

    Under Destinations, click New Destination, choose Klaviyo, paste the key with no extra spaces and click Create Configuration.

  4. 04

    Turn off the overlap in Shopify

    In Shopify’s Klaviyo integration, disable the metrics Upstack now sends. Under Apps, Messaging, Automations, turn off Shopify’s own abandoned checkout emails.

  5. 05

    Ask Upstack to set up the abandonment flows

    Email support@upstackdata.com. The team clones your abandonment flows, adds the 30-minute delay and the 7-day exclusion filters, and turns on UTM tracking on every email and SMS so flow revenue shows up in Upstack.

  6. 06

    Check the metrics in Klaviyo

    Analytics, Metrics shows Viewed Product, Added to Cart, Checkout Started and Active on Site with the Upstackified suffix within a few minutes of live traffic.

After setup

What to check in Klaviyo.

  • Upstack shows the Klaviyo destination as Healthy.

  • Analytics, Metrics lists the Upstackified metrics within a few minutes of live traffic.

  • A profile’s Activity Feed shows Upstack events after a test visit.

  • Each “ - Upstack Data” flow is Live, its step statuses match the original, and its Analytics tab shows profiles entering within 24 to 48 hours.

  • A spot-checked recipient didn’t also get the standard flow’s email within the same 7 days.

Troubleshooting

Common problems and fixes.

  • Upstack events don’t appear in Klaviyo

    Check the destination is Healthy and the key isn’t read-only, then search Metrics for “Upstackified”: the events may be arriving under that name. If the destination is red, reconnect with a fresh key.

  • Shoppers get two abandonment emails

    Add the exclusion filter to both flows (Has received email 0 times in last 7 days where Flow is the other flow), with the flow names exactly as they appear, and disable flows from previous tools.

  • Low volume on the Upstack flows

    Expected in the first few days. If it stays low after two weeks, check no other tool, such as Triple Whale, is running conflicting flows.

  • A flow doesn’t send

    Both the standard and the Upstack flow must be Live, with each email step set to the same status as the original.

FAQ

Questions about Shopify and Klaviyo.

How do I connect Klaviyo to Shopify with Upstack?

Keep Klaviyo’s own Shopify integration installed. Connect Shopify to Upstack, create a Full Access private API key named UpstackData in Klaviyo and add it as the Klaviyo destination, then ask Upstack’s team to set up the abandonment flows. Most brands are live in under 20 minutes; the flows usually take 48 to 72 hours.

How does Upstack increase the number of abandoned cart flows that fire?

Shopify can only fire Klaviyo’s abandoned cart flow when it knows the visitor’s email. Upstack matches anonymous sessions to known customer profiles using cookies, click IDs and cross-session behavior, then forwards an enriched Added to Cart event so the flow fires for visitors Shopify could not identify.

Will I see duplicate events if Klaviyo’s native Shopify integration is also active?

You can. Disable the metrics in Shopify’s native Klaviyo integration that overlap with the events Upstack forwards (Viewed Product, Added to Cart, Started Checkout, Placed Order), and keep the native integration on for any events Upstack is not handling.

Which events does Klaviyo receive?

ViewContent as Viewed Product, AddToCart as Added to Cart, InitiateCheckout as Started Checkout and Purchase as Placed Order. Orders reach Upstack directly from Shopify, even when the browser pixel is blocked.

Which customer parameters are sent to Klaviyo?

Upstack’s identity resolution attaches the visitor’s email before an event is forwarded, and syncs profile properties ($first_name, $last_name, $city, $region) plus custom identity properties to Klaviyo.

How do I check that Shopify events are reaching Klaviyo?

Upstack marks the destination Healthy, and Analytics, Metrics in Klaviyo shows Upstack events such as Added to Cart - Upstackified within a few minutes of live traffic. Then contact Upstack support to set up your Upstack abandonment flows.

Do I need a developer to connect Shopify to Klaviyo?

No. Shopify connects as an app install with no theme edits, and most brands are live in under 20 minutes. Headless storefronts add the Upstack Pixel script instead of the theme app extension.

Do I have to replace my Klaviyo flows?

No. Your standard flows keep catching the visitors Klaviyo identifies itself. The Upstack copies catch the ones it misses, 30 minutes later, and a 7-day exclusion filter on both stops anyone getting both.

Can Klaviyo send abandoned cart emails to anonymous visitors?

No. A flow needs a profile with a way to contact the shopper. Klaviyo can store an anonymous visitor’s activity and add it to their profile if they identify themselves later in the same browser, but the cart doesn’t trigger a flow while they’re anonymous. Upstack closes the gap for shoppers you already know; reaching the rest takes third-party identification.

Which Klaviyo flows does Upstack add?

Copies of your browse, cart, checkout and site abandonment flows, triggered by Viewed Product, Added to Cart, Checkout Started and Active on Site with the Upstackified suffix. They use the same emails and steps as your originals.

Keep reading

More on Shopify and Klaviyo.

Related connectors

See all 408 connectors

Get Shopify talking to Klaviyo.

A 15-minute walkthrough of this connector on your own account.

21-day free trial, no card. Month to month.