# Integration Specifications

The Klaviyo Summary Statistics integration pulls aggregated reporting data from Klaviyo for:

* Campaigns & Flows: Contains performance data such as Sends, Opens, Clicks, Conversions, and Conversion values segmented by Campaign and Flow
* Lists & Segments: Contains profile counts by day for lists & segments

{% hint style="danger" %}
**List & Segment growth history is not available**

We capture List & Segment profile counts by snapshotting each list & segment's profile count at the time of extraction. Since we cannot go back in time using these APIs, we only load list & segment profile count data starting with the date of the first run of your integration.

This means if you set up the integration on February 14, you will only have data from February 14 onward.
{% endhint %}

## Refresh Cadence

By default the Klaviyo Summary Statistics integration loads data once per day.

## Availability

This integration is available for:

* Enterprise
* Growth

## API Endpoints

This extractor use [the Klaviyo Developer API](https://developers.klaviyo.com/en/reference/api_overview). The following endpoints are used to replicate data into Daasity:

* [Query Flow Series](https://developers.klaviyo.com/en/reference/query_flow_series)
* [Query Campaign Values](https://developers.klaviyo.com/en/reference/query_campaign_values)
* [Get Campaigns](https://developers.klaviyo.com/en/reference/get_campaigns)
* [Get Flows](https://developers.klaviyo.com/en/reference/get_flows)
* [Get List](https://developers.klaviyo.com/en/reference/get_list)
* [Get Segment](https://developers.klaviyo.com/en/reference/get_segment)

## KLAVIYO\_V2 Schema

The Klaviyo Summary Statistics 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.

* Statistics Campaign Values
* Statistics Campaigns
* Statistics Flow Values
* Statistics Flows
* Statistics List Profile Count
* Statistics Lists
* Statistics Segment Profile Count
* Statistics Segments

### Statistics Campaign Values

* Endpoint: [Query Campaign Values](https://developers.klaviyo.com/en/reference/query_campaign_values)
* Update Method: UPSERT
* Table Name: `klaviyo_v2.statistics_campaign_values`

<table data-full-width="true"><thead><tr><th>JSON Element</th><th>Database Column</th></tr></thead><tbody><tr><td></td><td>report_id</td></tr><tr><td>UTC date when the data was extracted</td><td>extraction_date</td></tr><tr><td>data.attributes.results[].groupings.send_channel</td><td>send_channel</td></tr><tr><td>data.attributes.results[].groupings.campaign_id</td><td>campaign_id</td></tr><tr><td>data.attributes.results[].statistics.opens</td><td>opens</td></tr><tr><td>data.attributes.results[].statistics.bounced</td><td>bounced</td></tr><tr><td>data.attributes.results[].statistics.delivered</td><td>delivered</td></tr><tr><td>data.attributes.results[].statistics.clicks</td><td>clicks</td></tr><tr><td>data.attributes.results[].statistics.opens_unique</td><td>opens_unique</td></tr><tr><td>data.attributes.results[].statistics.conversion_uniques</td><td>conversion_uniques</td></tr><tr><td>data.attributes.results[].statistics.conversion_value</td><td>conversion_value</td></tr><tr><td>data.attributes.results[].statistics.conversions</td><td>conversions</td></tr><tr><td>data.attributes.results[].statistics.bounced_or_failed</td><td>bounced_or_failed</td></tr><tr><td>data.attributes.results[].statistics.clicks_unique</td><td>clicks_unique</td></tr><tr><td>data.attributes.results[].statistics.failed</td><td>failed</td></tr><tr><td>data.attributes.results[].statistics.recipients</td><td>recipients</td></tr><tr><td>data.attributes.results[].statistics.spam_complaints</td><td>spam_complaints</td></tr><tr><td>data.attributes.results[].statistics.unsubscribes</td><td>unsubscribes</td></tr><tr><td>data.attributes.results[].statistics.unsubscribes_uniques</td><td>unsubscribes_uniques</td></tr><tr><td>Klaviyo API key used for extraction</td><td>__source_id</td></tr><tr><td></td><td>__sync_key</td></tr><tr><td>Merchant account id from the Daasity app</td><td>_account_id</td></tr><tr><td>UTC timestamp when the data was extracted</td><td>__synced_at</td></tr></tbody></table>

### Statistics Campaigns

* Endpoint: [Get Campaigns](https://developers.klaviyo.com/en/reference/get_campaigns)
* Update Method: UPSERT
* Table Name: `klaviyo_v2.statistics_campaigns`

<table data-full-width="true"><thead><tr><th>JSON Element</th><th>Database Column</th></tr></thead><tbody><tr><td></td><td>id</td></tr><tr><td>UTC date when the data was extracted</td><td>extraction_date</td></tr><tr><td>data[].attributes.name</td><td>name</td></tr><tr><td>data[].attributes.status</td><td>status</td></tr><tr><td>data[].attributes.archived</td><td>archived</td></tr><tr><td>data[].attributes.created_at</td><td>created_at</td></tr><tr><td>data[].attributes.scheduled_at</td><td>scheduled_at</td></tr><tr><td>data[].attributes.updated_at</td><td>updated_at</td></tr><tr><td>data[].attributes.send_time</td><td>send_time</td></tr><tr><td>Klaviyo API key used for extraction</td><td>__source_id</td></tr><tr><td></td><td>__sync_key</td></tr><tr><td>Merchant account id from the Daasity app</td><td>_account_id</td></tr><tr><td>UTC timestamp when the data was extracted</td><td>__synced_at</td></tr></tbody></table>

### Statistics Flow Values

* Endpoint: [Query Flow Series](https://developers.klaviyo.com/en/reference/query_flow_series)
* Update Method: UPSERT
* Table Name: `klaviyo_v2.statistics_flow_values`

<table data-full-width="true"><thead><tr><th>JSON Element</th><th>Database Column</th></tr></thead><tbody><tr><td></td><td>report_id</td></tr><tr><td>UTC date when the data was extracted</td><td>extraction_date</td></tr><tr><td>data.attributes.results[].groupings.send_channel</td><td>send_channel</td></tr><tr><td>data.attributes.results[].groupings.flow_id</td><td>flow_id</td></tr><tr><td>data.attributes.results[].groupings.flow_message_id</td><td>flow_message_id</td></tr><tr><td>data.attributes.results[].statistics.opens</td><td>opens</td></tr><tr><td>data.attributes.results[].statistics.bounced</td><td>bounced</td></tr><tr><td>data.attributes.results[].statistics.delivered</td><td>delivered</td></tr><tr><td>data.attributes.results[].statistics.clicks</td><td>clicks</td></tr><tr><td>data.attributes.results[].statistics.opens_unique</td><td>opens_unique</td></tr><tr><td>data.attributes.results[].statistics.conversion_uniques</td><td>conversion_uniques</td></tr><tr><td>data.attributes.results[].statistics.conversion_value</td><td>conversion_value</td></tr><tr><td>data.attributes.results[].statistics.conversions</td><td>conversions</td></tr><tr><td>data.attributes.results[].statistics.bounced_or_failed</td><td>bounced_or_failed</td></tr><tr><td>data.attributes.results[].statistics.clicks_unique</td><td>clicks_unique</td></tr><tr><td>data.attributes.results[].statistics.failed</td><td>failed</td></tr><tr><td>data.attributes.results[].statistics.recipients</td><td>recipients</td></tr><tr><td>data.attributes.results[].statistics.spam_complaints</td><td>spam_complaints</td></tr><tr><td>data.attributes.results[].statistics.unsubscribes</td><td>unsubscribes</td></tr><tr><td>data.attributes.results[].statistics.unsubscribes_uniques</td><td>unsubscribes_uniques</td></tr><tr><td>Klaviyo API key used for extraction</td><td>__source_id</td></tr><tr><td></td><td>__sync_key</td></tr><tr><td>Merchant account id from the Daasity app</td><td>_account_id</td></tr><tr><td>UTC timestamp when the data was extracted</td><td>__synced_at</td></tr></tbody></table>

### Statistics Flows

* Endpoint: [Get Flows](https://developers.klaviyo.com/en/reference/get_flows)
* Update Method: UPSERT
* Table Name: `klaviyo_v2.statistics_flows`

<table data-full-width="true"><thead><tr><th>JSON Element</th><th>Database Column</th></tr></thead><tbody><tr><td></td><td>id</td></tr><tr><td>UTC date when the data was extracted</td><td>extraction_date</td></tr><tr><td>data[].attributes.name</td><td>name</td></tr><tr><td>data[].attributes.status</td><td>status</td></tr><tr><td>data[].attributes.archived</td><td>archived</td></tr><tr><td>data[].attributes.created</td><td>created_at</td></tr><tr><td>data[].attributes.updated</td><td>updated_at</td></tr><tr><td>data[].attributes.trigger_type</td><td>trigger_type</td></tr><tr><td>Klaviyo API key used for extraction</td><td>__source_id</td></tr><tr><td></td><td>__sync_key</td></tr><tr><td>Merchant account id from the Daasity app</td><td>_account_id</td></tr><tr><td>UTC timestamp when the data was extracted</td><td>__synced_at</td></tr></tbody></table>

### Statistics List Profile Count

* Endpoint: [Get List](https://developers.klaviyo.com/en/reference/get_list)
* Update Method: UPSERT
* Table Name: `klaviyo_v2.statistics_list_profile_count`

<table data-full-width="true"><thead><tr><th>JSON Element</th><th>Database Column</th></tr></thead><tbody><tr><td>data[].id</td><td>list_id</td></tr><tr><td>UTC date when the data was extracted</td><td>extraction_date</td></tr><tr><td>data[].attributes.profile_count</td><td>profile_count</td></tr><tr><td>Klaviyo API key used for extraction</td><td>__source_id</td></tr><tr><td></td><td>__sync_key</td></tr><tr><td>Merchant account id from the Daasity app</td><td>_account_id</td></tr><tr><td>UTC timestamp when the data was extracted</td><td>__synced_at</td></tr></tbody></table>

### Statistics Lists

* Endpoint: [Get List](https://developers.klaviyo.com/en/reference/get_list)
* Update Method: UPSERT
* Table Name: `klaviyo_v2.statistics_lists`

<table data-full-width="true"><thead><tr><th>JSON Element</th><th>Database Column</th></tr></thead><tbody><tr><td>data[].id</td><td>list_id</td></tr><tr><td>data[].attributes.name</td><td>name</td></tr><tr><td>data[].attributes.created</td><td>created</td></tr><tr><td>data[].attributes.updated</td><td>updated</td></tr><tr><td>data[].attributes.opt_in_process</td><td>opt_in_process</td></tr><tr><td>Klaviyo API key used for extraction</td><td>__source_id</td></tr><tr><td></td><td>__sync_key</td></tr><tr><td>Merchant account id from the Daasity app</td><td>_account_id</td></tr><tr><td>UTC timestamp when the data was extracted</td><td>__synced_at</td></tr></tbody></table>

### Statistics Segment Profile Count

* Endpoint: [Get Segment](https://developers.klaviyo.com/en/reference/get_segment)
* Update Method: UPSERT
* Table Name: `klaviyo_v2.statistics_segment_profile_count`

<table data-full-width="true"><thead><tr><th>JSON Element</th><th>Database Column</th></tr></thead><tbody><tr><td>data[].id</td><td>segment_id</td></tr><tr><td>UTC date when the data was extracted</td><td>extraction_date</td></tr><tr><td>data[].attributes.profile_count</td><td>profile_count</td></tr><tr><td>Klaviyo API key used for extraction</td><td>__source_id</td></tr><tr><td></td><td>__sync_key</td></tr><tr><td>Merchant account id from the Daasity app</td><td>_account_id</td></tr><tr><td>UTC timestamp when the data was extracted</td><td>__synced_at</td></tr></tbody></table>

### Statistics Segments

* Endpoint: [Get Segment](https://developers.klaviyo.com/en/reference/get_segment)
* Update Method: UPSERT
* Table Name: `klaviyo_v2.statistics_segments`

<table data-full-width="true"><thead><tr><th>JSON Element</th><th>Database Column</th></tr></thead><tbody><tr><td>data[].id</td><td>segment_id</td></tr><tr><td>data[].attributes.name</td><td>name</td></tr><tr><td>data[].attributes.created</td><td>created</td></tr><tr><td>data[].attributes.updated</td><td>updated</td></tr><tr><td>data[].attributes.is_active</td><td>is_active</td></tr><tr><td>data[].attributes.is_processing</td><td>is_processing</td></tr><tr><td>data[].attributes.is_starred</td><td>is_starred</td></tr><tr><td>Klaviyo API key used for extraction</td><td>__source_id</td></tr><tr><td></td><td>__sync_key</td></tr><tr><td>Merchant account id from the Daasity app</td><td>_account_id</td></tr><tr><td>UTC timestamp when the data was extracted</td><td>__synced_at</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.daasity.com/core-concepts/data-integrations/setup-guides/digital-integrations/klaviyo-summary-statistics/integration-specifications.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
