Skip to main content

Brevo Destination

Nexla's bi-directional connectors allow data to flow both to and from any location, making it simple to create a FlexFlow data flow that sends data to a Brevo location. Use the Brevo destination to push contacts, companies, lists, transactional emails, SMS, and campaign updates from upstream data sources into your Brevo account.
brevo_api.png

Brevo

Create a Brevo Destination

  1. Click the + icon on the Nexset that will be sent to the Brevo destination, and select the Send to Destination option from the menu.

  2. 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.

  3. In Nexla, Brevo destinations can be created using pre-built endpoint templates, which expedite destination setup for common Brevo endpoints. Each template is designed specifically for the corresponding Brevo endpoint, making destination configuration easy and efficient.
    • To configure this destination using a template, follow the instructions in Configure Using a Template.

    Brevo destinations can also be configured manually, allowing you to send data to Brevo endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this destination manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Brevo endpoints. Each template is designed specifically for the corresponding Brevo endpoint, making destination setup easy and efficient.

  • To configure this destination using a template, 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.

Configure Manually

Brevo destinations can be manually configured to send data to any valid Brevo API endpoint.

Using manual configuration, you can also configure Nexla to automatically send the response received from the Brevo API after each call to a new Nexla webhook data source. This is particularly useful for tracking message IDs returned by transactional email/SMS sends or for capturing async process IDs from bulk import calls.

API Method

  1. To manually configure this destination, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the Brevo API from the Method pulldown menu. Brevo destination endpoints typically use:

    • POST: For creating new resources (contacts, campaigns, templates) or for actions such as sending transactional messages and importing contacts.
    • PUT: For updating existing resources by ID (contacts, campaigns, templates).
    • DELETE: For removing resources such as contacts.

Data Format

  1. Select the format in which the Nexset data will be sent to the Brevo API from the Content Format pulldown menu. The Brevo v3 API accepts and returns JSON for all endpoints, so JSON is the appropriate format for nearly all Brevo destinations. Nexla will automatically convert the data to the selected format for each API call.

API Endpoint URL

  1. Enter the URL of the Brevo API endpoint to which you want to send the Nexset data in the URL field. All Brevo v3 endpoints are hosted at https://api.brevo.com/v3/. For update/upsert/delete operations, include the resource identifier (email address, contact ID, campaign ID, template ID) at the end of the URL.

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this destination, enter the headers & corresponding values as comma-separated pairs in the Request Headers field (e.g., header1:value1,header2:value2).

    You do not need to include the api-key header here—it is automatically injected from the credential. Content-Type: application/json is also handled automatically by Nexla.

Exclude Attributes from the Call

Optional
  • If any record attributes in the Nexset should be omitted when sending data to this Brevo destination, select the attributes from the Exclude Attributes pulldown menu. This is useful for stripping internal-only fields or metadata that should not be forwarded to Brevo.

  • Any number of attributes can be selected for exclusion, and all excluded attributes will be shown in the field. To remove an attribute from the list, click the X icon next to the attribute name.

Record Batching

Optional
  1. If records should be sent to this destination in batched API calls, check the box next to Would you like to batch your records together? to enable record batching. Batching is recommended for high-volume sync flows targeting endpoints like POST /v3/contacts/batch (up to 100 contacts per call) or POST /v3/contacts/import.

  2. Enter the maximum number of records that should be batched together in a single API call in the Batch Size field. By default, this value is set to 100. Review the relevant Brevo endpoint documentation to confirm per-call record limits.

  3. Select the algorithm that will be used to group records into batches from the Grouping Algorithm pulldown menu. The sample request shown in the panel on the right will be updated to reflect the current batching settings. Some algorithms require additional settings—click on an algorithm listed below to view instructions for configuring these settings.

Response Webhook

Optional

Nexla can automatically send the response received from the Brevo API after each call to a new Nexla webhook data source. This option allows you to keep track of the status of each API call—useful for capturing transactional messageId values, contact import processId values, or other identifiers needed for downstream reconciliation.

  • To enable this option, check the box next to Would you like to process the API response as a Nexla Webhook source?.

Sample Request Payload

Sample request payloads containing a portion of the Nexset data that will be sent to the Brevo API endpoint based on the current settings are shown in the Sample Payload panel on the right. These samples can be referenced to ensure that the destination and request settings are correctly configured.

  • Click on a sample request payload to expand it and view the complete payload content.
  • Sample payloads are automatically updated with each setting change, making it easy to verify that changes achieve the desired effect.

Endpoint Testing (Manual Configuration)

After all endpoint settings have been configured, Nexla can send a test payload to the Brevo API to ensure that the destination is configured correctly.

  1. To send a test payload, select the Test button at the top of the Sample Payload panel, and click on a listed sample payload to expand it.

  2. If any modifications to the sample payload are needed, make the necessary changes directly within the sample window.

  3. Click the Send Test Data button at the top of a sample payload to send the test payload to the Brevo API using the current settings.

Save & Activate the Destination

  • 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.