Klaviyo data model reference

This page lists the data that's transferred to BigQuery when you run a Klaviyo data transfer . The data is organized into tables that list each field name, its associated destination data type, and the JSON path from the source data.

Accounts

Klaviyo account information and metadata.

  • Table name: Accounts
  • Endpoint: /accounts
  • Klaviyo API reference: Get Accounts
Field Name Type JSON Path Description
type
STRING $.type Resource type (always account ).
id
STRING $.id Unique identifier for the account.
test_account
STRING $.attributes.test_account Indicates if this is a test account.
default_sender_name
STRING $.attributes.contact_information.default_sender_name Default name used as the sender for emails.
default_sender_email
STRING $.attributes.contact_information.default_sender_email Default email address used as the sender.
website_url
STRING $.attributes.contact_information.website_url URL of the organization's website.
organization_name
STRING $.attributes.contact_information.organization_name Name of the organization.
address1
STRING $.attributes.contact_information.street_address.address1 Street address line 1.
address2
STRING $.attributes.contact_information.street_address.address2 Street address line 2.
city
STRING $.attributes.contact_information.street_address.city City of the organization.
region
STRING $.attributes.contact_information.street_address.region State, province, or region.
country
STRING $.attributes.contact_information.street_address.country Country.
zip
STRING $.attributes.contact_information.street_address.zip Postal or Zip code.
industry
STRING $.attributes.industry Industry vertical of the account.
timezone
STRING $.attributes.timezone Timezone setting for the account.
preferred_currency
STRING $.attributes.preferred_currency Primary currency used by the account.
public_api_key
STRING $.attributes.public_api_key Public API key (Site ID) for client-side integrations.
locale
STRING $.attributes.locale Locale setting (e.g., en-US).

Coupons

Coupons for discounts and promotions.

  • Table name: Coupons
  • Endpoint: /coupons
  • Klaviyo API reference: Get Coupons
Field Name Type JSON Path Description
type
STRING $.type Resource type (always coupon ).
id
STRING $.id Unique internal identifier for the coupon.
external_id
STRING $.attributes.external_id External identifier (often the same as name/id).
description
STRING $.attributes.description Description of the coupon offer.
low_balance_threshold
STRING $.attributes.monitor_configuration.low_balance_threshold Threshold to trigger low balance alerts.

CouponCode

Individual unique codes generated for specific coupons.

  • Table name: CouponCode
  • Endpoint: /coupon-codes
  • Klaviyo API reference: Get Coupon Codes
Field Name Type JSON Path Description
type
STRING $.type Resource type (always coupon-code ).
id
STRING $.id Unique identifier for this specific code instance.
unique_code
STRING $.attributes.unique_code The actual alphanumeric code string.
expires_at
TIMESTAMP $.attributes.expires_at Timestamp when this code expires.
status
STRING $.attributes.status Status of the code (e.g., ASSIGNED, UNASSIGNED).
coupon_id
STRING $.relationships.coupon.data.id ID of the parent Coupon definition.

Events

Activity events tracked for profiles (e.g., Placed Order, Viewed Product).

  • Table name: Events
  • Endpoint: /events
  • Klaviyo API reference: Get Events
Field Name Type JSON Path Description
type
STRING $.type Resource type (always event ).
id
STRING $.id Unique identifier for the event.
timestamp
FLOAT $.attributes.timestamp Unix timestamp of when the event occurred.
event_properties
JSON $.attributes.event_properties Custom JSON properties specific to the event type (e.g., items in order).
datetime
TIMESTAMP $.attributes.datetime ISO 8601 timestamp of the event.
uuid
STRING $.attributes.uuid Universally Unique Identifier for the event.
profile_id
STRING $.relationships.profile.data.id ID of the profile (customer) associated with the event.
metric_id
STRING $.relationships.metric.data.id ID of the metric (event type) definition.
attribution_ids
REPEATED STRING $.relationships.attributions.data[*].id IDs of campaigns/flows attributed to this event.

Flows

Automated marketing flows triggered by specific events or conditions.

  • Table name: Flows
  • Endpoint: /flows
  • Klaviyo API reference: Get Flows
