Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.upstackdata.com/llms.txt

Use this file to discover all available pages before exploring further.

Data direction: This is a destination — Upstack sends event and conversion data out to this platform via server-side APIs.

What it does

Klaviyo is connected through Upstack Flows, the product that handles event delivery to marketing automation platforms. Upstack Flows sends enriched event and profile data to Klaviyo so its flows — abandoned cart, browse abandonment, checkout abandonment, post-purchase — fire on a much larger pool of visitors than Shopify and Klaviyo’s native integration can identify on their own. The practical impact is more recovered revenue. Anonymous visitors that Shopify cannot match to an email get matched by Upstack’s identity resolution and pushed into Klaviyo as enriched profiles, which means more abandoned cart flows fire, more browse abandonment emails send, and more SMS messages reach the inbox.

How it works

Upstack Flows posts events to Klaviyo’s API as custom metrics and creates or updates Klaviyo profiles with identity data resolved by Upstack ID. When the Upstack Pixel sees an anonymous visitor add to cart, identity resolution attempts to match the session to a known customer — using cookies, click IDs, and cross-session behavioral data — and attaches the email before the event is forwarded to Klaviyo. Klaviyo then has enough information to trigger flows that would otherwise never fire. Profiles synced from Upstack include standard properties ($first_name, $last_name, $city, $region) plus custom properties from Upstack’s identity resolution, so they are immediately usable for segmentation.

How Upstack works with Klaviyo

Klaviyo already knows many of your customers. Upstack builds on that: anyone who clicks a Klaviyo email gets looked up and resolved through Upstack’s identity engine.
  • Identity enrichment. Upstack hooks into Klaviyo to attach resolved identity data to every event it sends.
  • Re-identification. When a returning visitor can’t be identified by standard Klaviyo tracking — cookies expired, new device, different browser — Upstack re-identifies them and fires enriched events back to Klaviyo.
  • Backup abandonment flows. These enriched events trigger a second set of abandonment flows that only fire for visitors Klaviyo couldn’t identify on its own.
  • Result. Roughly 40% more people flow back through your abandonment sequences.
The Upstack team handles Klaviyo flow setup during onboarding. They’ll request access to your Klaviyo account and configure UTM tracking, flow cloning, triggers, and exclusion filters. The setup guides above describe what gets configured so you understand the setup.

Best practices

Expand to 5-email sequences. Many brands run 1–2 emails per abandonment flow. Adding more touchpoints captures revenue from slower decision-makers.
Reduce the re-entry window. Drop from 14 days to roughly 5 days. If someone comes back and abandons again, put them back in the flow — they’re still shopping.
Disable flows from previous tools. If you previously used Elevar, Triple Whale, or another tool that created secondary Klaviyo flows, disable those flows before enabling Upstack’s. Running both causes duplicate emails.

Setup guides

Klaviyo onboarding guide

End-to-end walkthrough for connecting Klaviyo to Upstack Data.

Configure Klaviyo destination

Configure the Klaviyo destination inside Upstack Data.

Generate Klaviyo API key

Create a Klaviyo private API key with the right scopes for Upstack.

Set up abandonment flows

Build the recommended Klaviyo flows powered by Upstack-enriched events.

Clone standard flows

Clone Klaviyo’s standard flows as a starting point for Upstack-powered versions.

Cross-flow exclusion filters

Prevent the same visitor from receiving overlapping flow messages.

Enable UTM tracking

Tag Klaviyo flow links with UTMs so attribution flows back into Upstack.

Event mapping

Upstack eventKlaviyo metricKey propertiesNotes
ViewContentViewed ProductProductName, ProductID, Price, ImageURLPowers browse abandonment flows
AddToCartAdded to CartProductName, ProductID, Price, Quantity, CartValuePowers abandoned cart flows
InitiateCheckoutStarted CheckoutCartValue, ItemCount, CheckoutURLPowers checkout abandonment flows
PurchasePlaced OrderOrderID, Revenue, Items, DiscountCodesPowers post-purchase and win-back flows
Upstack also syncs profile properties ($first_name, $last_name, $city, $region) plus custom properties derived from identity resolution. These are available for Klaviyo segmentation immediately after sync.

FAQ

Shopify can only fire Klaviyo’s abandoned cart flow when it knows the visitor’s email — typically because the visitor logged in or reached the email step in checkout. Upstack identifies many more visitors than that by matching anonymous sessions to known customer profiles using cookies, click IDs, and cross-session behavior. When Upstack identifies an anonymous cart with an email, it forwards an enriched Added to Cart event to Klaviyo, which lets the abandoned cart flow fire on visitors that Shopify could not identify.
You can. The recommended approach is to disable the Klaviyo metrics in Shopify’s native integration that overlap with the events Upstack is forwarding (Viewed Product, Added to Cart, Started Checkout, Placed Order). Keep the native integration enabled for any events Upstack is not handling.
Upstack only needs three scopes on the private API key: Events: Write, Profiles: Write, and Lists: Write. Avoid using a full-access key — least-privilege scopes keep the integration safe. The setup guide above walks through generating the key with the correct scopes.
Both, by default. When Upstack identifies a visitor with an email that does not yet exist in Klaviyo, it creates a new Klaviyo profile. When the email already exists, Upstack enriches the existing profile with new properties and event history. You can disable either behavior in the destination settings.
In Klaviyo, open Analytics → Metrics. Upstack-forwarded events appear as custom metrics (for example, Added to Cart from Upstack) and start populating within a few minutes of storefront activity. To trace a specific visitor, find the profile in Klaviyo and check the Activity Feed.

Troubleshooting

If events are showing in the Upstack Live Event Stream but not arriving in Klaviyo:Steps to fix:
  1. Confirm the Klaviyo destination shows Active (green) in the Upstack dashboard
  2. Verify your Private API key has the required scopes (Events: Write, Profiles: Write, Lists: Write) — read-only keys cannot receive events
  3. In Klaviyo, go to Analytics → Metrics and search for events containing “Upstackified” — they may be arriving under a different name than expected
  4. If the destination status is red, disconnect and reconnect with a fresh API key
Customers receiving emails from both your standard flows and Upstack flows means mutual exclusion filters are missing or misconfigured.Steps to fix:
  1. Open both the standard and Upstack versions of the flow in Klaviyo
  2. Verify each flow has a cross-flow exclusion filter: “Has received email 0 times in last 7 days where Flow = [other flow name]”
  3. If filters are in place but duplicates persist, check that the flow names in the filters match exactly (including the ” - Upstack Data” suffix)
  4. Disable flows from previous tools (Elevar, Triple Whale) if they are still active
For additional troubleshooting beyond Klaviyo-specific issues, see Troubleshooting: Events Not Reaching Destination.

Data enrichment

How Upstack Enrichment improves visitor identification — the foundation of Flows recovery.

Identity resolution

How Upstack ID connects anonymous sessions to known customers with email addresses.

Destinations overview

How Upstack Signal and Upstack Flows power different types of destinations.

Events not reaching destination

End-to-end diagnostic guide when events aren’t arriving at any destination.