Skip to main content

Brevo

Brevo (formerly Sendinblue) is an all-in-one customer relationship management and digital marketing platform that combines email marketing, SMS campaigns, transactional messaging, marketing automation, and contact management. The Brevo connector enables you to synchronize contacts and contact lists, manage email and SMS campaigns, send transactional emails and SMS messages, and retrieve account and campaign performance data through the Brevo REST API.

Brevo icon

Power end-to-end data operations for your Brevo API with Nexla. Our bi-directional Brevo connector is purpose-built for Brevo, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Brevo or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Brevo workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

Before creating a Brevo credential in Nexla, you must have an active Brevo account and generate an API key from the Brevo dashboard. Brevo uses API key authentication for all v3 API requests, with the key passed in the api-key HTTP header.

Create a Brevo Account

An active Brevo account is required to generate API credentials. New accounts can be created at brevo.com by signing up with an email address. Brevo offers a free tier that supports API access, making it easy to begin testing integrations before scaling to paid plans.

Generate a Brevo API Key

Brevo v3 API keys are managed from the SMTP & API settings page in the Brevo dashboard. To generate a new API key, complete the following steps:

  1. Log in to your Brevo account at app.brevo.com.

  2. Click your account name in the upper-right corner of the dashboard, and select Settings from the dropdown menu.

  3. In the left navigation pane, click SMTP & API.

  4. Select the API Keys tab.

  5. Click the Generate a new API key button to open the key creation dialog.

  6. Enter a descriptive name for the new API key in the Name your API key field (e.g., "Nexla Integration"). Using a clear, purpose-specific name makes it easier to identify and rotate keys later.

  7. Optionally, select an expiration period for the key from the Expiration dropdown. Brevo supports expirations from 7 days up to 1 year, or no expiration. Setting an expiration is recommended for production environments to limit the impact of a leaked key.

  8. Click Generate to create the API key.

  9. Copy the generated API key from the dialog and store it in a secure location, such as a password manager or secrets vault.

    Important

    The full API key value is shown only once at the time of generation. Brevo will not display the key again after the dialog is closed. If the key is lost, a new key must be generated.

For additional details about Brevo's authentication scheme, refer to the Brevo API key authentication documentation.

Brevo v3 API keys provide full access to your Brevo account. Treat API keys like passwords—never commit them to source control, share them via email, or expose them in client-side code.

Authenticate

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. Enter the Brevo API key generated from your Brevo account in the API Key field. This key is used to authenticate Nexla with your Brevo account and is included in the api-key HTTP header of every API request.

    The API key is stored securely in Nexla and is never displayed after the credential is saved. To rotate the key, generate a new API key in Brevo, update the credential in Nexla, and then revoke the old key from the Brevo dashboard.

  4. Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation and can be selected for use with a new data source or destination.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Brevo connector tile, then select the credential that will be used to connect to the Brevo instance, and click Next; or, create a new Brevo credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Brevo endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.

Get Account Information

Retrieves account details and plan statistics for the authenticated Brevo user, including company name, address, plan type, and remaining email/SMS credits. Use this endpoint to monitor account usage, verify connection health, or surface account metadata in downstream systems.

  • This endpoint requires no additional parameters. Selecting this template configures the source to call GET https://api.brevo.com/v3/account and return the full account object as a single record.

For complete response field definitions, refer to the Get account information documentation.

Get a contact's details

Retrieves detailed information about a specific contact, including all attributes, list memberships, and activity statistics. Use this endpoint when you need to fetch a single contact record for enrichment, sync, or audit purposes.

  • Enter the contact's identifier in the Identifier field. This can be an email address, contact ID, ext_id, or phone number depending on the identifier type selected.
  • Optionally, specify the type of identifier used in the Identifier Type field. Supported values include email_id (default), contact_id, ext_id, phone_id, whatsapp_id, landline_number_id, and sms_id. Use this when the identifier is not an email address.
  • Optionally, enter a Start Date in YYYY-MM-DD format to filter contact activity statistics starting from a specific date.
  • Optionally, enter an End Date in YYYY-MM-DD format to filter contact activity statistics up to a specific date.

