Brevo

Sync contacts to Brevo (formerly Sendinblue) for email and SMS marketing campaigns. Zeotap keeps your Brevo contact lists in sync with your warehouse data, enabling targeted campaigns with up-to-date customer attributes.

Prerequisites

  • A Brevo account (free or paid plan)
  • A Brevo API key (v3)

Authentication

Brevo uses API Key authentication.

  1. In Brevo, go to Settings > SMTP & API > API Keys
  2. Click Generate a new API key
  3. Give the key a name and copy it (starts with xkeysib-)
  4. Paste it into the API Key field in Zeotap

Configuration

No additional configuration fields are required for Brevo. Authentication is handled entirely through the API key.

Target Settings

FieldTypeRequiredDescription
List IDTextNoBrevo contact list ID to add contacts to. Required for audience syncs.

To find your List ID, navigate to Contacts > Lists in Brevo. The ID is displayed next to each list name.

Supported Operations

Sync Modes

ModeSupported
UpsertYes
InsertYes
UpdateYes

Audience Sync Modes

ModeSupported
AddYes
RemoveYes
MirrorYes
UpsertYes

Features

  • Field Mapping: Yes
  • Schema Introspection: No

Required Mapping Fields

FieldDescription
emailContact email address (primary identifier)

Default Destination Fields

email, SMS, FIRSTNAME, LASTNAME, COMPANY, ext_id

Brevo requires contact attributes to be uppercase (e.g., FIRSTNAME, LASTNAME). Zeotap automatically uppercases attribute names when syncing to Brevo.

How It Works

Contact Sync (Upsert Mode)

  1. Zeotap batches contacts in groups of up to 500
  2. Each batch is sent to the Brevo Import Contacts endpoint (POST /v3/contacts/import)
  3. Existing contacts are updated; new contacts are created
  4. If a List ID is configured, contacts are added to the specified list

Audience Sync (Add/Remove/Mirror)

  • Add: Contacts are created/updated, then added to the list via POST /v3/contacts/lists/{listId}/contacts/add (max 150 per request)
  • Remove: Contacts are removed from the list via POST /v3/contacts/lists/{listId}/contacts/remove (max 150 per request)
  • Mirror: Added/changed contacts are upserted and added to the list; removed contacts are unlinked from the list

Insert Mode

Contacts are created individually via POST /v3/contacts. If a contact already exists, the sync reports an error for that row (use upsert if you want to update existing contacts).

Update Mode

Existing contacts are updated individually via PUT /v3/contacts/{email}. Contacts that do not exist in Brevo will return an error.

Rate Limits

EndpointStandard PlanProfessional Plan
Contacts endpoints36,000 RPH (10 RPS)72,000 RPH (20 RPS)
All other endpoints100 RPH200 RPH

Zeotap automatically retries on 429 Too Many Requests responses with exponential backoff and respects Brevo’s Retry-After headers.

Best Practices

  • Use upsert mode for most contact syncs to avoid errors when contacts already exist
  • Configure a List ID for audience syncs to manage list membership automatically
  • Map attributes in uppercase where possible, matching Brevo’s convention (e.g., FIRSTNAME, LASTNAME, COMPANY)
  • Use the SMS field with international format (e.g., +1234567890) for SMS campaigns
  • Keep batches reasonable — Zeotap automatically chunks requests to stay within Brevo’s limits

Troubleshooting

Authentication failed: invalid API key

Ensure your API key starts with xkeysib- and has not been revoked. Generate a new key from Settings > SMTP & API > API Keys in Brevo if needed.

Contact not found (update mode)

The update sync mode requires that contacts already exist in Brevo. If you are syncing new contacts, use upsert mode instead.

Attribute not recognized

Brevo ignores unknown attributes during import. Ensure the attribute names you are mapping exist in your Brevo account under Settings > Contacts > Attributes.

List ID not found

Verify the List ID exists by navigating to Contacts > Lists in Brevo. The ID is a numeric value visible next to the list name.

SMS field not syncing

The SMS field must include the country code in international format (e.g., +33612345678). Brevo accepts formats like 91xxxxxxxxxx, +91xxxxxxxxxx, or 0091xxxxxxxxxx.

Rate limit exceeded (429 errors)

Zeotap retries automatically with exponential backoff. If errors persist, consider spacing out your sync schedule or upgrading your Brevo plan for higher rate limits.