HomeGuidesAPI Reference
ChangelogHelp CenterCommunityContact Us

Klaviyo's data model

Learn about Klaviyo's data model, including Metrics, Profiles, Catalogs, and Feeds objects.

Primary data objects

When syncing data to Klaviyo, it helps to have an understanding of our underlying data model. Klaviyo considers the following objects to be primary data types, since Klaviyo is designed to natively handle these forms of data. This is a non-exhaustive list of data types in Klaviyo:

  • Profiles
  • Metrics and Events
  • Catalogs
  • Web feeds

Klaviyo’s Event and Profile APIs feed directly into the Events and Profiles objects, respectively.

Catalogs are supported through native integrations (Shopify, WooCommerce, Magento, SFCC, etc.), our Catalogs API, or via a JSON feed.

Web feeds are supported either through a JSON or XML endpoint.

The table below provides more detail on supported data types.

Data objectDescriptionResources
ProfilesProfiles represent people, using either an email (email) or a specified customer ID (id) as a primary identifier. Klaviyo supports custom profile properties with the following data types: strings, integers, floats, dates, booleans, arrays/lists, or JSON.
Metrics and EventsEvents are the actions undertaken by Profiles represented as timestamped records with JSON-formatted payloads. Metrics are the groupings for Events of the same name. An Event contains a quantity of attribute-value pairs and arrays, optionally including a nesting structure.

The Event object is extremely versatile, since it can be used to record any type of timestamped action whether originating client-side (such as Viewed Product or Added to Cart) or server-side (such as Placed Order) and can include associated information.
Catalogs and Web feedsCatalogs are used to represent products (or product-like records, such as physical stores) that can be referenced in message templates.

Catalog items can be synced automatically via a native integration, via a JSON web feed, or via our Catalogs API.

Other data objects

Klaviyo has other supported data objects such as Lists and Campaigns. These data objects can be created in the Klaviyo app, or utilized programmatically via API.

Data objectDescriptionResources
Lists and SegmentsKlaviyo allows you to organize profiles into static lists and dynamic segments.

Profiles may optionally be assigned membership of multiple lists (or no lists) and may be added to lists automatically by filling out a form, programmatically via API, or manually by CSV upload.

Profiles will be programmatically added or removed from segments as they meet or fail to meet the segment criteria.
CampaignsKlaviyo allows you to create and execute messaging campaigns that are sent to a target audience defined as a list or segment. Campaigns are can be created in the UI or via API.
TemplatesThe content and design of a messaging campaign is stored in a template. Templates can contain HTML, CSS, and dynamic tags or logic that utilize Django syntax.