Send Shopify orders to Klaviyo as server-side events

By the HonestTag team ยท Published October 16, 2026

HonestTag sends each verified Shopify purchase to Klaviyo from its server through Klaviyo's Create Event API, as a Placed Order event plus the one or two HonestTag goal metrics that order counts toward (new or returning customer, and first-click new customer), and sends refunds as Refunded Order events. Klaviyo is an email and SMS platform, not an ad platform, so there is no ad spend to read and no conversion goal to create. You connect it with a Klaviyo private API key, or by signing in to Klaviyo when the card offers it. This page lists what you need, the exact steps, what is sent, how it sits beside Klaviyo's own Shopify integration, and how to check it works.

What you need

Connect Klaviyo, step by step

  1. Open API keys in Klaviyo. In Klaviyo, click your organization name in the bottom left, then Settings, then API keys. Klaviyo says: "You must be an Owner or Admin to create, clone, or delete a private API key."
  2. Create a Custom Key. Click Create Private API Key and name it HonestTag. Choose a Custom Key and give it read access to Accounts and full access to Events and Profiles. A Full Access Key also works, but gives HonestTag more than it needs.
  3. Copy the key. Click Create and copy the key, which starts with pk_. Klaviyo does not show it again, and an existing key's access cannot be changed later.
  4. Paste it on the Klaviyo card. In your Shopify admin, open the HonestTag app, go to Setup, and find the Klaviyo card. If the card shows a Connect Klaviyo button, open Paste a private API key below it. Paste the key and choose Check the key and save.
  5. Check the card. HonestTag saves the key only after Klaviyo confirms it opens your account. The card then shows your Klaviyo account ID and whether profile matching by email is on for your plan.

When you save, HonestTag calls Klaviyo's Get Accounts with the key, which Klaviyo describes as a way to "test if a Private API Key belongs to the correct account prior to performing subsequent actions with the API." If Klaviyo refuses the key, nothing is saved. This check cannot prove Events and Profiles access without writing to your account, so a key missing either is caught at the first send and shown on the card as an alert.

Signing in instead. When the card shows Connect Klaviyo, choose it. Klaviyo asks you to approve HonestTag for one Klaviyo account; select Allow. HonestTag's Klaviyo app is not listed in Klaviyo's App Marketplace, and Klaviyo says that until an app is reviewed "users will receive an OAuth installation warning that your app has not been reviewed by Klaviyo." After the sign-in, HonestTag reads which account you approved and saves nothing unless Klaviyo names one. A store connected with a key can move to sign-in from the card at any time; the key keeps working until the sign-in completes. Do not move back from sign-in to a key. Klaviyo's metric branding page says: "While our system will handle the move from an API metric to a branded app metric, you cannot move from a branded app metric to an API metric - this will result in a divergent metric." On a store connected by sign-in, the card offers only Disconnect, not a key form.

What HonestTag sends to Klaviyo

Klaviyo has no conversion goals to set up. Instead, every purchase becomes a Placed Order event, which plays the role of HonestTag's All Purchases goal, and the same purchase is also sent under one or two goal metrics:

HonestTag does not create these metrics at connect. Klaviyo's Events API overview says: "If the metric you provide does not match an existing one, a new metric will be created with its own metric_id." So each metric appears in your account after the first order that counts toward it. For how the same four goals work on ad platforms, see the HonestTag conversion actions.

Each event is one Create Event call to a.klaviyo.com/api/events/ and carries:

Profile matching by email (Truth+ and higher plans). On the first order from a visitor that has an email address and no stored Klaviyo profile ID, HonestTag sends that email address to your Klaviyo account, unhashed, with Klaviyo's Create Profile call, so Klaviyo can find the shopper's existing profile. HonestTag keeps only the profile ID Klaviyo returns, for up to 365 days, and later events for that visitor use the profile ID. On other plans, an order from a visitor Klaviyo has not identified lands on a profile Klaviyo creates for HonestTag's visitor ID. The card's account line says which applies to your store.

Consent rules are the same as for every destination and are stated on the server-side delivery page; section B3 of the privacy policy lists what Klaviyo receives.

What HonestTag reads, and what it never touches

Avoid counting a purchase twice

Retries. Klaviyo's rule, from the Create Event reference: "If the unique_id is repeated for the same profile and metric, only the first processed event will be recorded." HonestTag sends the same unique_id for an order on every attempt, so a retried delivery does not add a second Placed Order. If one goal metric fails after Placed Order was accepted, HonestTag retries the whole set, and Klaviyo keeps only the first copy of each.

