Sending a transactional email

By API call, by agent, or bound to an event.

First, create the template: a template with category: "transactional", any key you like (lowercase, digits, underscores, unique to your organization), and a subject. Then send it one of these ways.

By API call

POST /api/v1/transactional_emails    scope: transactional:send
{
  "template": "donation_receipt",
  "to": "[email protected]",
  "from": "[email protected]",
  "variables": { "amount": "$50", "receipt_number": "1042" }
}

to does not need to be a contact. from must be an address on a verified sending domain. The message is queued to the outbox and counts toward your weekly cap. A 202 means queued, not delivered.

By agent

The send_transactional_email tool takes the same arguments. Useful when an assistant is doing a one-off send on your behalf.

Bound to an event

Give the template a trigger event name and a from address, and every POST /api/v1/events with that name sends the email once, to the event's contact, with the payload available as {{ event.* }}. No API call per send. One template per event name; a sequence can be bound to the same event and both will run.

System mail

Password resets, team invitations, and the welcome email are transactional templates too, under reserved keys. You can edit their wording and design, but the required merge tag (the reset link, the accept link) has to stay or the save is refused.

Something unclear or missing? Tell us.