Skip to Content

Connect Klaviyo

Whence sends your orders to Klaviyo from the server, so your flows and segments see every purchase. You create one private key in Klaviyo, paste it in Whence, and check the setup. Plan on about 5 minutes.

What Whence sends to Klaviyo

With your visitor’s marketing consent only, from the server, to your Klaviyo account:

  • Checked by default: Purchase, recorded as “Placed Order” (or the metric name you set), with the order total, currency, order number and items.
  • Unchecked by default: Product view (“Viewed Product”), Add to cart (“Added to Cart”) and Checkout started (“Started Checkout”). Klaviyo’s own script or Shopify integration often records these already, and they start browse, cart and checkout abandonment flows.
  • The profile: email, phone, first and last name, and city, region, zip and country. Klaviyo is not an ad platform: it expects these in clear to build the profile, so they are not hashed.

An event goes out only for a known profile, with an email or a phone. Each one has a unique ID, so Klaviyo records it once.

If Klaviyo’s own Shopify integration already syncs your orders, it already records “Placed Order”. Sending it again from Whence would count each order twice and could trigger your post-purchase flows twice. Either turn off order syncing there, or give Whence a different Metric name, such as “Placed Order (Whence)”.

Where to find your key in Klaviyo

Step 1: Create a private API key

In Klaviyo, open Settings, then Account, then API keys, and click Create Private API Key. Choose Custom Key, give Events “Full Access” (write) and Accounts “Read Access” (used to check the key), then create it. The key starts with pk_. Copy it.

Screenshot coming soonKlaviyo, Settings, Account, API keys, Create Private API Key: a Custom Key with Events on Full Access and Accounts on Read Access

The Klaviyo tile in Setup > Connections is a different connection: it only reads the profiles your signup forms collect, with a read-only key. Sending orders needs this key, with Events write access.

Set it up in Whence

Step 2: Open Klaviyo in Conversions

Open Marketing > Conversions and click Set up (1) on the Klaviyo row.

Step 3: Read the note, paste your key and check

  1. Read the note about order syncing at the top of the panel (1).
  2. Paste your Private API key (2).
  3. Click Save and check (3).

Step 4: Set the metric name and the events

Open More options:

  • Metric name (optional) (1): leave it empty to record “Placed Order”. If Klaviyo already syncs your orders, set another name, such as “Placed Order (Whence)”.
  • The events to send (2): only Purchase is checked by default.

In Shopify admin, turn on the Klaviyo switch under Conversions sent to your ad platforms (click Show if it is not listed), fill in the same fields, click Save, then Check the setup.

Test the connection

Klaviyo has no test mode: every order sent is real and can start flows. So the check creates no event. Whence reads the account the key belongs to, shows its name, and adds: “Klaviyo has no test mode, so no event was created. Make sure the key also has Events: Write access.” There is no Test mode option for this platform.

Common errors

  • “The key works but cannot read the account: give it Accounts: Read (and Events: Write) access, or create a new key.” Edit the key’s access in Klaviyo, or create a new one and paste it.
  • “Klaviyo: …”: Klaviyo’s own message. An invalid or missing key shows as Problem: token refused. Click Fix, then Update the settings, and paste a new key.
  • Orders counted twice in Klaviyo: see the warning above.
  • “Not sent: no key to match a person” in Recent activity: the visitor left no email or phone, so there is no profile to record it on.
Last updated on