ActionCustomer.ioUpdated September 2026

How do I send a Customer.io transactional email?

Short answer: You can send transactional email in Customer.io by hand from its own interface, but it won’t repeat itself. On TinyCommand, add the Customer.io Send Transactional Email action to a workflow, map its 5 inputs from any upstream app, and it runs automatically every time the trigger fires. No code, and a free tier to start.

Send Transactional Email in Customer.io — start free
Inputs

The fields this action accepts.

Every field can be mapped from an upstream trigger, AI step, table row, or hard-coded literal.

FieldTypeRequiredDescription
Transactional Message ID
transactional_message_id
stringRequiredThe ID of the transactional message template in Customer.io
To Email
to
stringRequiredTo Email. e.g. "user@example.com"
Customer Email (identifier)
identifiers_email
stringRequiredCustomer Email (identifier). e.g. "user@example.com"
Template Data (JSON)
message_data
stringOptionalVariables to populate the template
Subject Override
subject
stringOptionalOverride the template subject
Sample request
{
"transactional_message_id": "e.g. 1",
"to": "user@example.com",
"identifiers_email": "user@example.com",
"message_data": "{\"name\": \"John\", \"order_id\": \"12345\"}",
"subject": "e.g. Your order #12345 is confirmed"
}
Returns
{
"queued_at": 1700000000,
"delivery_id": "abc-123"
}

Use these fields in downstream nodes for routing, logging, or error handling.

Triggered by

Apps that pair well as the trigger for Send Transactional Email.

Any of these apps can fire this action as part of a workflow.

FAQ

Questions about Send Transactional Email.

What does the Send Transactional Email action do in Customer.io?
Fires a transactional template (designed in Customer.io UI) at a specific recipient with merge data. For "password reset, order confirmation, receipt" workflows where the email content is reviewed in CIO but the trigger is external.
What inputs does Send Transactional Email require?
Required: Transactional Message ID, To Email, Customer Email (identifier). Every input accepts a static value or a variable from any upstream node in your workflow.
Can I use dynamic inputs from earlier workflow nodes?
Yes. Any field on this action can pull values from upstream nodes, whether that's a form response, a trigger payload, an AI output, or a lookup result.
What happens if Customer.io returns an error?
The run history shows the failed step with its input and the error message Customer.io returned, so you can fix the input and run the workflow again. Automatic retries are built into HTTP steps only, where you can also set your own retry count and delay.
Does Send Transactional Email support batch operations?
Run Send Transactional Email inside a loop to process each item in an array. TinyCommand does not throttle calls for you, so for large arrays add a Delay step if you need to stay within Customer.io's rate limits.
More actions

Other Customer.io actions.

Send Transactional Email in Customer.io — start free