Send Transactional Email
brevo.send_email
ActionEmailconnection required
Calls the Brevo API with the connection's credentials.
Send one transactional email, either from a Brevo template with 'params' filled in, or from HTML content with a subject and sender.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- API key
- Providers
- Brevo
- Secret shape
- the API key, or {"api_key": "…"}
- Config it needs
- sender_email, sender_name, sms_sender
- Resolved by
- config.connection_id, else node.connection_id
Configuration
13 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
to Recipient addresses — one address, a comma-separated list, or a JSON array of {"email", "name"} objects. | string | Yes | — | — | jane@example.com |
template_id Numeric id of the Brevo template to send. Supplies the subject, sender and body itself. | number | No | — | ≥ 1 | — |
params Values for the template's placeholders, e.g. {"FNAME": "Jane"}. | object | Conditional | — | only with template_id | {"FNAME":"Jane"} |
subject Subject line. Required when no 'template_id' is used. | string | No | — | — | — |
html_content HTML body of the email. Required when no 'template_id' is used, and ignored when one is. | string | No | — | — | — |
text_content Plain-text alternative body, ignored when a 'template_id' is used. | string | No | — | — | — |
sender_email From address. Falls back to the connection's default sender. | string | No | — | email format | — |
sender_name Display name for the sender. Falls back to the connection's default. | string | No | — | — | — |
cc Addresses to copy, as a comma-separated list or a JSON array. | string | No | — | — | — |
bcc Addresses to blind-copy, as a comma-separated list or a JSON array. | string | No | — | — | — |
reply_to Address replies should go to, when it differs from the sender. | string | No | — | email format | — |
tags Tags to file the message under, as a comma-separated list. | string | No | — | — | — |
scheduled_at Send the email at this UTC time instead of now, e.g. 2026-09-10T09:00:00.000Z. | string | No | — | iso8601 format | — |
- At least one of template_id, html_content must be set.
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"params": {
"FNAME": "Jane"
},
"to": "jane@example.com"
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
messageId Brevo's id for the message that was sent. | string | — |
messageIds One id per version when message versions were used. | array | — |
batchId Batch id, set only when the send was scheduled. | string | — |
recipients The addresses the message was sent to. | array | — |
{
"batchId": "",
"messageId": "",
"messageIds": [],
"recipients": []
}See Send Transactional Email run in a workflow.
In a technical demo we add the Brevo connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.