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

Send every Custom stack 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.

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 Custom stack event reaches Klaviyo. Captured on the server, resolved to a person, then sent.

01 Capture

Captured from Custom stack

Not on the list? Send events to Upstack from any stack over webhook or direct post, with the same schema and the same resolution.

See the Custom stack integration
Custom stackWhat it sends
  • event_namewhatever you choose to call it
  • user identifiersany of email, phone, external ID
  • value / currencyif the event carries revenue
  • custom propertiesany attribute in your own schema

02 Understand

Resolved to one person before it leaves

Every Custom stack 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.

The catch

Custom schemas tend to carry identifiers in whatever field made sense at the time.

The profile key has to be normalized before it reaches a messaging tool or nothing matches.

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 Custom stack feeds Klaviyo. Two gains on the Klaviyo side, two on the Custom stack 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.

Custom stack

Any stack, any framework

Headless, custom checkout, native app or a platform we haven’t listed: if it can make an HTTP request, it can send to Upstack.

Custom stack

The same event schema

Custom events are resolved, filtered and forwarded exactly like a Shopify order.

Setup

Post directly from your backend so nothing depends on the browser.

You need admin access to a Klaviyo account, with permission to create a Private API key with Full Access.

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

    Connect Custom stack

    Not on the list? Send events to Upstack from any stack over webhook or direct post, with the same schema and the same resolution.

  2. 02

    Add the Klaviyo destination

    Under Destinations, add Klaviyo with a Private API key named UpstackData, created with Full Access under Settings, Account, API Keys in Klaviyo. The key starts with pk_ and is shown only once.

  3. 03

    Check metrics in 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.

FAQ

Questions about Custom stack and Klaviyo.

Which events does Klaviyo receive?

ViewContent as Viewed Product, AddToCart as Added to Cart, InitiateCheckout as Started Checkout and Purchase as Placed Order.

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 Custom stack 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.

Related connectors

See all 408 connectors

Get Custom stack talking to Klaviyo.

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

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