Field Name Type JSON Path Description
type
STRING $.type Resource type (always flow ).
id
STRING $.id Unique identifier for the flow.
name
STRING $.attributes.name Name of the flow.
status
STRING $.attributes.status Operational status (e.g., live, draft).
archived
BOOLEAN $.attributes.archived Whether the flow is archived.
created
TIMESTAMP $.attributes.created Creation timestamp.
updated
TIMESTAMP $.attributes.updated Last modification timestamp.
trigger_type
STRING $.attributes.trigger_type Mechanism triggering the flow (e.g., "Added to List", "Metric").
flow_actions_ids
REPEATED STRING $.relationships.flow-actions.data[*].id IDs of the actions (steps) within this flow.
tag_ids
REPEATED STRING $.relationships.tags.data[*].id IDs of tags assigned to this flow.

Forms

Signup forms for collecting subscriber information.

  • Table name: Forms
  • Endpoint: /forms
  • Klaviyo API reference: Get Forms
Field Name Type JSON Path Description
type
STRING $.type Resource type (always form ).
id
STRING $.id Unique identifier for the form.
name
STRING $.attributes.name Name of the form.
status
STRING $.attributes.status Status of the form (e.g., live, draft).
ab_test
BOOLEAN $.attributes.ab_test Whether the form is running an A/B test.
created_at
TIMESTAMP $.attributes.created_at Creation timestamp.
updated_at
TIMESTAMP $.attributes.updated_at Last modification timestamp.

Images

Images uploaded to Klaviyo for use in campaigns and templates.

  • Table name: Images
  • Endpoint: /images
  • Klaviyo API reference: Get Images
Field Name Type JSON Path Description
type
STRING $.type Resource type (always image ).
id
STRING $.id Unique identifier.
name
STRING $.attributes.name Filename or name of the image.
image_url
STRING $.attributes.image_url Public URL to access the image.
format
STRING $.attributes.format Image file format (e.g., jpeg, png).
size
FLOAT $.attributes.size File size in bytes.
hidden
BOOLEAN $.attributes.hidden Whether the image is hidden in the UI.
updated_at
TIMESTAMP $.attributes.updated_at Last modification timestamp.

Lists

Static lists of contacts/profiles.

  • Table name: Lists
  • Endpoint: /lists
  • Klaviyo API reference: Get Lists
Field Name Type JSON Path Description
type
STRING $.type Resource type (always list ).
id
STRING $.id Unique identifier for the list.
name
STRING $.attributes.name Name of the contact list.
created
TIMESTAMP $.attributes.created Creation timestamp.
updated
TIMESTAMP $.attributes.updated Last modification timestamp.
opt_in_process
STRING $.attributes.opt_in_process Opt-in setting (e.g., 'single_opt_in' or 'double_opt_in').
tag_ids
REPEATED STRING $.relationships.tags.data[*].id IDs of tags assigned to this list.
flow_triggers_ids
REPEATED STRING $.relationships.flow-triggers.data[*].id IDs of flows triggered by adding profiles to this list.

Metrics

Types of events that can be tracked (e.g., "Received Email").

  • Table name: Metrics
  • Endpoint: /metrics
  • Klaviyo API reference: Get Metrics
Field Name Type JSON Path Description
type
STRING $.type Resource type (always metric ).
id
STRING $.id Unique identifier (e.g., 6-char code for generic, long UUID for custom).
name
STRING $.attributes.name Human-readable name (e.g., "Placed Order").
created
TIMESTAMP $.attributes.created Creation timestamp.
updated
TIMESTAMP $.attributes.updated Last modification timestamp.
integration
JSON $.attributes.integration Info about the integration providing this metric (e.g., name, category, image).
flow_triggers_ids
REPEATED STRING $.relationships.flow-triggers.data[*].id IDs of flows triggered by this metric.

Profiles

Comprehensive customer profiles containing attributes and activity history.

  • Table name: Profiles
  • Endpoint: /profiles
  • Klaviyo API reference: Get Profiles