The start and end date filters apply only to the contact's activity statistics block in the response, not to the contact record itself. For full parameter documentation, refer to the Get a contact's details reference.

Get all the contacts

Retrieves all contacts in your Brevo account, with support for filtering by date, list, segment, and contact ID. This endpoint uses offset-based pagination (default page size 1000) and is the primary way to perform full or incremental contact syncs from Brevo to a downstream system.

  • Optionally, enter an ISO 8601 datetime in the Modifiedsince field to retrieve only contacts modified on or after the specified date. This is useful for incremental ingestion scenarios.
  • Optionally, enter an ISO 8601 datetime in the Createdsince field to retrieve only contacts created on or after the specified date.
  • Optionally, specify a sort order in the Sort field. Accepted values are asc or desc; results are sorted by contact creation date.
  • Optionally, enter a comma-separated list of contact IDs in the Ids field to limit results to specific contacts.
  • Optionally, enter a segment ID in the Segmentid field to retrieve only contacts belonging to that segment.
  • Optionally, enter a comma-separated list of list IDs in the Listids field to retrieve only contacts belonging to those lists.
  • Optionally, enter a JSON filter expression in the Filter field to apply additional filtering on contact attributes.

Pagination is handled automatically by Nexla using the limit and offset query parameters. For complete documentation, refer to the Get all the contacts reference.

Get scheduled email status

Retrieves the delivery status and batch details for scheduled transactional emails. Use this endpoint to track the lifecycle of scheduled email batches or individual messages by batch ID or message ID.

  • Enter the batch ID or message ID in the Identifier field. This is the value returned by the Send a transactional email endpoint when scheduling messages.
  • Optionally, enter an ISO 8601 datetime in the Start date field to filter scheduled emails on or after the specified date.
  • Optionally, enter an ISO 8601 datetime in the End date field to filter scheduled emails on or before the specified date.
  • Optionally, specify a sort order (asc or desc) in the Sort order field.
  • Optionally, filter by delivery state in the Email status field. Common values include processed, queued, sent, bounced, and error.

For complete parameter and response details, refer to the Get scheduled email status reference.

Get an email template

Retrieves the full configuration and HTML content of a specific transactional email template by ID. Use this endpoint to back up templates, audit template content, or replicate templates across Brevo accounts.

  • Enter the numeric template ID in the Template ID field. Template IDs are visible in the Brevo dashboard under Transactional > Templates and are also returned by the List email templates endpoint.

For complete response details, refer to the Get an email template reference.

List Companies

Retrieves a paginated list of all companies in the Brevo CRM. Companies in Brevo represent organizations associated with contacts and deals and are central to B2B marketing and sales workflows.

  • This endpoint requires no additional parameters. Pagination is handled automatically by Nexla using the limit and offset query parameters (default page size 50).

For complete documentation, refer to the Get all companies reference.

List Contact Attributes

Retrieves the complete list of contact attributes defined in your Brevo account, including normal attributes, transactional attributes, category attributes, calculated values, and global values. Use this endpoint to inspect or document your contact schema before designing flows.

  • This endpoint requires no additional parameters. The full attribute definition list is returned as a single response and parsed into individual records.

For complete documentation, refer to the List all attributes reference.

List Contact Lists

Retrieves a paginated list of all contact lists in your Brevo account, including list name, folder ID, and total/unique subscriber counts. Use this endpoint to enumerate available lists for sync, audit, or downstream segmentation logic.

  • This endpoint requires no additional parameters. Pagination is handled automatically by Nexla using the limit and offset query parameters (default page size 50).

For complete documentation, refer to the Get all lists reference.

List Contact Segments

Retrieves all dynamic contact segments defined in your Brevo account. Segments are saved filter expressions used to target contacts in campaigns and automation workflows.

  • This endpoint requires no additional parameters. Pagination is handled automatically by Nexla using the limit and offset query parameters (default page size 50).

