Brevo
Send transactional email and SMS through Brevo, keep contacts, lists and attributes up to date, and create and send email campaigns.
Connect Brevo
- In the sidebar, open Connections and press Add connection.
- Type
brevoand choose Brevo. - Fill in the fields. Each one says Required or Optional.
- Press Test and save. GoRunner checks the connection before it saves anything.
The sheet asks for:
- API key · Required
The v3 API key (xkeysib-…), shown once when you make it. An SMTP key does not work here.
Paste a Brevo API key (Settings › SMTP & API › API Keys › Generate a new API key). It works for the whole account.
Connections says how to sign in again, rename or delete it. In a product that embeds GoRunner, Add connection can be missing: then your provider makes connections for you.
Start a workflow
Add a trigger and choose Brevo. The trigger uses the same connection as the steps.
On Email Event
Fires when Brevo reports one of the chosen events. Publishing the workflow creates the webhook in Brevo; unpublishing removes it. Brevo does not sign its webhooks, so the check is a random token of this webhook's own, which Brevo sends with every delivery (as a bearer token and in a header); a delivery without it is refused. A retry of the same event starts no second run.
- Kind · Required
Transactional email (sent through the API or SMTP), marketing email (campaigns, contacts), or inbound email Brevo parsed.
Options: Transactional email, Marketing email, Inbound email.
Default: Transactional email.
- Inbound Domain · Required
The domain Brevo receives the email on (set up under Inbound parsing).
Shows when Kind is Inbound email.
- Events · Required
Which transactional email events start the workflow.
Options: Sent, Delivered, Opened, Opened for the first time, Clicked, Soft bounce, Hard bounce, Invalid address, Deferred, Blocked, Marked as spam, Unsubscribed.
Shows when Kind is Transactional email.
- Events · Required
Which marketing events start the workflow.
Options: Delivered, Opened, Clicked, Soft bounce, Hard bounce, Marked as spam, Unsubscribed, Added to a list, Contact updated, Contact deleted.
Shows when Kind is Marketing email.
A later step can use its data, such as {{trigger.date}}, {{trigger.email}}, {{trigger.event}} and 4 more. See Use data from earlier steps.
Do things in Brevo
Add a Brevo step, choose a Resource, then an Operation. Choose a row to see its fields.
- ContactCreate · Create or Update · Get · Get Many · Update · Delete
- ListCreate · Get · Get Many · Update · Delete · Add Contacts · Remove Contacts · Get Contacts
- Contact AttributeCreate · Get Many · Update · Delete
- Transactional EmailSend · Send Template
- Transactional SMSSend
- Email CampaignCreate · Get · Get Many · Update · Send Now · Send Test · Delete
- SenderCreate · Get Many · Delete
Later steps read a step’s output by its name: see Use data from earlier steps.
Limits
- A reply from Brevo can be up to 16 MB (a file download can have its own limit). A larger one fails the step; it is never cut short.
- When Brevo says to slow down (429), the step waits as long as it asks, if the step’s time allows. Otherwise it fails and says when to try again.
Not in your list? See When an app isn’t here.
For developers
In the API, which calls apps pieces, Brevo is pieceId: "brevo" with actionId: "brevo", set by resource and an operation_… field, such as operation_attribute. Its trigger is brevotrigger / brevo_event. Get an app returns every field.
It can change something outside the run (writes_external). See How versions and side effects work.
Brevo › Contact
Create and Create or Update
- Email · Required
The contact's email address.
- Attributes · Optional
Attribute values by name, in capitals, such as {"FIRSTNAME": "Sam", "LASTNAME": "Lee", "SMS": "+4915112345678"}. Contact Attribute › Get Many lists them.
- Add to Lists · Optional
List ids, separated by commas.
- External ID · Optional
Your own id for the contact.
- Email Blocklist · Optional
Stop or allow marketing and transactional email to the contact. Empty leaves it as it is.
Options: Blocklist (no more emails / texts), Remove from the blocklist.
- SMS Blocklist · Optional
Stop or allow texts to the contact. Empty leaves it as it is.
Options: Blocklist (no more emails / texts), Remove from the blocklist.
Get and Delete
- Contact · Required
The contact's email address or id.
Get Many
- Changed After · Optional
Only contacts changed after this time (ISO 8601, such as 2026-11-01T00:00:00Z).
- Created After · Optional
Only contacts created after this time (ISO 8601).
- On Lists · Optional
Only contacts on these lists (ids, separated by commas).
- Order · Optional
By when the contact was created.
Options: Newest first, Oldest first.
Default: Newest first.
- Return All · Optional
Read every contact, page by page (at most 5000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many contacts to return (1–5000).
Default: 50.
Shows when Return All is off.
Update
- Contact · Required
The contact's email address or id.
- Attributes · Optional
Attribute values by name, in capitals, such as {"FIRSTNAME": "Sam", "LASTNAME": "Lee", "SMS": "+4915112345678"}. Contact Attribute › Get Many lists them.
- Add to Lists · Optional
List ids, separated by commas.
- Remove from Lists · Optional
List ids to take the contact off, separated by commas.
- External ID · Optional
Your own id for the contact.
- Email Blocklist · Optional
Stop or allow marketing and transactional email to the contact. Empty leaves it as it is.
Options: Blocklist (no more emails / texts), Remove from the blocklist.
- SMS Blocklist · Optional
Stop or allow texts to the contact. Empty leaves it as it is.
Options: Blocklist (no more emails / texts), Remove from the blocklist.
Brevo › List
Create
- Name · Optional
The list's name.
- Folder · Optional
The folder the list goes in.
Get and Delete
- List · Required
The list.
Get Many
- Return All · Optional
Read every item, page by page (at most 5000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many items to return (1–5000).
Default: 50.
Shows when Return All is off.
Update
- List · Required
The list.
- Name · Optional
The list's name.
- Folder · Optional
The folder the list goes in.
Add Contacts
- List · Required
The list.
- Contacts · Optional
Email addresses or contact ids, separated by commas (at most 150).
Remove Contacts
- List · Required
The list.
- Contacts · Optional
Email addresses or contact ids, separated by commas (at most 150).
- Remove Everyone · Optional
Take every contact off the list.
Off by default.
Get Contacts
- List · Required
The list.
- Changed After · Optional
Only contacts changed after this time (ISO 8601).
- Return All · Optional
Read every item, page by page (at most 5000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many items to return (1–5000).
Default: 50.
Shows when Return All is off.
Brevo › Contact Attribute
Create
- Category · Required
Normal (a value per contact), Transactional, Category (one of fixed choices), Calculated or Global (a formula).
Options: Normal, Transactional, Category, Calculated, Global.
Default: Normal.
- Name · Required
The attribute's name (letters, digits and _; Brevo shows it in capitals).
- Type · Optional
What a Normal attribute holds.
Options: Text, Date, Number, Yes/No, Multiple choice.
Default: Text.
Shows when Category is Normal.
- Formula · Optional
The formula of a Calculated or Global attribute, such as COUNT[ORDER_ID,ORDER_DATE,>,NOW(-30)].
Shows when Category is Calculated or Global.
- Choices · Optional
The choices of a Category attribute: [{"value": 1, "label": "Gold"}, {"value": 2, "label": "Silver"}].
Shows when Category is Category.
Get Many
Nothing to fill in.
Update
- Category · Required
Normal (a value per contact), Transactional, Category (one of fixed choices), Calculated or Global (a formula).
Options: Normal, Transactional, Category, Calculated, Global.
Default: Normal.
- Name · Required
The attribute's name (letters, digits and _; Brevo shows it in capitals).
- Formula · Optional
The formula of a Calculated or Global attribute, such as COUNT[ORDER_ID,ORDER_DATE,>,NOW(-30)].
Shows when Category is Calculated or Global.
- Choices · Optional
The choices of a Category attribute: [{"value": 1, "label": "Gold"}, {"value": 2, "label": "Silver"}].
Shows when Category is Category.
Delete
- Category · Required
Normal (a value per contact), Transactional, Category (one of fixed choices), Calculated or Global (a formula).
Options: Normal, Transactional, Category, Calculated, Global.
Default: Normal.
- Name · Required
The attribute's name (letters, digits and _; Brevo shows it in capitals).
Brevo › Transactional Email
Send
- From Email · Optional
A sender address set up in Brevo (Senders, Domains & Dedicated IPs). With a template, empty uses the template's sender.
- From Name · Optional
The sender's name.
- To · Required
Recipient addresses, separated by commas.
- CC · Optional
Addresses to copy, separated by commas.
- BCC · Optional
Addresses to copy unseen, separated by commas.
- Reply To · Optional
Where replies go.
- Subject · Optional
The subject line. With a template, empty uses the template's subject.
- HTML · Optional
Write the body as HTML instead of plain text.
Off by default.
- HTML · Required
The email's HTML.
Shows when HTML is on.
- Text · Required
The email's text.
Shows when HTML is off.
- Attachments · Optional
Attach one file per row, or switch the field to an expression to pass a whole list from an earlier step (such as {{steps.unzip.files}}). Brevo takes pdf, docx, xlsx, csv, png, jpg, zip and many more types.
- Tags · Optional
Tags for Brevo's statistics, separated by commas.
- Send At · Optional
Schedule the email (ISO 8601 time). Empty sends now.
- Headers · Optional
Extra email headers, such as {"X-Order-Id": "42"}.
Send Template
- From Email · Optional
A sender address set up in Brevo (Senders, Domains & Dedicated IPs). With a template, empty uses the template's sender.
- From Name · Optional
The sender's name.
- To · Required
Recipient addresses, separated by commas.
- CC · Optional
Addresses to copy, separated by commas.
- BCC · Optional
Addresses to copy unseen, separated by commas.
- Reply To · Optional
Where replies go.
- Subject · Optional
The subject line. With a template, empty uses the template's subject.
- Template · Required
The saved template (Campaigns › Templates).
- Template Parameters · Optional
Values the template reads as {{ params.name }}, such as {"Name": "Sam", "ORDER": 42}.
- Attachments · Optional
Attach one file per row, or switch the field to an expression to pass a whole list from an earlier step (such as {{steps.unzip.files}}). Brevo takes pdf, docx, xlsx, csv, png, jpg, zip and many more types.
- Tags · Optional
Tags for Brevo's statistics, separated by commas.
- Send At · Optional
Schedule the email (ISO 8601 time). Empty sends now.
- Headers · Optional
Extra email headers, such as {"X-Order-Id": "42"}.
Brevo › Transactional SMS
Send
- Sender · Required
The name shown as the sender (at most 11 letters and digits) or a number (at most 15 digits).
- To · Required
The mobile number with its country code, such as 4915112345678.
- Message · Required
The text. Over 160 characters it is sent as several messages.
- Type · Optional
Transactional, or marketing (needed when the text holds a [stop CODE]).
Options: Transactional, Marketing.
Default: Transactional.
- Tag · Optional
A label for Brevo's statistics.
- Unicode · Optional
Send the text as Unicode (accents, emoji; fewer characters per message).
Off by default.
- Brand Prefix · Optional
A brand name put before the text (US carriers ask for one).
Brevo › Email Campaign
Create
- Name · Optional
The campaign's name (people never see it).
- Subject · Optional
The email's subject line.
- From Email · Optional
A sender address set up in Brevo.
- From Name · Optional
The sender's name.
- Reply To · Optional
Where replies go.
- Preview Text · Optional
The text shown after the subject in the inbox.
- HTML · Optional
The email's HTML. Use this or a Template.
- Template · Optional
A saved template to send instead of HTML.
- Lists · Optional
The lists it goes to (ids, separated by commas).
- Send At · Optional
Schedule it (ISO 8601 time). Empty keeps it a draft.
Get, Send Now and Delete
- Campaign · Required
The campaign's id.
Get Many
- Status · Optional
Only campaigns in this state. Empty lists every campaign.
Options: Draft, Sent, Scheduled, Suspended, Sending, Archived.
- Include HTML · Optional
Return each campaign's HTML too (large).
Off by default.
- Return All · Optional
Read every campaign, page by page (at most 5000; past that the step fails rather than stop early).
Off by default.
- Limit · Optional
How many campaigns to return (1–5000).
Default: 50.
Shows when Return All is off.
Update
- Campaign · Required
The campaign's id.
- Name · Optional
The campaign's name (people never see it).
- Subject · Optional
The email's subject line.
- From Email · Optional
A sender address set up in Brevo.
- From Name · Optional
The sender's name.
- Reply To · Optional
Where replies go.
- Preview Text · Optional
The text shown after the subject in the inbox.
- HTML · Optional
The email's HTML. Use this or a Template.
- Template · Optional
A saved template to send instead of HTML.
- Lists · Optional
The lists it goes to (ids, separated by commas).
- Send At · Optional
Schedule it (ISO 8601 time). Empty keeps it a draft.
Send Test
- Campaign · Required
The campaign's id.
- Test Addresses · Required
Where the test goes (addresses of the account's test list), separated by commas.
Brevo › Sender
Create
- Name · Required
The sender's name.
- Email · Required
The sender's address; Brevo emails it a code to confirm it.
Get Many
Nothing to fill in.
Delete
- Sender · Required
The sender's id.