List automation runs
curl --request GET \
--url https://api.sendrealm.com/automations/{id}/runs \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sendrealm.com/automations/{id}/runs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sendrealm.com/automations/{id}/runs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"status": 123,
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"automation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"automation_version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"trigger_event_name": "<string>",
"resolved_identity_type": "<string>",
"resolved_identity_value": "<string>",
"correlation": {
"key": "<string>",
"value": "<string>"
},
"execution_mode": "<string>",
"status": "<string>",
"last_error": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"virtual_now": "2023-11-07T05:31:56Z",
"terminal_reason": "<string>",
"completed_step_key": "<string>",
"cancellation_requested_at": "2023-11-07T05:31:56Z",
"cancellation_reason": "<string>",
"canceled_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"metadata": {
"items": 123,
"has_more": true,
"next": "<string>"
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}Automation Runs
List runs for an automation and inspect a single run.
GET
/
automations
/
{id}
/
runs
List automation runs
curl --request GET \
--url https://api.sendrealm.com/automations/{id}/runs \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sendrealm.com/automations/{id}/runs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sendrealm.com/automations/{id}/runs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"status": 123,
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"automation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"automation_version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"trigger_event_name": "<string>",
"resolved_identity_type": "<string>",
"resolved_identity_value": "<string>",
"correlation": {
"key": "<string>",
"value": "<string>"
},
"execution_mode": "<string>",
"status": "<string>",
"last_error": "<string>",
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"virtual_now": "2023-11-07T05:31:56Z",
"terminal_reason": "<string>",
"completed_step_key": "<string>",
"cancellation_requested_at": "2023-11-07T05:31:56Z",
"cancellation_reason": "<string>",
"canceled_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"metadata": {
"items": 123,
"has_more": true,
"next": "<string>"
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}{
"status": 123,
"error": {
"code": "<string>",
"message": "<string>",
"details": "<string>",
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>"
}
]
}
}Endpoints
GET /automations/:id/runsGET /automation-runs/:runId
Run detail includes
- Trigger event
- Resolved identity
- Per-step timeline
- Wait states
- Timeout path
- Linked sent email and push records
- Last error
Operational notes
- Run execution uses at-least-once semantics.
- Step retries are protected with step-level idempotency, so a previously completed step is not re-sent on resume.
wait_for_eventtimeout handling is scheduler based and near-real-time, not a hard real-time guarantee.- If a wait times out first, a later matching event does not reopen that completed branch.
Example run detail
{
"data": {
"id": "run_123",
"automation_id": "aut_123",
"trigger_event_name": "order.completed",
"resolved_identity_type": "email",
"resolved_identity_value": "olivia@example.com",
"status": "completed",
"trigger_event": {
"id": "evt_123",
"event_name": "order.completed",
"payload": {
"order_id": "ord_123"
},
"occurred_at": "2026-06-08T14:15:00.000Z"
},
"steps": [
{
"id": "step_1",
"step_key": "send_receipt",
"step_type": "send_email_template",
"status": "completed",
"linked_emails": [
{
"id": "email_123",
"subject": "Your receipt",
"status": "sent",
"last_event": "send",
"template_version_id": "tmplver_email_123",
"contact_id": "contact_123",
"created_at": "2026-06-08T14:15:01.000Z"
}
]
},
{
"id": "step_2",
"step_key": "wait_for_open",
"step_type": "wait_for_event",
"status": "completed",
"branch_taken": "received",
"waits": [
{
"id": "wait_123",
"step_id": "step_2",
"step_key": "wait_for_open",
"step_type": "wait_for_event",
"waiting_for_event_name": "sendrealm.mail.open",
"status": "received",
"resolved_identity_value": "olivia@example.com",
"timeout_at": "2026-06-08T14:45:00.000Z",
"resumed_at": "2026-06-08T14:16:30.000Z",
"timed_out_at": null,
"outcome_branch": "received",
"resumed_by_event": {
"id": "evt_124",
"event_name": "sendrealm.mail.open",
"occurred_at": "2026-06-08T14:16:30.000Z"
}
}
]
},
{
"id": "step_3",
"step_key": "send_push_follow_up",
"step_type": "send_push_template",
"status": "completed",
"linked_push_notifications": [
{
"id": "push_123",
"title": "Need anything else?",
"status": "sent",
"last_event": "send",
"template_version_id": "tmplver_push_123",
"contact_id": "contact_123",
"created_at": "2026-06-08T14:16:31.000Z"
}
]
}
],
"waits": [
{
"id": "wait_123",
"step_id": "step_2",
"step_key": "wait_for_open",
"step_type": "wait_for_event",
"waiting_for_event_name": "sendrealm.mail.open",
"status": "received",
"resolved_identity_value": "olivia@example.com",
"timeout_at": "2026-06-08T14:45:00.000Z",
"resumed_at": "2026-06-08T14:16:30.000Z",
"timed_out_at": null,
"outcome_branch": "received",
"resumed_by_event": {
"id": "evt_124",
"event_name": "sendrealm.mail.open",
"occurred_at": "2026-06-08T14:16:30.000Z"
}
}
],
"sent_emails": [
{
"id": "email_123",
"subject": "Your receipt",
"status": "sent",
"last_event": "send",
"automation_step_key": "send_receipt",
"template_version_id": "tmplver_email_123",
"created_at": "2026-06-08T14:15:01.000Z"
}
],
"sent_push_notifications": [
{
"id": "push_123",
"title": "Need anything else?",
"status": "sent",
"last_event": "send",
"automation_step_key": "send_push_follow_up",
"template_version_id": "tmplver_push_123",
"created_at": "2026-06-08T14:16:31.000Z"
}
]
}
}
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
⌘I