Brevo

Connect & Ingest data from Brevo

Brevo (formerly Sendinblue) is an email marketing and CRM platform that helps businesses manage contacts, create and send email campaigns, and track transactional email performance. The Sling Brevo connector extracts data from the Brevo API v3, supporting contacts, contact lists, segments, email campaigns, templates, senders, transactional email reports, and events.

circle-check

Setup

The following credentials and inputs are accepted:

Secrets:

  • api_key (required) -> Your Brevo API key

Inputs:

  • anchor_date (optional) -> Starting date for first sync (ISO format, e.g., 2024-01-01). Defaults to 1 year ago.

Getting Your API Key

  1. Click on your name in the top-right corner and select SMTP & API

  2. Click the API Keys tab

  3. Click Generate a new API key

  4. Give your key a name and click Generate

  5. Copy the API key (it starts with xkeysib-)

Using sling conns

Environment Variable

See here to learn more about the .env.sling file.

Sling Env File YAML

See here to learn more about the sling env.yaml file.

Replication

Here's an example replication configuration to sync Brevo data to a PostgreSQL database:

Incremental sync example:

Full refresh example:

Endpoints

Contact Management

Endpoint
Description
Incremental

contacts

All contacts with attributes

Yes

contact_lists

Contact lists/audiences

No

list_contacts

Contacts in each list (child of contact_lists)

No

segments

Contact segments

No

contact_attributes

Custom contact attributes/fields

No

Email Campaigns

Endpoint
Description
Incremental

email_campaigns

Email campaigns with statistics

Yes

email_templates

SMTP email templates

No

senders

Verified email senders

No

Transactional Email Analytics

Endpoint
Description
Incremental

transactional_reports

Aggregated transactional email reports by day

Yes

transactional_events

Individual transactional email events (opens, clicks, etc.)

Yes

To discover available endpoints:

Parent-Child Endpoints

Some endpoints are children of parent endpoints and require the parent to run first:

  • list_contacts -> Requires contact_lists to run first (iterates through each list)

Incremental Sync

The Brevo connector supports time-based incremental sync for the following endpoints:

  • contacts - Syncs contacts modified since the last sync via modifiedSince filter

  • email_campaigns - Syncs campaigns modified since the last sync via modifiedAt tracking

  • transactional_reports - Syncs reports using date range iteration (30-day windows)

  • transactional_events - Syncs events using date range iteration (30-day windows)

How it works

  • First run: Fetches all records from the anchor date (defaults to 1 year ago)

  • Subsequent runs: Only fetches records created or modified after the last sync timestamp

Custom Anchor Date

You can set a custom starting date for the first sync:

Rate Limiting

The Brevo API enforces rate limits that vary by endpoint and plan. The connector automatically:

  • Uses conservative rate limiting (1 request/second)

  • Retries with exponential backoff on 429 (rate limit) responses

  • Limits concurrency to 2 parallel requests

Common Use Cases

Sync Contact and List Data

Sync Campaign Performance

Sync Transactional Email Analytics

Sync All Brevo Data

If you are facing issues connecting, please reach out to us at [email protected]envelope, on discordarrow-up-right or open a Github Issue herearrow-up-right.

Last updated

Was this helpful?