Field Name Type JSON Path Description
type
STRING $.type Resource type (always profile ).
id
STRING $.id Unique Klaviyo ID for the profile.
email
STRING $.attributes.email Primary email address.
phone_number
STRING $.attributes.phone_number Phone number in E.164 format.
external_id
STRING $.attributes.external_id ID from an external system.
first_name
STRING $.attributes.first_name First name.
last_name
STRING $.attributes.last_name Last name.
organization
STRING $.attributes.organization Company or organization name.
locale
STRING $.attributes.locale Locale/Language setting.
title
STRING $.attributes.title Job title.
image
STRING $.attributes.image Profile image URL.
created
TIMESTAMP $.attributes.created Profile creation timestamp.
updated
TIMESTAMP $.attributes.updated Last update timestamp.
last_event_date
TIMESTAMP $.attributes.last_event_date Timestamp of the most recent event.
address1
STRING $.attributes.location.address1 Address line 1.
address2
STRING $.attributes.location.address2 Address line 2.
city
STRING $.attributes.location.city City.
country
STRING $.attributes.location.country Country.
latitude
STRING $.attributes.location.latitude Latitude coordinates.
longitude
STRING $.attributes.location.longitude Longitude coordinates.
region
STRING $.attributes.location.region State or region.
zip
STRING $.attributes.location.zip Postal or Zip code.
timezone
STRING $.attributes.location.timezone Timezone.
ip
STRING $.attributes.location.ip IP address.
properties
JSON $.attributes.properties Custom properties key-value pairs.
email_marketing_can_receive_email_marketing
BOOLEAN $.attributes.subscriptions.email.marketing.can_receive_email_marketing Whether profile can receive email marketing.
email_marketing_consent
STRING $.attributes.subscriptions.email.marketing.consent Consent status (e.g., SUBSCRIBED, UNSUBSCRIBED).
email_marketing_consent_timestamp
TIMESTAMP $.attributes.subscriptions.email.marketing.consent_timestamp When consent was given.
email_marketing_last_updated
TIMESTAMP $.attributes.subscriptions.email.marketing.last_updated When email consent was last updated.
email_marketing_method
STRING $.attributes.subscriptions.email.marketing.method Method of consent (e.g., FORM).
email_marketing_method_detail
STRING $.attributes.subscriptions.email.marketing.method_detail Specific source of method.
email_marketing_custom_method_detail
STRING $.attributes.subscriptions.email.marketing.custom_method_detail Custom details for consent method.
email_marketing_double_optin
BOOLEAN $.attributes.subscriptions.email.marketing.double_optin Whether double opt-in was completed.
sms_marketing_can_receive_sms_marketing
BOOLEAN $.attributes.subscriptions.sms.marketing.can_receive_sms_marketing Whether profile can receive SMS marketing.
sms_marketing_consent
STRING $.attributes.subscriptions.sms.marketing.consent SMS consent status.
sms_marketing_consent_timestamp
TIMESTAMP $.attributes.subscriptions.sms.marketing.consent_timestamp When SMS consent was given.
sms_marketing_last_updated
TIMESTAMP $.attributes.subscriptions.sms.marketing.last_updated When SMS consent was last updated.
sms_marketing_method
STRING $.attributes.subscriptions.sms.marketing.method SMS consent method.
sms_marketing_method_detail
STRING $.attributes.subscriptions.sms.marketing.method_detail Details of SMS consent method.
sms_transactional_can_receive_sms_transactional
BOOLEAN $.attributes.subscriptions.sms.transactional.can_receive_sms_transactional Whether profile can receive transactional SMS.
sms_transactional_consent
STRING $.attributes.subscriptions.sms.transactional.consent Transactional SMS consent status.
sms_transactional_consent_timestamp
TIMESTAMP $.attributes.subscriptions.sms.transactional.consent_timestamp When transactional consent was given.
sms_transactional_last_updated
TIMESTAMP $.attributes.subscriptions.sms.transactional.last_updated When transactional status was last updated.
sms_transactional_method
STRING $.attributes.subscriptions.sms.transactional.method Transactional SMS method.
sms_transactional_method_detail
STRING $.attributes.subscriptions.sms.transactional.method_detail Transactional SMS method detail.
mobile_push_can_receive_push_marketing
BOOLEAN $.attributes.subscriptions.mobile_push.marketing.can_receive_push_marketing Whether profile can receive push marketing.
mobile_push_consent
STRING $.attributes.subscriptions.mobile_push.marketing.consent Push consent status.
mobile_push_consent_timestamp
TIMESTAMP $.attributes.subscriptions.mobile_push.marketing.consent_timestamp When push consent was given.
predictive_analytics_historic_number_of_orders
FLOAT $.attributes.predictive_analytics.historic_number_of_orders Total historical orders.
predictive_analytics_predicted_number_of_orders
FLOAT $.attributes.predictive_analytics.predicted_number_of_orders Predicted future orders.
predictive_analytics_average_days_between_orders
FLOAT $.attributes.predictive_analytics.average_days_between_orders Avg days between orders.
predictive_analytics_average_order_value
FLOAT $.attributes.predictive_analytics.average_order_value Historic average order value.
predictive_analytics_historic_clv
FLOAT $.attributes.predictive_analytics.historic_clv Historic Customer Lifetime Value.
predictive_analytics_predicted_clv
FLOAT $.attributes.predictive_analytics.predicted_clv Predicted Customer Lifetime Value.
predictive_analytics_total_clv
FLOAT $.attributes.predictive_analytics.total_clv Historic + Predicted CLV.
predictive_analytics_churn_probability
FLOAT $.attributes.predictive_analytics.churn_probability Probability of churn (0-1).
predictive_analytics_expected_date_of_next_order
TIMESTAMP $.attributes.predictive_analytics.expected_date_of_next_order Predicted date of next order.
email_marketing_suppression_reason
REPEATED JSON $.attributes.subscriptions.email.marketing.suppression[* ] Reasons for email suppression (e.g., bounced).
email_marketing_list_suppressions_reason
REPEATED JSON $.attributes.subscriptions.email.marketing.list_suppressions[* ] List-specific suppression reasons.
push_tokens_ids
REPEATED STRING $.relationships.push-tokens.data[*].id Associated push token IDs.