For complete documentation, refer to the Get all segments reference.

List Email Campaigns

Retrieves all email campaigns in the account, including draft, scheduled, sent, and archived campaigns. Use this endpoint to track campaign inventory, monitor campaign performance metadata, or sync campaign records to a data warehouse for reporting.

  • This endpoint requires no additional parameters. The full campaign list is returned and parsed into individual records.

For complete documentation, refer to the Get all email campaigns reference.

List email templates

Retrieves a paginated list of transactional email templates, with optional filtering by active/inactive status. Use this endpoint to audit your transactional template library or to drive downstream template management flows.

  • Optionally, filter templates by activation state in the Template status field. Use true to return only active templates or false to return only inactive templates. Omit this parameter to return all templates.
  • Optionally, specify a sort order (asc or desc) for the result set in the Sort order field. Results are sorted by template creation date.

For complete documentation, refer to the Get the list of transactional email templates reference.

List members of a contact list

Retrieves all contacts belonging to a specific contact list. Use this endpoint to extract list memberships for segmentation, deduplication, or sync to external CRMs.

  • Enter the numeric list ID in the List ID field. List IDs can be obtained from the List Contact Lists endpoint or from the Brevo dashboard under Contacts > Lists.

Pagination is handled automatically by Nexla using the limit and offset query parameters (default page size 500). For complete documentation, refer to the Get contacts in a list reference.

List Senders

Retrieves all configured email senders for your Brevo account, including sender name, email address, and verification status. Senders must be verified before they can be used in email campaigns or transactional emails.

  • This endpoint requires no additional parameters. The full sender list is returned as records.

For complete documentation, refer to the Get the list of all your senders reference.

List SMS Campaigns

Retrieves all SMS campaigns in the account, including draft, scheduled, and sent campaigns. Use this endpoint to monitor SMS marketing activity or sync campaign records to a reporting database.

  • This endpoint requires no additional parameters. The full SMS campaign list is returned as records.

For complete documentation, refer to the Get all the SMS campaigns reference.

List transactional emails

Retrieves a paginated event log of transactional emails sent through your Brevo account, with filtering by recipient, template, message ID, and date range. Use this endpoint to build delivery analytics, troubleshoot send failures, or feed transactional email events into an observability pipeline.

  • Optionally, enter a recipient email address in the Recipient email field to filter the log to messages sent to a specific recipient.
  • Optionally, enter a template ID in the Template ID field to filter messages sent using a specific transactional template.
  • Optionally, enter a message ID in the Message ID field to retrieve a single message event.
  • Optionally, enter an ISO 8601 datetime in the Start date field to filter events on or after the specified date.
  • Optionally, enter an ISO 8601 datetime in the End date field to filter events on or before the specified date.
  • Optionally, specify a sort order (asc or desc) in the Sort order field.

Pagination is handled automatically by Nexla using the limit and offset query parameters (default page size 500). For complete documentation, refer to the Get all transactional emails reference.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Brevo data sources can also be manually configured to ingest data from any valid Brevo v3 API endpoint, including endpoints not covered by the pre-built templates, chained API calls (e.g., listing lists and then fetching members for each list), or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

All Brevo v3 endpoints are hosted at https://api.brevo.com/v3/—for example, https://api.brevo.com/v3/contacts or https://api.brevo.com/v3/emailCampaigns/{campaignId}. You do not need to include the api-key header; it is automatically injected from the credential.

Path to Data examples for Brevo:

  • $.contacts[*] — for GET /v3/contacts
  • $.lists[*] — for GET /v3/contacts/lists
  • $.campaigns[*] — for GET /v3/emailCampaigns and GET /v3/smsCampaigns
  • $.templates[*] — for GET /v3/smtp/templates
  • $.transactionalEmails[*] — for GET /v3/smtp/emails
  • $.attributes[*] — for GET /v3/contacts/attributes

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Brevo data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.

Use as a destination

