Klaviyo
Server-side event delivery to Klaviyo via the official klaviyo-api SDK. Tracks events with EventsApi.createEvent() and manages profiles with ProfilesApi.createOrUpdateProfile(), including revenue tracking, ecommerce metric name mapping, and identify state diffing.
Klaviyo is a server destination in the walkerOS flow:
Receives events server-side from the collector, resolves a profile identifier (email, externalId, or phoneNumber), optionally upserts the profile, then forwards the event to Klaviyo for flows, segmentation, and campaigns.
Installation
- Integrated
- Bundled
Configuration
This destination uses the standard destination config wrapper (consent, data, env, id, ...). For the shared fields see destination configuration. Package-specific fields live under config.settings and are listed below.
Settings
| Property | Type | Description | More |
|---|---|---|---|
apiKey | string | Klaviyo private API key. Starts with pk_. Find it under Settings > API Keys in your Klaviyo account. | |
email | string | walkerOS mapping value path to resolve email from each event (like user.email). | |
phoneNumber | string | walkerOS mapping value path to resolve phone number in E.164 format from each event. | |
externalId | string | walkerOS mapping value path to resolve external ID from each event (like user.id). | |
identify | any | Destination-level identity mapping. Resolves to profile attributes { firstName?, lastName?, organization?, properties? }. Fires createOrUpdateProfile() on first push and re-fires when values change. | |
currency | string | Default ISO 4217 currency code for revenue events (like USD, EUR). Sets valueCurrency on Klaviyo events. |
Mapping
Per-event rules under config.mapping. For the standard rule fields (consent, condition, data, batch, name, policy) see mapping.
| Property | Type | Description | More |
|---|---|---|---|
identify | any | Per-event identify mapping. Resolves to profile attributes for createOrUpdateProfile(). Use with rule-level skip: true on login/signup events. | |
value | any | Revenue value mapping. Resolves to a numeric value for Klaviyo revenue tracking. Sets the value property and valueCurrency on the event. |
Examples
Default event
An event is sent to Klaviyo as a metric with an inline profile resolved from the user email and id.
Destination identify
Destination-level identify upserts the Klaviyo profile with a first name before each event is sent.
Email only
A newsletter signup uses only the email address as the Klaviyo profile identifier, with no external id.
Viewed product
A product view is mapped to the Klaviyo Viewed Product metric with properties such as product name and price.
Placed order
An order complete is sent to Klaviyo as Placed Order with value and currency for revenue attribution.
User login identify
A user login upserts the Klaviyo profile with name, organization, and custom properties without firing an event.
Identity is resolved automatically from each event: email defaults to user.email and externalId defaults to user.id. Klaviyo requires at least one identifier (email, phoneNumber, or externalId) per event. Events without any identifier are skipped with a warning.
Revenue tracking
Map a mapping rule's settings.value to a numeric event property. When settings.currency is also set, the destination adds valueCurrency on the Klaviyo event for revenue reporting.
Ecommerce metric naming
Klaviyo's built-in flows and reports key off specific metric names. Use mapping.name to rename walkerOS events to Klaviyo's expected values:
| walkerOS Event | Klaviyo Metric | Unlocks |
|---|---|---|
product view | Viewed Product | Product analytics |
product add | Added to Cart | Cart abandonment flows |
order complete | Placed Order | Revenue reporting, CLV |