Reviews

Product reviews submitted by customers.

  • Table name: Reviews
  • Endpoint: /reviews
  • Klaviyo API reference: Get Reviews
Field Name Type JSON Path Description
type
STRING $.type Resource type (always review ).
id
STRING $.id Unique identifier for the review.
email
STRING $.attributes.email Email of the reviewer.
value
STRING $.attributes.status.value Status value (e.g., published, rejected).
reason
STRING $.attributes.status.rejection_reason.reason Reason for rejection if applicable.
status_explanation
STRING $.attributes.status.rejection_reason.status_explanation Detailed explanation of status.
verified
BOOLEAN $.attributes.verified Whether the purchase was verified.
review_type
STRING $.attributes.review_type Type of review (e.g., product review).
created
TIMESTAMP $.attributes.created Creation timestamp.
updated
TIMESTAMP $.attributes.updated Last modification timestamp.
images
REPEATED STRING $.attributes.images[* ] URLs of images attached to the review.
product_url
STRING $.attributes.product.url URL of the reviewed product.
product_name
STRING $.attributes.product.name Name of the product.
product_image_url
STRING $.attributes.product.image_url Image URL of the product.
product_external_id
STRING $.attributes.product.external_id External ID of the product.
rating
INTEGER $.attributes.rating Rating score.
author
STRING $.attributes.author Name of the reviewer.
content
STRING $.attributes.content Text content of the review.
title
STRING $.attributes.title Title of the review.
smart_quote
STRING $.attributes.smart_quote Highlighted quote from the review.
public_reply_content
STRING $.attributes.public_reply.content Content of the merchant's public reply.
public_reply_author
STRING $.attributes.public_reply.author Author of the reply.
public_reply_updated
STRING $.attributes.public_reply.updated Timestamp of reply update.
event_ids
REPEATED STRING $.relationships.events.data[*].id Associated event IDs.

Segments

Dynamic groups of profiles based on specific criteria.

  • Table name: Segments
  • Endpoint: /segments
  • Klaviyo API reference: Get Segments
