Brevo Destination
Brevo is a data destination for Profiles Sync. BPP upserts your exported users as contacts in your Brevo account, matched on email or another identifier you map, with your selected attributes written as contact attributes and added to one or more Brevo lists.
What you can do
- Profiles Sync — upsert contacts into Brevo, with your selected attributes written as custom contact attributes, and add matched contacts to the Brevo list(s) you choose.
Prerequisites
- A Brevo API key with permission to manage contacts and lists. Create one in Brevo under Settings → SMTP & API → API Keys.
- At least one existing Brevo list to sync into — a list is required for every Brevo destination. BPP does not create lists; create them in Brevo first.
- Any custom contact attributes you plan to map must already exist in Brevo (Contacts → Settings → Contact attributes) — BPP lets you select from existing attributes, it does not create new ones for you.
Note: Adding custom attributes does not automatically make them visible in the contact details page. Follow these instructions to make them visible.
How it works
Each run, BPP:
- Applies your sync's filters to find the users to include.
- Reads the selected keys and attributes for those users.
- Submits the users to Brevo in batches of up to 5,000 contacts per import request, using Brevo's Contacts Import API with existing contacts always updated rather than rejected as duplicates.
- Polls the import until it completes, then records how many contacts succeeded and failed.
Like Klaviyo, a Brevo sync is not a full replacement — BPP only ever creates or updates (upserts) contacts for users who currently match your filters, and only ever adds them to the configured list(s). A user who was included in a previous run but no longer matches your filters is left untouched in Brevo: their contact and list membership are not removed. To remove a contact or list membership, do it directly in Brevo.
Matching contacts (keys)
Brevo matches (upserts) an incoming contact using whichever of these key fields you provide as destination columns:
| Key field | Notes |
|---|---|
email | The contact's primary identifier in Brevo. |
SMS | A phone number in Brevo's SMS attribute. |
EXT_ID | An external ID you already use to reference the person. (ex: crm_id) |
At least one of a user's key columns must have a value, or that user is skipped and counted as a failed row. These are the only destination column names Brevo accepts for key fields — configuring any other name on a key is not supported.
Attributes
Every attribute you map is written as a custom contact attribute, using the destination property name you set. Brevo destination property names must:
- Start with an uppercase letter
- Contain only uppercase letters, digits, and underscores
- Be 50 characters or fewer
For example, LTV_SCORE is valid; ltv_score, 1_SCORE, or _SCORE are not. The attribute must also already exist as a contact attribute in Brevo (see Prerequisites).
Attributes are optional. You can configure a Brevo sync with keys only, no attributes.
List membership
Under Destination, choose one or more Lists to add matched contacts to — at least one list is required for every Brevo destination. Adding to a list is additive: BPP never removes a contact from a list because it stopped matching your filters.
Destination configuration
You configure the Brevo destination directly on the Profiles Sync (under the section Destination):
| Setting | What it means |
|---|---|
| Connection | The Brevo connection (your API key). |
| Lists | One or more Brevo lists to add matched contacts to (required). |
Keys and attributes (with their Brevo destination names) are configured under Keys & Attributes — see Create a Profiles Sync.
Only one destination is supported per Profile Sync.
Setup
- Navigate to Connections and click New Connection.
- Select Brevo as the connection type.
- Paste your Brevo API key.
- Give the connection a name and click Save.
Creating the connection performs an API call to Brevo to confirm the API key is valid before relying on it. A valid key leads to a connection status of Active, while an invalid key leads to a status of Error.
Supported export types
| Export type | Used with | Notes |
|---|---|---|
| Contact upsert | Profiles Sync | Create/update contacts and add them to one or more lists. Never deletes contacts or removes list membership. |
Troubleshooting
Connection shows Error
The API key is invalid, was revoked, or lacks the required permissions in Brevo. This is checked when you save the connection, so it usually surfaces immediately — open the connection and re-save with a corrected key.
Save rejected
- No list selected — Brevo requires at least one list on every destination.
- A key field mapped to a destination column other than
email,EXT_ID, orSMS— rename it to one of the supported key fields. - An attribute's destination name doesn't match Brevo's naming rule, or references an attribute that doesn't exist yet in Brevo — fix the name, or create the attribute in Brevo first.
Rows failed but the sync completed
A row fails when the user has no value in any of the configured key columns — Brevo requires at least one identifier per contact. It can also happen when a contact collides with an existing Brevo contact on another unique field (for example, a duplicate phone or external ID already used by a different contact) — in that case, check the contact directly in Brevo, since it may still have been updated even though the row is reported as failed.
Sync shows failures for an entire batch
Brevo's import did not finish within BPP's wait time, or was cancelled on Brevo's side. BPP counts every contact in that batch as failed. Retry the sync; if it keeps happening, check Brevo's status page or reduce how many users match your filters.