Run History API: records
A record is one row of a process's dataset, handled during a run, with the steps that acted on it. Steps whose condition didn't match aren't listed.
The record object
| Field | Type | Description |
|---|---|---|
id | integer | Unique record identifier. |
processRunId | integer | The run this record belongs to. |
processId | string (UUID) | The process that ran. |
recordKey | string | The value of the record's first field in the dataset, such as a learner reference. |
status | string | Success or Failed. |
startedAt | timestamp | When handling of the record started. |
finishedAt | timestamp | When handling of the record finished. |
errorMessage | string or null | The first error, if any. |
stepCount | integer | Number of steps actioned. Returned on list endpoints. |
steps | array of steps | The full step breakdown. Returned by GET /records/{recordId}, or on lists with include=steps. |
Each step has step (the step's label as set on the process), success (boolean), error (string or null) and actions (array of actions, or null).
Each action has action (the action type, such as sendEmail), name (the template or item name), executed (false when the step stopped before this action ran), success (boolean, only meaningful when executed is true) and error (string or null).
{
"id": 98761,
"processRunId": 4182,
"processId": "8b1f2c3d-6e7a-4b9c-a0d1-2e3f4a5b6c7d",
"recordKey": "LRN-00451",
"status": "Failed",
"startedAt": "2026-10-21T07:01:03+00:00",
"finishedAt": "2026-10-21T07:01:04+00:00",
"errorMessage": "SMTP 550: mailbox unavailable",
"stepCount": 1,
"steps": [
{
"step": "Send first reminder",
"success": false,
"error": "SMTP 550: mailbox unavailable",
"actions": [
{ "action": "sendEmail", "name": "Reminder 1", "executed": true, "success": false, "error": "SMTP 550: mailbox unavailable" },
{ "action": "sendMessage", "name": "Tutor alert", "executed": false, "success": false, "error": null }
]
}
]
}Search records
GET /records returns records across all runs and processes, newest first. Use it to trace one record's history, such as every action taken for a learner.
| Query parameter | Type | Description |
|---|---|---|
processId | UUID | Only records from this process. |
recordKey | string | Exact match on the record key. |
status | string list | Success, Failed, or both. |
search | string | Matches part of recordKey or errorMessage. |
from | date or timestamp | Records started at or after this time. |
to | date or timestamp | Records started before this time. |
include | string | steps to return the full step breakdown on each record. |
page | integer | Default 1. |
pageSize | integer | Default 25, maximum 200. |
curl "https://{tenantname}.automatedon.io/api/v1/records?recordKey=LRN-00451&from=2026-09-01" \
-H "X-Api-Key: $AO_API_KEY"Response 200 OK: a page of record objects, without steps unless you set include=steps.
Get a record
GET /records/{recordId} returns one record object with its full steps, or 404 Not Found if the record doesn't exist or has been cleared from history.
curl "https://{tenantname}.automatedon.io/api/v1/records/98761" \
-H "X-Api-Key: $AO_API_KEY"