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.
Create
Section titled “Create”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": "…" } } ] }'Triggers
Section titled “Triggers”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 |
Managing
Section titled “Managing”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.