Email

Last updated on May 21, 2026

The Email integration sends a transactional message from a workflow whenever a trigger fires. Delivery is managed by TofuPilot, so you do not need SMTP credentials or an SPF or DKIM record on your domain.

Fields

The action takes three required fields and two optional copy fields that you can use to send the message to additional recipients.

FieldRequiredPurpose
ToYesUp to 50 recipient addresses, comma-separated. Supports {{variable}} interpolation.
CcNoCarbon copy. Counted toward the 50 cap.
BccNoBlind carbon copy. Counted toward the 50 cap.
SubjectYesPlain text. Supports variables.
BodyYesPlain text or HTML. Supports variables.

Variables

You can reference values from the trigger or any earlier action with {{nodeId.fieldKey}} syntax. Common examples include:

  • {{trigger.run.name}}
  • {{trigger.unit.serial_number}}
  • {{trigger.run.outcome}}: one of PASS, FAIL, ERROR, TIMEOUT, or ABORTED.
  • {{http_request.status}}: HTTP status from an upstream HTTP action.

Missing variables render as [not set] at execution time.

Include a link to the run page in the body: https://tofupilot.app/{org}/runs/{{trigger.run.id}}.

Limits

The email action has a few caps you should keep in mind when sending to large recipient lists or attaching long bodies.

  • 50 recipients across To/Cc/Bcc.
  • Body size: 1 MB.
  • Delivery: best-effort within 30 seconds.

How is this guide?

On this page