Click the + icon on the Nexset that will be sent to the Brevo destination, and select the Send to Destination option from the menu. Select the Brevo connector from the list of available destination connectors, then select the credential that will be used to connect to the Brevo organization, and click Next; or, create a new Brevo credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Brevo endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

Add contacts to a list

Adds one or more existing contacts to an existing Brevo contact list using POST /v3/contacts/lists/{'{listId}'}/contacts/add. Use this endpoint to enroll contacts into list-based campaigns or automation workflows. Each record should contain an emails array (up to 150 emails per call) or an ids array of contact IDs.

  • Enter the numeric ID of the destination list in the List ID field. The list must already exist in Brevo; if needed, create it first using the Create a list endpoint or the Brevo dashboard.

For complete payload requirements, refer to the Add existing contacts to a list reference.

Create Contact

Creates a new contact in Brevo using POST /v3/contacts. Use this endpoint to bulk-onboard new contacts from a CRM, e-commerce platform, or product database. The request payload accepts email, attributes (any custom contact attributes defined in your account), listIds, updateEnabled, and other fields.

  • This endpoint requires no path parameters. Each Nexset record will be sent as the JSON body of a POST request.

Setting updateEnabled: true in the payload allows Brevo to update an existing contact if the email already exists, rather than returning a duplicate error. For complete payload details, refer to the Create a contact reference.

Create an email campaign

Creates a new email campaign in Brevo using POST /v3/emailCampaigns. Use this endpoint to programmatically create campaigns from upstream content sources or campaign-planning tools. The payload must include the campaign name, subject, sender, htmlContent (or htmlUrl/templateId), and recipient configuration.

  • This endpoint requires no path parameters. Each Nexset record will be sent as the JSON body of a POST request.

Newly created campaigns are saved as drafts by default. Schedule or send them using the campaign update or send-now endpoints. For complete payload details, refer to the Create an email campaign reference.

Create email template

Creates a new transactional email template using POST /v3/smtp/templates. The request payload must include templateName, subject, sender, and either htmlContent or htmlUrl. Optionally set isActive to enable the template immediately on creation.

  • This endpoint requires no path parameters. Each Nexset record will be sent as the JSON body of a POST request.

For complete payload details, refer to the Create an email template reference.

Create a list

Creates a new contact list in your Brevo account using POST /v3/contacts/lists. The request payload requires a name and a folderId—folders organize lists in the Brevo dashboard and can be obtained from the Brevo UI or via the GET /v3/contacts/folders endpoint.

  • This endpoint requires no path parameters. Each Nexset record will be sent as the JSON body of a POST request.

For complete payload details, refer to the Create a list reference.

Create SMS Campaign

Creates a new SMS campaign using POST /v3/smsCampaigns. The payload must include name, sender (an alphanumeric sender ID up to 11 characters), content, and recipient configuration (list IDs or segment IDs).

  • This endpoint requires no path parameters. Each Nexset record will be sent as the JSON body of a POST request.

SMS sender names must be pre-approved in Brevo for some country regulations. For complete payload details, refer to the Creates an SMS campaign reference.

Delete a contact

Permanently deletes a contact from your Brevo account using DELETE /v3/contacts/{'{identifier}'}. The identifier can be an email address, contact ID, or other Brevo-supported identifier type.

  • Enter the email address or contact ID to be deleted in the Identifier field. This value can be sourced from an upstream Nexset using lookups or macros.

Contact deletion is permanent and removes all associated activity history. For GDPR-style retention of activity data, consider blocklisting the contact instead. Refer to the Delete a contact reference for details.

Import contacts in bulk

Imports contacts in bulk using POST /v3/contacts/import. The payload can include an inline jsonBody array of contact objects, a fileUrl referencing a remote CSV, or a base64-encoded fileBody. Use this endpoint for large initial loads or recurring batch syncs to avoid per-contact API rate limits.

  • This endpoint requires no path parameters. Each Nexset record will be sent as the JSON body of a POST request.

Contact import is processed asynchronously. The response returns a processId that can be used to track import status. Refer to the Import contacts reference for complete details.

Send Email Campaign Immediately

