Brevo (formerly Sendinblue) is one of FlowSync’s primary CRM integrations. Once connected, you can sync new members to Brevo lists, update contact attributes when membership plans change, trigger transactional emails, and use Brevo’s double opt-in flow for compliance with consent rules.
Before you start
FlowSync connects to Brevo using an API key generated in your Brevo account. The connection runs directly between your WordPress site and Brevo’s API — no data passes through FlowSync’s servers.
This takes about 5 minutes the first time. You will not need to do it again unless you rotate your API key.
What you need:
- A Brevo account (sign up free if you don’t have one)
- Admin access to your WordPress site
- FlowSync Pro active on your site
Why API key, not OAuth? Brevo’s v3 API uses API keys for server-to-server authentication. This is simpler than OAuth, doesn’t expire, and doesn’t require a developer console setup. The trade-off is that you must keep the key secure — anyone with the key can read and write your Brevo data.
Step 1 — Generate a Brevo API key
Sign in to app.brevo.com with the account you want to sync FlowSync data into.
- Click your account name in the top right corner
- Select SMTP & API from the dropdown
- Open the API Keys tab
- Click Generate a new API key
- Give it a name — “FlowSync” works fine — then click Generate
[Screenshot: Brevo dashboard — SMTP & API page with API Keys tab and Generate button]
Brevo shows the new key once. Copy it now — you will not be able to see it again after closing the dialog. If you lose it, you can generate a new one and delete the old.
Developer note: Brevo API keys are scoped to the full account — there is no per-resource permission model. Treat the key like a password. If you suspect it’s compromised, regenerate it in Brevo and update FlowSync immediately; the old key stops working as soon as you delete it.
Step 2 — Paste your API key into FlowSync
- In your WordPress admin, go to FlowSync → Integrations
- Find Brevo in the CRM / Email tab and click Configure
- Paste your API key into the API Key field
- Click Save credentials
[Screenshot: FlowSync Integrations panel — Brevo configure modal with API Key field]
FlowSync immediately tests the key against Brevo’s /v3/account endpoint. If the key is valid, the panel shows a green Connected status with your Brevo account email.
Developer note: FlowSync encrypts the API key at rest using
Credential_Vault(OpenSSL/sodium depending on server support). The key is never stored in plaintext after the first save. Connection status is cached for 5 minutes viaIntegration_Cache— click Test connection to force a live check.
Step 3 — Verify the connection
With your key saved, click Test connection in the configure modal. FlowSync makes a live round-trip to Brevo and confirms:
- The API key is valid
- Your Brevo account is active
- FlowSync can list your contact lists and attributes
[Screenshot: FlowSync — Brevo configure modal showing successful connection test with account email]
If the test fails, check the error message and see the Troubleshooting section below.
Step 4 — Configure double opt-in (optional)
If you operate in a jurisdiction that requires explicit consent before adding contacts to a mailing list — or if you simply want confirmed sign-ups — enable Brevo’s double opt-in (DOI) flow.
When DOI is enabled, FlowSync sends contacts a confirmation email through Brevo. The contact is only added to your list after they click the confirmation link.
To enable DOI:
- In Brevo, go to Campaigns → Templates and create a new template
- The template must contain Brevo’s
{{ doubleoptin }}confirmation tag — without this, the confirmation link won’t work - Note the template ID (visible in the template’s URL or settings)
- Back in FlowSync’s Brevo configure modal, toggle Enable double opt-in
- Select the DOI Template from Brevo
- Enter the Redirect URL — where contacts land after confirming (typically a thank-you page on your site)
- Click Save
[Screenshot: FlowSync — Brevo configure modal with DOI enabled, showing Template ID and Redirect URL fields]
Important: The DOI template must already exist in Brevo before it can be selected in FlowSync.
Developer note: When DOI is enabled, FlowSync’s
Action_Add_To_ListcallsPOST /v3/contacts/doubleOptinConfirmationinstead of the standard add-contact endpoint. The request includesincludeListIds,templateId, andredirectionUrl. A 400 response usually means the template ID doesn’t exist or the contact is already on the list — both surface in the FlowSync sync log.
Using Brevo in workflows
With the integration connected, several actions are available in the workflow builder:
Add to List — adds the contact to a Brevo list. Use this for new member sign-ups, completed orders, or any state change that should put a user on a specific list.
Remove from List — removes the contact from a Brevo list. Use this when a subscription expires, is cancelled, or a member changes plans and should move off the previous list.
Update Contact — updates the contact’s attributes in Brevo (name, plan, custom fields) without changing list membership.
Send Transactional Email — triggers a Brevo transactional email template, useful for receipts, password resets, or membership confirmations.
To add a Brevo action to a workflow:
- Open a workflow in the FlowSync workflow builder
- In the Actions section, click Add Action
- Select Brevo from the action group
- Choose the action type
- Select the target list (for list actions) or template (for transactional emails)
- Map the fields — each Brevo attribute maps to a FlowSync field (user email, first name, membership plan, order total, etc.)
[Screenshot: FlowSync workflow builder — Brevo Add to List action with list selector and attribute mapping]
Field mapping works the same as other CRM integrations. The free plan maps email, first name, and last name. Pro unlocks all Brevo attributes including custom contact fields you’ve defined in your Brevo account, plus membership and order data from ProfilePress, WooCommerce, and other sources.
Omnichannel sync
Brevo supports bidirectional sync — changes you make to a contact in Brevo can reflect back to the WordPress user’s profile, and vice versa.
To enable omnichannel sync:
- In FlowSync, go to Integrations → Brevo → Field Mapping
- For each field, set the sync direction:
- Push — WordPress sends changes to Brevo, but not the reverse
- Bidirectional — changes flow in both directions
[Screenshot: FlowSync — Brevo field mapping panel with sync direction selectors]
For bidirectional sync to work, you also need to configure a webhook in Brevo pointing at FlowSync. The webhook URL is shown in the field mapping panel and looks like:
https://yoursite.com/wp-json/flowsync/v1/sync/brevo
Copy this URL, then in Brevo go to Contacts → Settings → Webhooks and create a new webhook pointing at it. Select the events you want to sync — typically contact_updated and unsubscribed.
Developer note: FlowSync handles incoming webhooks via
Brevo\Webhook_Handlerand routes them throughSync_Service::handle_incoming(). Loop prevention is automatic —Sync_Lockensures a push triggered by a pull (or vice versa) won’t cascade. Webhook payloads are validated against the configured API key’s account to prevent spoofing.
Troubleshooting
“Invalid API key” error after saving The key was either copied incorrectly or has been deleted in Brevo. Generate a new key in Brevo (Step 1) and paste it again. Make sure there are no leading or trailing spaces.
“Connected” status but actions fail with 401 Your API key was valid when saved but has since been deleted or regenerated in Brevo. Open the configure modal, paste a fresh key, and save.
Contacts added via DOI never appear in the list Either the template ID is wrong, the template doesn’t contain the {{ doubleoptin }} tag, or contacts aren’t clicking the confirmation link. Check Brevo’s email logs to confirm the confirmation email was sent and opened. Test by adding yourself with a real email address.
Sync log shows “skipped — loop prevention.” This is expected. FlowSync detected that a sync write was triggered by an incoming webhook (or vice versa) and skipped it to prevent an infinite loop. If you see this consistently for normal operations, check that your field mapping directions are configured correctly — bidirectional fields are more likely to trigger lock skips than push-only or pull-only fields.
Lists or attributes don’t appear in the dropdown FlowSync caches list and attribute data for 10 minutes. If you created a new list or attribute in Brevo and it doesn’t appear, click Test connection on the Integrations page to flush the cache and reload.
Custom contact attributes aren’t available for mapping Custom attribute mapping requires FlowSync Pro. The free plan only maps email, first name, and last name. Upgrade to Pro to map all Brevo attributes including custom fields, plus pull membership and order data from your sources.
Developer note: All Brevo API errors are logged to
wp_flowsync_sync_logwith the response body in theerrorcolumn. Query the table directly or use the Sync Log viewer (Pro) to see exact error responses from Brevo — most failures include acodeandmessagefield explaining what went wrong.