Integration specifications

This documentation is still under construction 🚧

Data load speeds for Klaviyo are slow

Klaviyo is an extremely slow endpoint and loading history can take a considerable amount of time if the data volume is high.

Integration Overview

Our Klaviyo extractor pulls information about your Email/SMS profiles, lists, and events so that they can be analyzed alongside your order and marketing data.

Integration Availability

This integration is available for:

  • Enterprise

  • Growth

API Endpoints

This extractor is based on this documentation. The following endpoints are used by Daasity to replicate data:

Klaviyo V2 Schema

The Klaviyo V2 extractor creates these tables using the endpoints and replication methods listed. The data is mapped from source API endpoint to the table based on the mapping logic outlined in each table.

Campaigns

  • Endpoint: Get Campaigns

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.campaigns]

JSON ElementDatabase Column

data[].id

campaign_id

data[].attributes.name

name

data[].attributes.status

status

data[].attributes.archived

archived

data[].attributes.channel

channel

data[].attributes.send_options.use_smart_sending

send_options_use_smart_sending

data[].attributes.send_options.ignore_unsubscribes

send_options_ignore_unsubscribes

data[].attributes.tracking_options.is_tracking_opens

tracking_options_is_tracking_opens

data[].attributes.tracking_options.is_tracking_clicks

tracking_options_is_tracking_clicks

data[].attributes.tracking_options.is_add_utm

tracking_options_is_add_utm

data[].attributes.send_strategy.method

send_strategy_method

data[].attributes.send_strategy.options_static.datetime

send_strategy_options_static_datetime

data[].attributes.send_strategy.options_static.is_local

send_strategy_options_static_is_local

data[].attributes.send_strategy.options_static.send_past_recipients_immediately

send_strategy_options_static_send_past_recipients_immediately

data[].attributes.send_strategy.options_throttled.datetime

send_strategy_options_throttled_datetime

data[].attributes.send_strategy.options_throttled.throttle_percentage

send_strategy_options_throttled_throttle_percentage

data[].attributes.send_strategy.options_sto.date

send_strategy_options_sto_date

data[].attributes.created_at

created_at

data[].attributes.scheduled_at

scheduled_at

data[].attributes.updated_at

updated_at

data[].attributes.send_time

send_time

Campaign Audiences Excluded

  • Endpoint: Get Campaigns

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.campaign_audiences_excluded]

JSON ElementDatabase Column

data[].id

campaign_id

data[].attributes.audiences.audience_type[]

audience_id

Campaign Audiences Included

  • Endpoint: Get Campaigns

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.campaign_audiences_included]

JSON ElementDatabase Column

data[].id

campaign_id

data[].attributes.audiences.audience_type[]

audience_id

Campaign Messages

  • Endpoint: Get Campaigns

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.campaign_messages]

JSON ElementDatabase Column

included[].attributes.relationships.campaign.id

campaign_message_type

included[].id

campaign_message_id

included[].attributes.label

label

included[].attributes.channel

channel

included[].attributes.content.subject

content_subject

included[].attributes.content.preview_text

content_preview_text

included[].attributes.content.from_email

content_from_email

included[].attributes.content.from_label

content_from_label

included[].attributes.content.reply_to_email

content_reply_to_email

included[].attributes.content.cc_email

content_cc_email

included[].attributes.content.bcc_email

content_bcc_email

included[].attributes.render_options.shorten_links

render_options_shorten_links

included[].attributes.render_options.add_org_prefix

render_options_add_org_prefix

included[].attributes.render_options.add_info_link

render_options_add_info_link

included[].attributes.render_options.add_opt_out_language

render_options_add_opt_out_language

included[].attributes.created_at

created_at

included[].attributes.updated_at

updated_at

included[].attributes.relationships.campaign.data.type

campaign_data_type

included[].attributes.relationships.campaign.data.id

campaign_data_id

included[].attributes.relationships.template.data.type

template_data_type

included[].attributes.relationships.template.data.id

template_data_id

Campaign Message Send Times

  • Endpoint: Get Campaigns

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.campaign_message_send_times]

JSON ElementDatabase Column

included[].id

campaign_message_id

included[].relationships.campaign.data.id

campaign_id

included[].attributes.send_times[].datetime

send_time_datetime

included[].attributes.send_times[].is_local

send_time_is_local

