Brevo Integration
Brevo (formerly Sendinblue) is a popular email marketing and CRM platform. WP Smart Consent integrates with Brevo via the Contacts API v3, forwarding opted-in contacts to your account in real time using a single createContact upsert call that handles both new contacts and updates to existing ones.
What You’ll Need#
A Brevo API key. To generate one, log into your Brevo account, go to Account → SMTP & API → API Keys and create a new key. The key needs at least contacts read and write permissions.
Connection Tab#
Paste your API key into the Connection tab and save. WP Smart Consent will connect to your Brevo account and populate a list dropdown with your available contact lists. Select one or more lists to add opted-in contacts to. Brevo supports multiple list assignments in a single API call, so if you select several lists the contact is added to all of them simultaneously.

Field Mapping Tab#
Email, first name, and last name are always sent to Brevo regardless of field mapping. First name maps to Brevo’s built-in FIRSTNAME attribute and last name to LASTNAME — these are Brevo’s reserved attribute names.
The field mapping tab lets you forward additional contact data to Brevo contact attributes. Brevo attribute names must be uppercase — for example PHONE, COMPANY, COUNTRY. If the attribute does not already exist in your Brevo account, create it first under Contacts → Contact attributes before mapping it here, otherwise Brevo will reject the value silently.
Available WPSC source fields for mapping: phone, company, country, order total, source URL.

Options Tab#
Update existing — controls the updateEnabled flag in the Brevo API call. When on (the default), if a contact with the same email already exists their attribute values are updated. When off, existing contacts are skipped and their data is not modified.
Send on unchecked — when enabled, contacts are forwarded to Brevo even when the opt-in checkbox was not ticked. Use this if you want to record all submissions in Brevo and manage consent state at the list level.

How the API Call Works#
WP Smart Consent sends a single POST to https://api.brevo.com/v3/contacts with the following structure:
json
{
"email": "jane@example.com",
"attributes": {
"FIRSTNAME": "Jane",
"LASTNAME": "Smith",
"PHONE": "+1 555 000 0000"
},
"listIds": [3, 7],
"updateEnabled": true
}
The attributes object contains all mapped fields with their uppercased Brevo attribute names. listIds is the array of list IDs matching your selection. updateEnabled reflects the Options tab toggle.
Troubleshooting#
Contact not appearing in Brevo — verify the API key has contacts write permission. Brevo keys can be scoped — a read-only key will return a 403 without a clear error message in the WordPress response.
Attribute values not saving — confirm the attribute exists in Brevo and that the destination key in the field mapping table exactly matches the attribute name in uppercase. Brevo ignores unknown attribute keys without returning an error.
Double opt-in email not sending — confirm that a double opt-in template is configured in your Brevo account under Contacts → Double opt-in. If no template is set up, Brevo ignores the DOI flag and adds the contact as active.
Contact added to wrong lists — the list IDs shown in the WPSC dropdown correspond to Brevo’s internal list IDs. If you recently restructured your lists in Brevo, re-open the Connection tab, re-save your API key to refresh the list data, and re-select your lists.