Setup Guide

Set up and configure Klaviyo as a destination in RudderStack.

This guide will help you set up Klaviyo as a destination in the RudderStack dashboard. It also lists the configuration settings required to correctly send data from the supported sources to Klaviyo.

Connection compatibility

Destination info
  • Status: Generally Available
  • Supported sources: Android, iOS , Web, Unity, AMP , Cloud, Warehouse, React Native , Flutter, Cordova, Shopify
  • Refer to it as KLAVIYO in the Integrations object.

Connection modes
SourceCloud modeDevice modeHybrid mode
AMPsupportednot supportednot supported
Androidsupportednot supportednot supported
Cloudsupportednot supportednot supported
Cordovasupportednot supportednot supported
Fluttersupportednot supportednot supported
iOSsupportednot supportednot supported
React Nativesupportednot supportednot supported
Shopifysupportednot supportednot supported
Unitysupportednot supportednot supported
Warehousesupportednot supportednot supported
Websupportedsupportednot supported
Supported message types
SourceIdentifyPageTrackScreenGroupAlias
Cloud mode
Supported sourcessupportednot supportedsupportedsupportedsupportednot supported
Device mode
Websupportedsupportedsupportednot supportednot supportednot supported
info

In the web device mode integration, that is, using JavaScript SDK as a source, RudderStack loads the Klaviyo native SDK from https://static.klaviyo.com/ domain.

Based on your website’s content security policy, you might need to allowlist this domain to load the Klaviyo SDK successfully.

Setup

In your RudderStack dashboard, add a source. Then, from the list of destinations, select Klaviyo.

Connection settings

SettingDescription
NameAssign a name to uniquely identify the destination.
Public API KeyEnter the unique public API key from your Klaviyo dashboard (under Settings > Account).
Private API KeyEnter the private API key from your Klaviyo dashboard (under Settings > Account). This key lets you add users to a list or subscribe them using personalised emails/SMS.
API Version to useSelect the relevant API version from the dropdown:

  • 2024-06-15 (Beta)
  • 2023-02-22 (will be deprecated soon)

Configuration settings

Configure the below settings to receive your data correctly in Klaviyo.

SettingDescription
List IDEnter the default list ID to which you want to add or subscribe the identified users.
ConsentSelect the consent type from E-mail, SMS, or both. consent is a Klaviyo-specific property that you need to include in your events if you run a GDPR-compliant business.

Note: You can also override this setting by specifying the consent field in your event properties.
Enable this option to make email or phone as primary identifierTurn on this setting to set a custom attribute _id and $email as the primary identifier when passed in traits.email/properties.email. RudderStack does not set $id field to the userId while sending the events.

When disabled, RudderStack uses userId (anonymousId, if userId is absent) for mapping the user with a unique identifier. In case userId and anonymousId are absent, RudderStack sends email or phone as the user’s primary identifier.

Note that:
  • This setting is applicable only for the identify and track calls.
  • Use this setting only if you are experiencing issues with duplicate profiles created in your Klaviyo account.
Enable to flatten user/event propertiesTurn on this setting to flatten the following data before sending it to Klaviyo:
  • User properties in identify calls.
  • Event properties in track calls.

Configure the below settings for cloud or web device mode based on your setup:

SettingDescription
Consent management providerSelect the relevant consent management provider from the dropdown.

Note: You can add multiple consent management providers by clicking Add group condition.
Enter consent category IDsEnter the consent category IDs you defined while setting up the consent management provider.

Next steps



Questions? Contact us by email or on Slack