Campaign Tags

  • Endpoint: Get Campaigns

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.campaign_audiences_excluded]

JSON ElementDatabase Column

data[].id

campaign_id

data[].relationships.tags.data[].id

tag_id

data[].relationships.tags.data[].type

tag_type

Events

  • Endpoint: Get Events

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.events]

❗️Not all events are pulled by our extractor

In order to speed up extraction of your events data, we only extract data for the following events:

  • received email

  • received sms

  • bounced email

  • failed to deliver sms

  • clicked email

  • clicked sms

  • opened email

  • marked email as spam

  • unsubscribed

  • unsubscribed from sms marketing

  • subscribed to list

❗️Some columns in the events table will be NULL

Some of the event properties in this table exist for only certain types of events.

For example, the TO_NUMBER property is available only for the following events: Unsubscribed from SMS Marketing, Received SMS, and Failed to Deliver SMS. Since we can't get that data for all event types, the TO_NUMBER column value will be NULL for many of your events records.

JSON ElementDatabase Column

data[].attributes.event_properties.$attribution.$attributed_channel

ATTRIBUTION_ATTRIBUTED_CHANNEL

data[].attributes.event_properties.$attribution.$attributed_event_id

ATTRIBUTION_ATTRIBUTED_EVENT_ID

data[].attributes.event_properties.$attribution.$flow

ATTRIBUTION_FLOW

data[].attributes.event_properties.$attribution.$message

ATTRIBUTION_MESSAGE

data[].attributes.event_properties.$attribution.$send_ts

ATTRIBUTION_SEND_TS

data[].attributes.event_properties.$attribution.$variation

ATTRIBUTION_VARIATION

data[].attributes.event_properties.Bounce Type

BOUNCE_TYPE

data[].attributes.event_properties.Campaign Name

CAMPAIGN_NAME

data[].attributes.event_properties.Carrier Delivery Status

CARRIER_DELIVERY_STATUS

data[].attributes.event_properties.Client Canonical

CLIENT_CANONICAL

data[].attributes.event_properties.Client Name

CLIENT_NAME

data[].attributes.event_properties.Client OS

CLIENT_OS

data[].attributes.event_properties.Client OS Family

CLIENT_OS_FAMILY

data[].attributes.event_properties.Client Type

CLIENT_TYPE

data[].attributes.event_properties.$_cohort$message_send_cohort

COHORT_MESSAGE_SEND_COHORT

data[].attributes.event_properties.$_cohort$variation_send_cohort

COHORT_VARIATION_SEND_COHORT

data[].attributes.event_properties.Content Type

CONTENT_TYPE

data[].attributes.event_properties.Email Domain

EMAIL_DOMAIN

data[].attributes.event_properties.$ESP

ESP

data[].attributes.datetime

EVENT_DATETIME

data[].attributes.event_properties.$event_id

EVENT_ID

data[].attributes.event_properties.$extra.$bounce_delivery_info.action_id

EXTRA_BOUNCE_DELIVERY_INFO_ACTION_ID

data[].attributes.event_properties.$extra.$bounce_delivery_info.add_exclusion

EXTRA_BOUNCE_DELIVERY_INFO_ADD_EXCLUSION

data[].attributes.event_properties.$extra.$bounce_delivery_info.code

EXTRA_BOUNCE_DELIVERY_INFO_CODE

data[].attributes.event_properties.$extra.$bounce_delivery_info.ip

EXTRA_BOUNCE_DELIVERY_INFO_IP

data[].attributes.event_properties.$extra.$bounce_delivery_info.is_autoresponder

EXTRA_BOUNCE_DELIVERY_INFO_IS_AUTORESPONDER

data[].attributes.event_properties.$extra.$bounce_delivery_info.reason

EXTRA_BOUNCE_DELIVERY_INFO_REASON

data[].attributes.event_properties.$extra.$bounce_delivery_info.type

EXTRA_BOUNCE_DELIVERY_INFO_TYPE

data[].attributes.event_properties.$extra.customer_merge

EXTRA_CUSTOMER_MERGE

data[].attributes.event_properties.$extra.From City

EXTRA_FROM_CITY

data[].attributes.event_properties.$extra.From Country

EXTRA_FROM_COUNTRY

data[].attributes.event_properties.$extra.From State

EXTRA_FROM_STATE

