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.

FieldTypeRequiredDefaultConstraintsExample
to
The recipient address the message is delivered to.
stringYes——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.
objectNo———
transactional_message_id
The transactional message template to send, by its numeric id or its trigger name.
stringNo———
subject
The subject line. Overrides the template's own subject when both are given.
stringNo———
body
The HTML body. Overrides the template's body when both are given.
stringNo———
body_plain
The plain-text body, for clients that will not render HTML.
stringNo———
from_address
The sender address, which must be a verified sender. Leave blank to use the template or workspace default.
stringNo———
message_data
The Liquid values the template references, as a JSON object.
objectNo———
send_at
When to send, as a Unix timestamp in seconds, up to 90 days ahead. Sends immediately when blank.
numberNo—≥ 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

FieldTypeExample
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.