# Collect contacts from Brevo ## Learn how to collect contacts from Brevo. Krenalis allows you to collect user data directly from your Brevo account, map it seamlessly into the Customer Model schema, and load it into your data warehouse for a unified, consistent view of your customers. ## How it works 1. **Select your contacts.** Choose which contacts to include. 2. **Map the data.** Match each Brevo property to your Customer Model using Visual Mapping, JavaScript, or Python. 3. **Set the schedule.** Choose how often Krenalis synchronizes contacts. 4. **Keep it fresh.** Krenalis automatically updates your users in the workspace's data warehouse, adding or updating users when new contacts appear. ## Steps If you've already added a source connection for the same Brevo account, you can reuse it and start with the [Add a pipeline to import contacts](#3-add-a-pipeline-to-import-contacts) step. ### 1. Create a Brevo API key 1. Log in to your Brevo account. 2. Click the **gear icon** in the top-right corner. 3. In the left sidebar, click **SMTP & API → API keys & MCP**. 4. Click **Generate a new API key**. 5. Enter a name for the API key (for example, `Krenalis`) and click **Generate**. 6. Copy the API key and click **OK**. ### 2. Connect Krenalis with Brevo 1. In your Krenalis workspace, open the **Sources** page. 2. Click **Add a new source ⊕**, then select the **Brevo** card. 3. Click **Add source...**. 4. Enter the previously copied key. 5. Click **Add** to complete the connection. ### 3. Add a pipeline to import contacts In the new connection for Brevo, click **Add pipeline...** next to the **Import Brevo contacts** pipeline. [Add pipeline](https://www.krenalis.com/docs/ingest-users/images/add-brevo-pipeline.png)! Each pipeline tells Krenalis which data to read and how to structure it in Krenalis. You can define multiple pipelines per source to manage different datasets. ### 4. Filter contacts If you don't want to read all contacts from Brevo, use filters to select which contacts to sync. Only contacts that match the filter conditions will be synced. If no filters are set, all contacts 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/brevo-filter.png)! ### 5. Enable incremental import By default, each import processes all contacts from your Brevo account. You can enable **Run incremental import** to update only contacts 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 decide how contact data is written into Customer Model properties. You can visually map properties from Brevo 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-brevo.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 contacts from the same Brevo audience, repeat the process starting with the [Add a pipeline to import contacts](#3-add-a-pipeline-to-import-contacts) step. ## Pipelines Once saved, the new pipeline appears in the pipelines list for Brevo. From here, you can monitor imports, adjust filters, and manage transformations. Each pipeline defines how and when users flow from Brevo into your warehouse. With a single Brevo connection, you can create multiple import pipelines to sync different data segments within the same account. [Pipeline to import contacts](https://www.krenalis.com/docs/ingest-users/images/brevo-pipelines.png)! | Column | Description | |--------------|-------------------------------------------------------------------------------------------------------------------------| | **Pipeline** | Name and description of the pipeline. | | **Filters** | Conditions used to select which contacts are imported. If not set, all contacts 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. |