data[].attributes.event_properties.$extra.IP Address

EXTRA_IP_ADDRESS

data[].attributes.event_properties.$extra.Message Body

EXTRA_MESSAGE_BODY

data[].attributes.event_properties.$extra.Message ID

EXTRA_MESSAGE_ID

data[].attributes.event_properties.$extra.$metadata.recipient_variation_id

EXTRA_METADATA_RECIPIENT_VARIATION_ID

data[].attributes.event_properties.Failure Source

FAILURE_SOURCE

data[].attributes.event_properties.Failure Type

FAILURE_TYPE

data[].attributes.event_properties.$flow

FLOW

data[].attributes.event_properties.From Number

FROM_NUMBER

data[].attributes.event_properties.From Phone Region

FROM_PHONE_REGION

data[].id

ID

data[].attributes.event_properties.Inbox Provider

INBOX_PROVIDER

data[].attributes.event_properties.$internal.send_timestamp

INTERNAL_SEND_TIMESTAMP

data[].attributes.event_properties.$internal.vendor

INTERNAL_VENDOR

data[].attributes.event_properties.$extra.$bounce_delivery_info.ip

IP

data[].attributes.event_properties.$klaviyo_bounce_category

KLAVIYO_BOUNCE_CATEGORY

data[].attributes.event_properties.List

LIST

data[].attributes.event_properties.machine_open

MACHINE_OPEN

data[].attributes.event_properties.$message

MESSAGE

data[].attributes.event_properties.Message Body

MESSAGE_BODY

data[].attributes.event_properties.Message Format

MESSAGE_FORMAT

data[].attributes.event_properties.$message_interaction

MESSAGE_INTERACTION

data[].attributes.event_properties.Message Name

MESSAGE_NAME

data[].attributes.event_properties.Message Type

MESSAGE_TYPE

data[].attributes.event_properties.Method

METHOD

data[].relationships.metric.data.id

METRIC_DATA_ID

data[].relationships.metric.data.type

METRIC_DATA_TYPE

data[].relationships.profile.data.id

PROFILE_DATA_ID

data[].relationships.profile.data.type

PROFILE_DATA_TYPE

data[].relationships.profile.data.id

PROFILE_EMAIL

data[].attributes.event_properties.Segment Count

SEGMENT_COUNT

data[].attributes.event_properties.Subject

SUBJECT

data[].attributes.timestamp

TIMESTAMP

data[].attributes.event_properties.To Number

TO_NUMBER

data[].attributes.event_properties.To Phone Region

TO_PHONE_REGION

data[].type

TYPE

data[].attributes.event_properties.URL

URL

data[].attributes.uuid

UUID

data[].attributes.event_properties.$variation

VARIATION

data[].attributes.event_properties.Vendor Error Code

VENDOR_ERROR_CODE

Event Attribution Group IDs

Event Group IDs

Flows

  • Endpoint: Get Flows

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.flows]

JSON ElementDatabase Column

data[].attributes.name

name

data[].attributes.status

status

data[].attributes.archived

archived

data[].attributes.created

created

data[].attributes.updated

updated

data[].attributes.trigger_type

trigger_type

Flow Actions

  • Endpoint: Get Flows

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.flow_actions]

JSON ElementDatabase Column

data[].id

flow_action_id

data[].relationships.flow.data.id

flow_id

data[].attributes.action_type

action_type

data[].attributes.status

status

data[].attributes.created

created

data[].attributes.updated

updated

data[].attributes.tracking_options.add_utm

tracking_options_add_utm

data[].attributes.tracking_options.utms

tracking_options_utm_params

data[].attributes.tracking_options.is_tracking_opens

tracking_options_is_tracking_opens

data[].attributes.tracking_options.is_tracking_clicks

tracking_options_is_tracking_clicks

data[].attributes.send_options.use_smart_tracking

send_options_use_smart_tracking

data[].attributes.send_options.is_transactional

send_options_is_transactional

Flow Action Messages

  • Endpoint: Get Flows

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.flow_action_messages]

JSON ElementDatabase Column

included[].id

flow_action_id

included[].attributes.id

flow_action_message_id

included[].attributes.name

name

included[].attributes.channel

channel

included[].attributes.created

created

included[].attributes.updated

updated

included[].attributes.content.subject

content_subject

included[].attributes.content.preview_text

