Send Transactional Email
customer_io.send_email
ActionCRM & salesconnection required
Calls the Customer.io API with the connection's credentials.
Send one transactional email, either from a transactional message template or from a subject and body supplied here.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- API key
- Providers
- Customer.io
- Secret shape
- {"site_id": "…", "api_key": "…", "app_api_key": "…"} — the Site ID and Track API key for the Track nodes, the App API key for the rest
- Config it needs
- region, workspace_id
- Resolved by
- config.connection_id, else node.connection_id
Configuration
9 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 The recipient address the message is delivered to. | string | Yes | — | — | ada@example.com |
identifiers Which person the message belongs to, as a JSON object with exactly one of 'id', 'email' or 'cio_id'. Customer.io attributes the delivery to that profile. | object | No | — | — | — |
transactional_message_id The transactional message template to send, by its numeric id or its trigger name. | string | No | — | — | — |
subject The subject line. Overrides the template's own subject when both are given. | string | No | — | — | — |
body The HTML body. Overrides the template's body when both are given. | string | No | — | — | — |
body_plain The plain-text body, for clients that will not render HTML. | string | No | — | — | — |
from_address The sender address, which must be a verified sender. Leave blank to use the template or workspace default. | string | No | — | — | — |
message_data The Liquid values the template references, as a JSON object. | object | No | — | — | — |
send_at When to send, as a Unix timestamp in seconds, up to 90 days ahead. Sends immediately when blank. | number | No | — | ≥ 0 | — |
- At least one of transactional_message_id, subject must be set.
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"to": "ada@example.com"
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
delivery_id Customer.io's id for this delivery. | string | — |
queued_at When the request was accepted, as a Unix timestamp. | number | — |
send_at When a scheduled message is due, as a Unix timestamp; absent for an immediate send. | number | — |
scheduled True when the request carried a future send time, so nothing has been delivered yet. | boolean | — |
{
"delivery_id": "",
"queued_at": 0,
"scheduled": false,
"send_at": 0
}Notes
- A delivery id means Customer.io accepted the message, not that it reached the inbox; the outcome arrives on the reporting webhook.
See Send Transactional Email run in a workflow.
In a technical demo we add the Customer.io connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.