Understand data warehouse syncing in Klaviyo
Estimated 11 minute read
|
Updated Oct 22, 2026, 12:00 AM EST
Table of contents
- You will learn
- Before you begin
- Connect to a data warehouse
- Import data via SFTP
- Export data to your warehouse
- Data syncing dashboard
- Removing data warehouse connections
- View error logs
- Additional resources
You will learn
Learn how to sync data from Klaviyo to your data warehouse, and import warehouse data to Klaviyo via SFTP. You can sync your customer profile and event data, allowing you to store and analyze key information about your customers outside of Klaviyo.
Advanced KDP is not included in Klaviyo’s standard marketing application, and a subscription is required to access the associated functionality. Head to our billing guide to learn about how to purchase this plan.

This content requires Functional cookies to be enabled.
Update Cookie Settings
Before you begin
Before exporting data from Klaviyo, configure your data warehouse as a destination:
- Make sure the user that is provided to Klaviyo has the right permissions.
- For destinations that use tables, create the tables with the names shown in the setup instructions below.
Additionally, make sure to allowlist Klaviyo's outbound data warehouse traffic IP addresses. This will ensure that Klaviyo's requests are not blocked by your security layer. These addresses are represented by the following CIDR ranges:
184.72.183.187/3252.206.71.52/323.227.146.32/3244.198.39.11/3235.172.58.121/323.228.37.244/3254.88.219.8/323.214.211.176/32
Connect to a data warehouse
- Navigate to Data management > Syncing. If you already have a connection, click Create sync.
- Select Export data to your data warehouse.
- Select your warehouse, then click Connect to [warehouse name] on its setup page.
If Klaviyo prevents you from adding another export destination, remove your existing export destination before setting up another.
Alternatively, you can select your data warehouse from Klaviyo’s app marketplace by going to Integrations > Explore apps and searching for your platform.
The Import data from your data warehouse option sets up a direct warehouse import. To upload CSV files via SFTP, follow the next section.


Import data via SFTP
If you’d like to import data from your data warehouse into Klaviyo, you can do this via SFTP. For a direct warehouse connection, see Understanding data warehouse import in Klaviyo.
Navigate to Integrations, open Manage data > SFTP data transfer, then select the SFTP setup tab.
The process to import warehouse data into Klaviyo is as follows:
- Export your desired data from your data warehouse.
- Generate SSH keys on your local machine.
- Configure SFTP client and import.
This is demonstrated with Snowflake, but the import process is similar regardless of your warehouse integration.
Export your database
First, you’ll need to export your data from your warehouse. Log into your warehouse and export the data you’d like to import to Klaviyo into a CSV file.
Format your exported data based on the CSV format and size limitations.
Generate SSH keys on your local machine
Generate a new SSH key pair on your local machine. Keep the private key for your SFTP client.
- On SFTP setup, click Add SSH Key. Enter a Key title and paste your public key into SSH Key.
- Click Add key.
When adding your key, make sure it starts with 1 of the following:
- ssh-rsa
- ecdsa-sha2
- ssh-ed
- sk-ecdsa
- sk-ssh
Configure SFTP client and import
After adding your public key to Klaviyo, configure your SFTP client and upload your CSV file.
- Create a connection in your SFTP client using the server, port, and username shown under SFTP Credentials on SFTP setup. Authenticate with the matching private key.
- Before uploading, make sure your CSV file follows the recommended formatting guidelines linked above.
- Upload the CSV file through your SFTP client.


To check the import, open the Data import tab in SFTP data transfer. Recent Imports shows:
- StatusQueued, Processing, Completed, Failed, or Cancelled. A Completed import can still contain errors.
- Rows processed Percentage of the file processed so far. Expand an import to check its processed and skipped row counts.
- Import date Date of import.
- Imported by User that imported data.


Export data to your warehouse
To configure your data warehouse as a destination, you’ll need the following set of information and credentials for each data warehouse.
Amazon Redshift
To configure Amazon Redshift as a destination, run the following script to create the klaviyo_event, klaviyo_profile, and klaviyo_metric tables.
Have your database administrator adapt this example before running it: replace the placeholders, correct the unmatched */ near the start, and run the table-specific GRANT statements after creating the tables.
Once configured as a destination, connect your warehouse with Klaviyo using the following set of credentials:
- Name: A name to identify this connection. You can use the same name as your database in Redshift.
- Host URL: The endpoint of the Amazon Redshift server (called the connection URL in Redshift)
- Database: The name of the Redshift database Klaviyo will connect to
- Port: The port number used by Redshift
- Schema: Your database schema
- Username: The username used for logging into Redshift
- Database password: The password used for logging into Redshift


Amazon S3
To configure Amazon S3 as a destination, have your bucket name, bucket region, and AWS access credentials ready.
Once configured as a destination, connect your warehouse with Klaviyo using the following set of credentials:
- Name: A name to identify this connection.
- Bucket: Your bucket name.
- Bucket location: The region name that was chosen when the storage bucket was created.
- Access key ID: Your AWS access key ID.
- Secret access key: Your AWS secret access key.