content_preview_text

included[].attributes.content.from_email

content_from_email

included[].attributes.content.from_label

content_rom_label

included[].attributes.content.reply_to_email

content_reply_to_email

included[].attributes.content.cc_email

content_cc_email

Lists

JSON ElementDatabase Column

data[].id

list_id

data[].name

name

data[].created

created

data[].updated

updated

List Profiles

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.list_profiles]

JSON ElementDatabase Column

(part of url path, not part of response)

list_id

data[].id

profile_id

List Tags

JSON ElementDatabase Column

data[].id

list_id

data[].relationships.tags.data

tag_id

Member Lists

Metrics

  • Endpoint: Get Metrics

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.metrics]

JSON ElementDatabase Column

data[].id

list_id

data[].attributes.name

tag_id

data[].attributes.created

created

data[].attributes.updated

updated

data[].attributes.integration.id

integration_id

data[].attributes.integration.name

integration_name

data[].attributes.integration.category

integration_category

Profiles

  • Endpoint: Get Profiles

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.profiles]

JSON ElementDatabase Column

data[].id

profile_id

data[].attributes.email

email

data[].attributes.phone_number

phone_number

data[].attributes.external_id

external_id

data[].attributes.first_name

first_name

data[].attributes.last_name

last_name

data[].attributes.organization

organization

data[].attributes.image

image

data[].attributes.created

created

data[].attributes.updated

updated

data[].attributes.last_event_date

last_event_date

data[].attributes.properties

properties

data[].attributes.location.address1

location_address1

data[].attributes.location.address2

location_address2

data[].attributes.location.city

location_city

data[].attributes.location.country

location_country

data[].attributes.location.latitude

location_latitude

data[].attributes.location.longitude

location_longitude

data[].attributes.location.region

location_region

data[].attributes.location.timezone

location_timezone

data[].attributes.location.ip

location_ip

data[].attributes.subscriptions.email.marketing.consent

email_marketing_consent

data[].attributes.subscriptions.email.marketing.marketing

email_marketing_timestamp

data[].attributes.subscriptions.email.marketing.method

email_marketing_method

data[].attributes.subscriptions.email.marketing.method_detail

email_marketing_method_detail

data[].attributes.subscriptions.email.marketing.custom_method_detail

email_marketing_custom_method_detail

data[].attributes.subscriptions.email.marketing.double_optin

email_marketing_double_optin

data[].attributes.subscriptions.sms.marketing.consent

sms_marketing_consent

data[].attributes.subscriptions.sms.marketing.timestamp

sms_marketing_timestamp

data[].attributes.subscriptions.sms.marketing.method

sms_marketing_method

data[].attributes.subscriptions.sms.marketing.method_detail

sms_marketing_method_detail

Profile Email List Suppressions

  • Endpoint: Get Profiles

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.profile_email_list_suppressions]

JSON ElementDatabase Column

data[].id

profile_id

data[].attributes.subscriptions.email.marketing.list_suppressions[].reason

reason

data[].attributes.subscriptions.email.marketing.list_suppressions[].list_id

list_id

data[].attributes.subscriptions.email.marketing.list_suppressions[].timestamp

timestamp

Profile Email Suppressions

  • Endpoint: Get Profiles

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.profile_email_suppressions]

JSON ElementDatabase Column

data[].id

profile_id

data[].attributes.subscriptions.email.marketing.suppressions[].reason

reason

data[].attributes.subscriptions.email.marketing.suppressions[].timestamp

timestamp

Segments

  • Endpoint: Get Segments

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.segments]

JSON ElementDatabase Column

data[].id

segment_id

data[].attributes.name

name

data[].attributes.created

created

data[].attributes.updated

updated

Segment Profiles

  • Endpoint: Get Segment_Profiles

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.segment_profiles]

JSON ElementDatabase Column

(part of url path, not part of response)

segment_id

data[].id

profile_id

Segment Tags

  • Endpoint: Get Segments

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.segment_tags]

JSON ElementDatabase Column

data[].id

segment_id

data[].relationships.tags.data[].id

tag_id

STG Member Lists

Tags

  • Endpoint: Get Tags

  • Update Method: UPSERT

  • Table Name: [klaviyo_v2.tags]

JSON ElementDatabase Column

data[].id

tag_id

data[].attributes.name

name

Last updated