Klaviyo's own Shopify integration. Klaviyo's Shopify data reference says: "The metrics with a Shopify icon represent all of the metrics synced from your Shopify integration", and lists Placed Order and Refunded Order among them. HonestTag's events are filed separately: sent with a key they are API metrics, which Klaviyo says "can be filtered by selecting API in the Metrics tab", and sent through a sign-in they are app metrics, which Klaviyo defines as "metrics created via OAuth." Klaviyo calls metrics that "share the same name, but come from different sources" "two or more distinct metrics with unique metric IDs." So a store with both on has two Placed Order metrics, and Klaviyo does not merge them. Build each flow, segment and report on one Placed Order metric, and check which one an existing flow is triggered on before you rely on HonestTag's. The duplicate purchase events guide shows how to find every purchase source on a store.

Refunds, edits and which orders are sent

How to check it works

  1. On the card. After you save, the Klaviyo card says: "Klaviyo accepted the key for your account. Its Events and Profiles access is checked on the first send; missing access shows here as an alert." Its account line shows your Klaviyo account ID and whether profile matching by email is on.
  2. In HonestTag order proof. After the next online order from a visitor HonestTag recorded, open it in the HonestTag app. The proof shows Klaviyo, the delivery status and the metrics sent, for example Placed Order and HonestTag_Purchase_NC. Klaviyo answers a Create Event call with HTTP 202, and its reference says a success "indicates that the event was validated and submitted for processing, but does not guarantee that processing is complete." So the proof reads accepted, not delivered.
  3. In Klaviyo. Klaviyo's raw metric data article says: "To view raw metric or event data, go to the Analytics > Metrics." Open HonestTag's Placed Order metric (with a key, filter the Metrics tab by API), then "navigate to the Activity feed tab." From a row's three-dot menu, Activity Details shows the event's JSON. Klaviyo's Events API overview also says a created event appears "in the profile's activity feed in Klaviyo."

Error messages and what to do

Disconnecting

Disconnect from the Klaviyo card, or uninstall the app. Delivery stops at once and the stored key or sign-in is deleted. For a sign-in, HonestTag also asks Klaviyo to revoke it, as Klaviyo asks apps to do "when a user uninstalls your app from your platform." Everything already measured stays, per the published retention schedule. The events and metrics already in Klaviyo stay there, and a private API key stays in Klaviyo until you delete it on its API keys page. If you are moving from another tracking app, see switching apps.

Frequently asked questions

Klaviyo's Shopify integration already records Placed Order. What does HonestTag add?

Klaviyo's Shopify integration syncs its own Placed Order metric. HonestTag sends a second set of events from its server: a Placed Order event for every order, plus HonestTag_Purchase_NC for a new customer or HonestTag_Purchase_RC for a returning one, and HonestTag_Purchase_FCNC as well when a new customer's first recorded click was on a paid ad. It also sends a Refunded Order event for partial refunds, where Klaviyo says its Shopify integration only receives fully refunded orders.

Will Klaviyo count an order twice?

Not inside one metric: HonestTag sends the same unique_id on every retry, and Klaviyo keeps only the first event per profile, metric and unique_id. With Klaviyo's Shopify integration also on, your account holds two metrics named Placed Order, one from Shopify and one from HonestTag. Klaviyo treats metrics with the same name from different sources as separate metrics, so build each flow, segment and report on one of them.

Which permissions does the Klaviyo API key need?

A Custom Key with read access to Accounts and full access to Events and Profiles. These match the scopes accounts:read, events:write and profiles:write that Klaviyo lists for Get Accounts, Create Event and Create Profile. A Full Access Key also works.

Does HonestTag send customer email addresses to Klaviyo?

Never inside an event. Events are matched to a profile by HonestTag's random visitor ID, Klaviyo's own click ID, or a Klaviyo profile ID. On Truth+ and higher plans, HonestTag also sends the order's email address to your Klaviyo account on the first order from a visitor with an email and no stored Klaviyo profile ID, to find the shopper's existing profile, and keeps only the profile ID Klaviyo returns.

Should I use an API key or sign in with Klaviyo?

Either works, and both send the same events. When the card offers sign-in, you can move from a key to sign-in at any time. Do not go back from sign-in to a key: Klaviyo says that move "will result in a divergent metric", which splits Placed Order and the goal metrics in two.

Do server-side events from HonestTag trigger Klaviyo flows?

They can. HonestTag does not set Klaviyo's backfill flag. Klaviyo says a backfill event "is still recorded and is visible in metrics, segmentation, and the events API, but it does not trigger flows." A flow triggered on HonestTag's Placed Order metric runs on HonestTag's events, not on the Shopify integration's.