Google BigQuery
To configure Google BigQuery as a destination, run the following script to set the klaviyo_profile, klaviyo_event, and klaviyo_metric tables. Your Google BigQuery account must have a payment profile for the connection process to be successful.
Note that in this script you must replace the placeholder “SERVICE ACCOUNT EMAIL” with your BigQuery service account email.
Once configured as a destination, connect your warehouse with Klaviyo using the following set of credentials:
- Name: A name to help you identify this destination
- Project ID: This is known as the Project ID and can be found in your API console.
- Dataset: Also known as schema. This is the same name you used in the script you should have run for setup.
- Service account key: Paste the entire contents of the JSON file you downloaded when creating your service account in BigQuery.


Microsoft Azure Synapse Analytics
To configure Microsoft Azure as a destination, run the following script to create the klaviyo_profile, klaviyo_event, and klaviyo_metric tables. Have your database administrator adapt the example before running it: it starts with DROP TABLE statements, including a duplicate DROP TABLE klaviyo_profile. Remove the DROP TABLE statements when creating new tables, or if you need to preserve existing data.
Once configured as a destination, connect your warehouse with Klaviyo using the following set of credentials:
- Name: It is recommended to use the same name as your database in Azure.
- Workspace: The Azure Synapse workspace name.
- Database name: This identifies your Dedicated SQL Pool database.
- Username: Your login username for your Dedicated SQL Pool database.
- Database password: Your login password for your Dedicated SQL Pool database.
- Account name: Your Windows Azure storage account, or DNS prefix you created.
- Access signature: Your shared access signature (SAS) string that proves access to the Blob Storage container.
- Container name: The Azure Blob container name for temporary staging area for data transfer.


Snowflake
To configure Snowflake as a destination, take the following steps:
- Generate a private key by running the following command in your terminal:
textCopy
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt
- Generate a public key that references the private key by running the following command in your terminal:
textCopy
openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
- Run the following script to set the KLAVIYO_PROFILE, KLAVIYO_EVENT, and KLAVIYO_METRIC tables. You must have securityadmin and sysadmin privileges in order to complete the setup below. To review what role(s) you have, run SHOW GRANTS TO USER <your_username> and ensure that you have both roles listed. Reach out to a system administrator if you need to have your role adjusted. Before running the script, replace its SET_ placeholders with your values and GENERATE_PUBLIC_KEY with the public key you generated. The script uses CREATE OR REPLACE TABLE, which replaces any existing tables with those names. Use a new database or have your administrator adapt those statements if you need to preserve existing data.
Once configured as a destination, connect your warehouse with Klaviyo using the following set of credentials:
- Name: It’s recommended to use the same name as your database in Snowflake.
- Username: Username to connect to your database. This should be the same as user_name in the setup script.
- Private key: The Snowflake private key generated.
- Warehouse: Your warehouse in Snowflake.
- Account: Your account in Snowflake.
- Database: Your database name. This should be the same as database_name in the setup script.
- Schema: Your database schema. This should be the same as schema_name in the setup script.


Databricks
To configure Databricks as a destination, including the setup script, required permissions, and connection credentials, follow the steps in How to export Klaviyo data to Databricks.
If your connection form shows a Blob store section, use it to configure storage for your export. For warehouse destinations, this storage stages data before loading it into the warehouse. For Amazon S3, it is the export destination.
- To use a saved store, select Use a blob configuration if shown, then choose a compatible Blob store. If you leave Use a blob configuration unselected, continue with the connection details listed above. If Klaviyo requires a blob store, select one before continuing.
- To add a store, choose Create in the Blob store dropdown. Select a Provider if prompted, enter its connection details, then click Create.
- If a Storage configuration name field appears, enter the name of the storage configuration you created in your warehouse.
- For an Amazon S3 destination, choose a File format and whether to Compress exported files if those controls appear.
After entering your connection details, click Next. Then choose the data and schedule for your export.
Data objects
In the Data objects section you can choose to sync all profile data, just specific event data, or both types of data by checking the applicable box(es) next to each option.
For warehouse destinations, Klaviyo sends custom profile properties and event properties as nested JSON. Standard profile fields have their own columns. Profile data uses the klaviyo_profile table, event data uses klaviyo_event, and metric data uses klaviyo_metric. Metric data is included with events so you can look up each event’s metric name and source integration. You do not need a separate table for each event type.


Syncing all data from Klaviyo may cause you to incur additional charges from your data warehouse.
Integrations to exclude
In the Integrations to exclude field, you can select the specific integration(s) that you want to exclude in the data warehouse sync. This is helpful if you want to remove a specific integration’s data that you may have already connected to Klaviyo from syncing as well.
Excluding specific integration data is only for events data, and does not exclude profile data.


Selective sync
In the Selective sync field, you select the specific events that you want to sync to your data warehouse from Klaviyo. By default, all events are included. When you set specific events to sync with this field, only the selected events will sync.
This field will only appear if you select the Events data object.


Select how often your data will sync
In Select how often your data will sync, choose an interval in Every: 1, 2, 4, 6, 12, or 24 hours. Set the Start Date, Start Time, and Timezone for the schedule.
The default interval is 1 hour. You can change it before connecting your warehouse.