Field Name Type JSON Path Description
type
STRING $.type Resource type (always segment ).
id
STRING $.id Unique identifier for the segment.
name
STRING $.attributes.name Segment name.
created
TIMESTAMP $.attributes.created Creation timestamp.
updated
TIMESTAMP $.attributes.updated Last modification timestamp.
is_active
BOOLEAN $.attributes.is_active Whether the segment is active.
is_processing
BOOLEAN $.attributes.is_processing Whether the segment is being processed.
is_starred
BOOLEAN $.attributes.is_starred Whether the segment is starred/favorited.
tag_ids
REPEATED STRING $.relationships.tags.data[*].id IDs of associated tags.
flow_triggers_ids
REPEATED STRING $.relationships.flow-triggers.data[*].id IDs of flows triggered by this segment.
condition_groups
REPEATED RECORD $.attributes.definition.condition_groups[* ] Groups of logic conditions defining the segment.

ConditionGroup

Field Name Type JSON Path Description
conditions
REPEATED Condition conditions[* ] List of individual conditions within the group.

Condition

Field Name Type JSON Path Description
type
STRING type Type of condition (e.g., profile-property).
value
JSON N/A Condition value/configuration.

Tags

Tags used to organize campaigns, flows, and lists.

  • Table name: Tags
  • Endpoint: /tags
  • Klaviyo API reference: Get Tags
Field Name Type JSON Path Description
type
STRING $.type Resource type (always tag ).
id
STRING $.id Unique tag identifier.
name
STRING $.attributes.name Name of the tag.
tag_group_id
STRING $.relationships.tag-group.data.id ID of the tag group this tag belongs to.

Templates

Email and message templates.

  • Table name: Templates
  • Endpoint: /templates
  • Klaviyo API reference: Get Templates
Field Name Type JSON Path Description
type
STRING $.type Resource type (always template ).
id
STRING $.id Unique identifier.
name
STRING $.attributes.name Template name.
editor_type
STRING $.attributes.editor_type Editor used (e.g., drag-and-drop).
html
STRING $.attributes.html HTML content
text
STRING $.attributes.text Text version of the template.
amp
STRING $.attributes.amp AMP version of the template.
created
TIMESTAMP $.attributes.created Creation timestamp.
updated
TIMESTAMP $.attributes.updated Last update timestamp.

WebFeeds

Web feeds used to populate content in messages.

  • Table name: WebFeeds
  • Endpoint: /web-feeds
  • Klaviyo API reference: Get Web Feeds
Field Name Type JSON Path Description
type
STRING $.type Resource type (always web-feed ).
id
STRING $.id Unique identifier.
name
STRING $.attributes.name Feed name.
url
STRING $.attributes.url Feed Source URL.
request_method
STRING $.attributes.request_method HTTP method (GET/POST).
content_type
STRING $.attributes.content_type Content type (e.g., JSON).
status
STRING $.attributes.status Status of the feed.
created
TIMESTAMP $.attributes.created Creation timestamp.
updated
TIMESTAMP $.attributes.updated Last update timestamp.

DataSources

Sources of data integrated into Klaviyo.

  • Table name: DataSources
  • Endpoint: /data-sources
  • Klaviyo API reference: Get Data Sources
Field Name Type JSON Path Description
type
STRING $.type Resource type (always data-source ).
id
STRING $.id Unique identifier.
title
STRING $.attributes.title Title of the data source.
visibility
STRING $.attributes.visibility Visibility level.
description
STRING $.attributes.description Description text.

Campaigns

Marketing campaigns sent to lists or segments.

  • Table name: Campaigns
  • Endpoint: /campaigns
  • Klaviyo API reference: Get Campaigns
