Brevo
Datafly Signal delivers your first-party events server-to-server to Brevo (formerly Sendinblue) using Brevo’s Events API. Each event records a behavioural interaction against a contact, can upsert contact attributes, and is available to Brevo segments and marketing automation workflows (welcome series, abandoned cart, post-purchase, and more).
Because delivery is server-side, no Brevo tracker script runs in the browser, and your event data flows from your own first-party domain.
Why route Brevo through Datafly Signal
- Profiles are updated from the server, not the browser. Events reach Brevo even when a tracker blocker or a failed page unload would have dropped a client-side call, so the profile reflects what actually happened.
- Presets for Default (Lifecycle) and Retail. The mapping starts from a working configuration for your vertical instead of a blank field map.
- One consent decision governs every destination. Brevo is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.
Prerequisites
- A Brevo account on a plan that includes the Events API.
- A Brevo API key with the Events scope. Create one in the Brevo dashboard under SMTP & API → API Keys.
- A Datafly Signal pipeline already collecting events from your site via Datafly.js.
Configuration
| Field | Required | Description |
|---|---|---|
| API Key | Yes | Your Brevo API key. Sent in the api-key request header. |
Configure in Signal
- In the management UI, open your pipeline and add the Brevo integration.
- Paste your API Key.
- Choose a preset:
- Default (Lifecycle) — page views, sign-up, login, search, lead, and order events.
- Retail — full e-commerce funnel (product views, cart updates, checkout, orders, refunds) for abandoned-cart and post-purchase automation.
- Save and enable the integration.
API Endpoint
POST https://api.brevo.com/v3/eventsAuthentication is the api-key header:
api-key: <YOUR_API_KEY>
Content-Type: application/jsonA successful request returns 204 No Content.
Identity Signals
| Brevo identifier | Source | Notes |
|---|---|---|
identifiers.email_id | traits.email | Trimmed, lower-cased, plain text: Brevo matches the contact on it and sends to it |
identifiers.ext_id | user_id | Your customer ID |
identifiers.phone_id | traits.phone | E.164 |
An event without any of the three is not sent; the Signal anonymous ID is not a Brevo contact. FIRSTNAME and LASTNAME are upserted as contact attributes on every event.
Event Mapping
| Signal event | Brevo event_name | Preset |
|---|---|---|
page | page_viewed | Default, Retail |
sign_up / login | signed_up / logged_in | All / Default, B2B / SaaS |
search | products_searched | Default |
generate_lead | lead_generated | Default, B2B / SaaS |
view_item | product_viewed | Retail |
add_to_cart, remove_from_cart | cart_updated | Retail |
view_cart | cart_viewed | Retail |
begin_checkout | checkout_started | Retail |
purchase / refund | order_completed / order_refunded | Default, Retail / Retail |
demo_requested, trial_started, trial_converted, subscription_started, subscription_cancelled, onboarding_completed | same names | B2B / SaaS |
event_date is the event time; event_properties carries the event’s documented properties with value as a number, currency upper-case and the Signal items as products.
Testing
- Trigger an event on your site (for example, complete a test order) with a known email address.
- In the Signal Event Debugger, confirm the event was delivered with a 204 response from Brevo.
- In Brevo, open the contact for that email and check the Events / activity timeline — your event should appear with its properties.
- If you have an automation listening for the event, confirm the contact entered the workflow.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
400 Bad Request | Invalid event_name characters, or no identifier present | Ensure the event name uses only letters, numbers, -, _; ensure an email or ext_id is available on the event. |
401 Unauthorized | Bad or missing API key | Re-check the API key value in the integration settings. |
402 / 403 | Plan lacks the Events feature, or the key lacks the Events scope | Upgrade the plan or regenerate a key with the Events scope. |
| Event delivered but no contact updated | Email not present on the event | Confirm an identify/traits call supplies the email before or alongside the event. |
| Properties missing in Brevo | Event metadata not mapped | Add the property to event_properties in the blueprint mapping. |