# Collect profiles from Klaviyo ## Learn how to collect profiles from Klaviyo. Krenalis lets you collect user data directly from your Klaviyo account, map it to the Customer Model schema, and load it into your data warehouse for a unified view of your customers. ## How it works 1. **Select your profiles.** Choose which profiles to include. 2. **Map the data.** Match each Klaviyo property to your Customer Model using Visual Mapping, JavaScript, or Python. 3. **Set the schedule.** Choose how often Krenalis synchronizes profiles. 4. **Keep it fresh.** Krenalis automatically updates profiles in your workspace's data warehouse, adding or updating profiles when new ones appear. ## Steps If you've already added a source connection for the same Klaviyo account, you can reuse it and start with the [Add a pipeline to import profiles](#3-add-a-pipeline-to-import-profiles) step. ### 1. Create a Klaviyo API key 1. Log in to your Klaviyo account. 2. Click your account name at the bottom left, then go to **Settings → Account → API Keys**. 3. Click **Create Private API Key**. 4. Name the key, enable **Custom Key**, and grant **Read Access** to *Profiles*. 5. Create and copy the key. ### 2. Connect Krenalis with Klaviyo 1. In your Krenalis workspace, open the **Sources** page. 2. Click **Add a new source ⊕**, then select the **Klaviyo** card. 3. Click **Add source...**. 4. Enter the previously copied key. 5. Click **Add** to complete the connection. ### 3. Add a pipeline to import profiles In the new connection for Klaviyo, click **Add pipeline...** next to the **Import Klaviyo profiles** pipeline. [Add pipeline](https://www.krenalis.com/docs/ingest-users/images/add-klaviyo-pipeline.png)! Each pipeline defines which data Krenalis reads and how it is structured. You can define multiple pipelines per source to manage different datasets. ### 4. Filter profiles If you don't want to read all profiles from Klaviyo, use filters to select which profiles to sync. Only profiles that match the filter conditions will be synced. If no filters are set, all profiles will be imported. For more information on how to use filters, see the [Filters documentation](https://www.krenalis.com/docs/filters.md). [Filter](https://www.krenalis.com/docs/ingest-users/images/klaviyo-filter.png)! ### 5. Enable incremental import By default, each import processes all profiles in your Klaviyo account. You can enable **Run incremental import** to update only profiles that have changed since the last sync. This option can help reduce processing time and API usage while keeping your data up to date. [Incremental import](https://www.krenalis.com/docs/ingest-users/images/increment-import.png)! ### 6. Transformation Use the **Transformation** section to define how profile data is mapped to Customer Model properties. You can visually map properties from Klaviyo to the Customer Model, or use JavaScript and Python for more advanced logic (for example, formatting dates or combining multiple properties). [Transformation](https://www.krenalis.com/docs/ingest-users/images/transform-klaviyo.png)! ### 7. Save your changes When everything looks good, click **Add** (or **Save** if you're editing an existing pipeline). To import another set of profiles from the same Klaviyo account, repeat the process starting with the [Add a pipeline to import profiles](#3-add-a-pipeline-to-import-profiles) step. ## Pipelines Once saved, the new pipeline appears in the pipelines list for Klaviyo. From here, you can monitor imports, adjust filters, and manage transformations. Each pipeline defines how and when users flow from Klaviyo into your warehouse. With a single Klaviyo connection, you can create multiple import pipelines to sync different data segments within the same account. [Pipeline to import profiles](https://www.krenalis.com/docs/ingest-users/images/klaviyo-pipelines.png)! | Column | Description | |--------------|-------------------------------------------------------------------------------------------------------------------------| | **Pipeline** | Name and description of the pipeline. | | **Filters** | Conditions used to select which profiles are imported. If not set, all profiles are imported. | | **Enable** | Switch to activate or deactivate the pipeline. When disabled, the pipeline will not run, even if a schedule is defined. | | **Run now** | Run the import immediately, one time only. _Available only when the pipeline is enabled_. | | **Schedule** | Frequency of automatic imports. You can also run the import manually at any time. | | **Manage** | Edit settings such as filter, incremental imports, and transformation | | **⋮ (More)** | Additional options, such as deleting the pipeline. |