Sends an existing draft or scheduled email campaign immediately using POST /v3/emailCampaigns/{'{campaignId}'}/sendNow. The campaign must already be fully configured (subject, sender, content, recipients) before invoking this endpoint.

  • Enter the numeric campaign ID in the Campaign ID field. Campaign IDs can be obtained from the List Email Campaigns endpoint or the Create an email campaign response.

Once sent, campaigns cannot be recalled or modified. Refer to the Send an email campaign immediately reference for details.

Send a transactional SMS

Sends a synchronous transactional SMS using POST /v3/transactionalSMS/sms. The payload must include sender, recipient (E.164 phone number), and content. Optional fields include type (transactional or marketing), tag for analytics, and webUrl for click-through tracking.

  • This endpoint requires no path parameters. Each Nexset record will be sent as the JSON body of a POST request.

SMS messages are charged in credits and may be subject to country-specific delivery regulations. Refer to the Send the SMS campaign to a mobile number reference for details.

Send a transactional email

Sends a transactional email using POST /v3/smtp/email. The payload can include inline htmlContent/textContent, or it can reference a saved transactional template via templateId with params for personalization. Optional fields include attachment, scheduledAt for delayed delivery, and messageVersions for batch personalization.

  • This endpoint requires no path parameters. Each Nexset record will be sent as the JSON body of a POST request.

Transactional emails are intended for one-to-one messages (e.g., order confirmations, password resets) rather than marketing campaigns. For complete payload details, refer to the Send a transactional email reference.

Update a contact

Updates an existing contact's attributes, list memberships, or blocklist status using PUT /v3/contacts/{'{identifier}'}. The payload accepts attributes, listIds, unlinkListIds, emailBlacklisted, and smsBlacklisted.

  • Enter the email address or contact ID of the contact to update in the Identifier field. This value can be sourced from an upstream Nexset using lookups or macros.

Partial updates are supported—only the fields included in the payload will be modified. Refer to the Update a contact reference for details.

Update contacts in batch

Updates multiple contacts in a single request using POST /v3/contacts/batch. The payload requires a contacts array, where each entry contains the contact identifier and the fields to update. This is the preferred endpoint for high-volume contact sync flows.

  • This endpoint requires no path parameters. Each Nexset record will be sent as the JSON body of a POST request.

Batch updates are limited to 100 contacts per request. Use Nexla's record batching configuration to group records efficiently. Refer to the Update multiple contacts reference for details.

Update an email campaign

Updates an existing email campaign's subject, content, recipients, or schedule using PUT /v3/emailCampaigns/{'{campaignId}'}. Use this endpoint to programmatically refine drafts before sending or to reschedule campaigns based on operational triggers.

  • Enter the numeric campaign ID in the Campaign ID field. Only draft and scheduled campaigns can be updated; sent campaigns are immutable.

For complete payload details and editable fields, refer to the Update an email campaign reference.

Update email template

Updates the configuration and content of an existing transactional email template using PUT /v3/smtp/templates/{'{templateId}'}. Editable fields include templateName, subject, htmlContent, sender, and isActive.

  • Enter the numeric template ID in the Id field. Template IDs can be obtained from the List email templates endpoint or from the Brevo dashboard.

Updates take effect immediately—any future transactional emails referencing this template will use the updated content. Refer to the Update an email template reference for details.

Manual configuration

Brevo destinations can also be manually configured to send data to any valid Brevo v3 API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

The Brevo v3 API accepts and returns JSON for all endpoints, so JSON is the appropriate content format for nearly all Brevo destinations. All Brevo v3 endpoints are hosted at https://api.brevo.com/v3/; for update, upsert, and delete operations, include the resource identifier (email address, contact ID, campaign ID, or template ID) at the end of the URL. You do not need to include the api-key header—it is automatically injected from the credential. Optionally, enable the response webhook to capture identifiers returned by Brevo (such as transactional messageId values or contact import processId values) for downstream reconciliation.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to the configured Brevo endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to the Brevo endpoint until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.