Field Name Type JSON Path Description
type
STRING $.type Resource type (always campaign ).
id
STRING $.id Unique identifier.
name
STRING $.attributes.name Campaign name.
status
STRING $.attributes.status Campaign status (e.g., Sent, Scheduling).
archived
BOOLEAN $.attributes.archived Whether campaign is archived.
included
REPEATED STRING $.attributes.audiences.included IDs of included lists/segments.
excluded
REPEATED STRING $.attributes.audiences.excluded IDs of excluded lists/segments.
send_options
JSON $.attributes.send_options Configuration for sending (e.g., smart sending).
tracking_options
JSON $.attributes.tracking_options Configuration for tracking (e.g., utm params).
send_strategy
JSON $.attributes.send_strategy Strategy for delivery time.
created_at
TIMESTAMP $.attributes.created_at Creation timestamp.
scheduled_at
TIMESTAMP $.attributes.scheduled_at When the campaign is scheduled to send.
updated_at
TIMESTAMP $.attributes.updated_at Last update timestamp.
send_time
TIMESTAMP $.attributes.send_time Actual time sent.
tag_ids
REPEATED STRING $.relationships.tags.data[*].id IDs of associated tags.
campaign_message_ids
REPEATED STRING $.relationships.campaign-messages.data[*].id IDs of messages contained in this campaign.

CampaignMessages

Individual messages (email/SMS) within a campaign.

  • Table name: CampaignMessages
  • Endpoint: /campaign-messages
  • Klaviyo API reference: Get Campaign Message
Field Name Type JSON Path Description
type
STRING $.type Resource type (always campaign-message ).
id
STRING $.id Unique identifier.
definition
JSON $.attributes.definition Message content and configuration.
send_times
REPEATED JSON $.attributes.send_times[* ] Scheduled send times.
created_at
TIMESTAMP $.attributes.created_at Creation timestamp.
updated_at
TIMESTAMP $.attributes.updated_at Last update timestamp.
campaign_id
STRING $.relationships.campaign.data.id ID of parent campaign.
template_id
STRING $.relationships.template.data.id ID of used template.
image_id
STRING $.relationships.image.data.id ID of attached image.

Categories

Product categories from your catalog.

Field Name Type JSON Path Description
type
STRING $.type Resource type.
id
STRING $.id Unique identifier.
name
STRING $.attributes.name Category name.
external_id
STRING $.attributes.external_id External system ID.
updated
TIMESTAMP $.attributes.updated Last update timestamp.

Items

Individual products or items in your catalog.

  • Table name: Items
  • Endpoint: /catalog-items
  • Klaviyo API reference: Get Catalog Items
Field Name Type JSON Path Description
type
STRING $.type Resource type.
id
STRING $.id Unique identifier.
external_id
STRING $.attributes.external_id External system ID.
title
STRING $.attributes.title Item title/name.
description
STRING $.attributes.description Description available.
price
FLOAT $.attributes.price Price of the item.
url
STRING $.attributes.url URL to the item.
image_full_url
STRING $.attributes.image_full_url URL of full-size image.
image_thumbnail_url
STRING $.attributes.image_thumbnail_url URL of thumbnail image.
images
REPEATED STRING $.attributes.images[* ] List of additional image URLs.
custom_metadata
JSON $.attributes.custom_metadata Custom metadata key-values.
published
BOOLEAN $.attributes.published Publication status.
created
TIMESTAMP $.attributes.created Creation timestamp.
updated
TIMESTAMP $.attributes.updated Last update timestamp.
variants_ids
REPEATED STRING $.relationships.variants.data[*].id IDs of variants for this item.

Variants

Specific variants of catalog items (e.g., sizes, colors).

Field Name Type JSON Path Description
type
STRING $.type Resource type.
id
STRING $.id Unique identifier.
external_id
STRING $.attributes.external_id External system ID.
title
STRING $.attributes.title Variant title.
description
STRING $.attributes.description Description available.
sku
STRING $.attributes.sku Stock Keeping Unit.
inventory_policy
FLOAT $.attributes.inventory_policy Policy for inventory management.
inventory_quantity
FLOAT $.attributes.inventory_quantity Current stock quantity.
price
FLOAT $.attributes.price Price.
url
STRING $.attributes.url URL to variant.
image_full_url
BOOLEAN $.attributes.image_full_url Full image URL available (Boolean).
image_thumbnail_url
STRING $.attributes.image_thumbnail_url Thumbnail image URL.
images
REPEATED STRING $.attributes.images[* ] List of images.
published
BOOLEAN $.attributes.published Publication status.
created
TIMESTAMP $.attributes.created Creation timestamp.
updated
TIMESTAMP $.attributes.updated Last update timestamp.
Create a Mobile Website
View Site in Mobile | Classic
Share by: