Skip to content

Automations

An automation runs a sequence of steps whenever a trigger event fires: a welcome series when a contact is created, an alert email when something bounces, an auto-reply to inbound mail.

Terminal window
curl https://api.sendsignal.dev/automations \
-H "Authorization: Bearer ss_..." -H "Content-Type: application/json" \
-d '{
"name": "Welcome series",
"trigger_type": "contact.created",
"steps": [
{ "type": "send_email", "config": { "from": "Acme <hi@acme.com>", "subject": "Welcome!", "html": "<p>Hi {{first_name}}</p>" } },
{ "type": "wait", "config": { "seconds": 86400 } },
{ "type": "add_to_segment", "config": { "segment_id": "…" } }
]
}'

trigger_type is an event name; an optional trigger_filter object narrows matches. Triggers fire on:

  • contact.created: a contact was added (the run carries the contact).
  • email.received: inbound mail arrived on a receiving domain.
  • Delivery events: email.sent, email.delivered, email.bounced, email.complained, email.opened, email.clicked, and the other email event types.
Type Config Behavior
wait seconds (default 60) Pause before the next step
send_email from, subject, html, optional to Send an email; to defaults to the triggering contact, and contact fields fill {{variables}}
add_to_segment segment_id Add the triggering contact to a segment
condition property, equals Continue only if the contact property matches; otherwise the run stops
  • GET /automations / GET /automations/{id}: list and inspect.
  • PATCH /automations/{id}: enable/disable (enabled), or update name, trigger, and steps.
  • GET /automations/{id}/runs: execution history with per-step status.
  • DELETE /automations/{id}: remove.

Automation send_email steps are internally idempotent; a worker retry never double-sends a step’s email.