Select how much historical data you want to sync
In the Select how much historical data you want to sync section, you can define how much historical data you'd like to sync from Klaviyo to your data warehouse during the initial connection. You can pick:
- 30 days
- 90 days
- 1 year
- All time


You may incur additional costs from your data warehouse if syncing a large amount of data at once.
Sync review
Click Next to open Review. Check the connection details and export settings, including:
- Details of the sync you set up
- What data is being shared (profiles, events, or both)
- Any excluded integrations
Click Connect to save the connection and start the syncs according to your schedule.


If Klaviyo displays Unable to connect, click Edit credentials to correct the connection details, then return to Review and click Connect again.
After the connection is saved, Klaviyo returns you to Data syncing. The connections table shows:
- Warehouse
- Type: import or export
- Created on


Export destinations and direct import connections appear in the same table. Check Type to distinguish them.
Data syncing dashboard
Once you have a successful connection, click on your integration from the Data syncing list page. From here you will be brought to the data syncing dashboard providing historic and current information on the data syncs that have run.


Here you’ll see the syncing information split into 2 tabs:
- Historical
- Periodic
Historical
The Historical tab has logs that show the status of your historical data syncs. Historical syncs refer to the syncing of your existing data from Klaviyo to your data warehouse when you establish a connection.
You’ll see the following information for each sync:
- Name The data being included in the sync.
-
StatusStatus and potential progress of the sync with an estimated percentage or potential errors noted. These statuses could include:
-
Completed Your data finished syncing for this one-off sync. It will not resync again automatically.
- ScheduledWhen the next sync is scheduled to automatically run.
- SyncingData is actively syncing to your data warehouse with an estimated percentage of completion.
- Errored An error occurred but Klaviyo will keep trying to re-establish a connection. Depending on the integration, this timing may slightly differ.
- FailedThe sync completely failed even after trying to re-establish a connection. This means that you will need to review your configuration settings or even data warehouse setup. After resolving the issue, click Re-enable for the sync.
- PausedYou have paused the sync manually.
- Cancelled The sync has been cancelled and is no longer scheduled.
- Started on Start time of the sync.
- Ended onEnd time of the sync.
Periodic
The Periodic tab shows the status of ongoing syncs. As customers continue to interact with your brand and new data is created, it is sent to your data warehouse on the schedule you selected. After each run finishes, Klaviyo schedules the next run.
You’ll see the following information for each sync:
- Name The data being included in the sync.
- Status The sync’s current status and any errors. These statuses could include:
- ScheduledThe sync is waiting for its next scheduled run.
- Syncing Data is actively syncing to your data warehouse.
- Errored An error occurred but Klaviyo will keep trying to re-establish a connection. Depending on the integration, this timing may slightly differ.
- FailedThe sync completely failed even after trying to re-establish a connection. This means that you will need to review your configuration settings or even data warehouse setup. After resolving the issue, click Re-enable for the sync.
- PausedYou have paused the sync manually.
- Cancelled The sync has been cancelled and is no longer scheduled.
- Data freshnessData freshness refers to how up-to-date your data is. For example, a freshness of 2 minutes indicates that the sync has processed data up to roughly 2 minutes ago. Newer data may still be waiting to sync.
- Buttons to Pause, Resume, and re-enable individual syncs.
Removing data warehouse connections
- Navigate to Integrations.
- Open the menu next to your data warehouse integration and select Remove integration. In the confirmation dialog, click Remove integration again.


View error logs
If you are experiencing issues with data syncing between Klaviyo and your data warehouse, viewing the associated error logs can provide additional information around the cause of the issue.
To view errors, click into your warehouse destination on the Syncing page. On both the Historical and Periodic sync tabs you’ll see a list of the exports and their status, along with an indicator showing whether there are any active errors.


To view more details about a particular error, click into the export experiencing the failure.
Here, you’ll see a timeline of the outbound syncs, along with an error or success message based on the status of the sync.


Clicking into a specific error will open a drawer with the following information:
- DescriptionA brief description of the error returned by the data warehouse
- CodeThe error code for the error
- External messageThe actual error message returned by the data warehouse
- DateThe date and time of the error


Additional resources
Learn about how information syncs between Klaviyo and your third-party apps via an application programming interface (API). Most data exchanged via a Klaviyo integration is one-way: data is pulled into your Klaviyo account so you can leverage a broad scope of your customer's data.
Learn about what types of data are exchanged between Klaviyo and external apps, and where that data is found in your Klaviyo account. When you integrate a third-party application with Klaviyo, the two platforms exchange information. Most data exchange with Klaviyo is one-way; data is pulled into your Klaviyo account so you can leverage a broad scope of your customers' data within Klaviyo.
Was this article helpful?
YesNo
Use this form only for article feedback. Learn how to contact support.
Explore more from Klaviyo
Community
Connect with peers, partners, and Klaviyo experts to find inspiration, share insights, and get answers to all of your questions.
Partners
Hire a Klaviyo-certified expert to help you with a specific task, or for ongoing marketing management.
Support
Access support through your account.
Email support (free trial and paid accounts) Available 24/7
Chat/virtual assistance Availability varies by location and plan type
