Workflows::Run

List automation runs for a workflow, with compact contact data in each run. Filter by current_step_id to see who is at a step now, including paused runs. Multiple step IDs are ORed; contact_id and status filters are combined with AND. Each result is one run, so the same contact can appear more than once. Without a step filter, runs across all statuses are included. Only standard automation runs are returned (survey runs excluded). Pagination is a live view, not a snapshot of membership.

get/workflows/{workflow_id}/runs

Request

Path parameters

workflow_idstring required

Integer id or obfuscated public_id of the workflow.

Query parameters

afterstring

ID of item after which the collection should be returned. More examples and info about pagination in our guides.

per_pageinteger

Records per page. Defaults to 20; raise it up to 100 for bulk reads. A larger value returns 100 records. Zero, a negative or a non-integer value is a 422. The Link next-page URL keeps the value, so a client following it keeps the page size. More in our guides.

sort_order'asc' | 'desc'

Sort order of a list response. Use 'desc' to reverse the default 'asc' (ascending) sort order. Examples in our guides.

sort_property'id' | 'updated_at'

Sort property of a list response. The default is id and thus the created_at order. If you sort by other properties, we additionally sort by id implicitly as a secondary sort property, so that you can rely on the sort order to be deterministic even if the main sort property ends up with the same values.

current_step_idstring

One step ID/public_id, or comma-separated step IDs/public_ids belonging to this workflow. Values are trimmed and deduplicated; empty CSV fragments are ignored. Omit to list all runs.

status'active' | 'paused' | 'completed' | 'canceled'

Filter by derived run status.

Filter current membership by current_step_id and/or narrow by the existing single-value contact_id (integer id or public_id) and status filters.

{
  "current_step_id": "201,202",
  "status": "completed"
}

Response

OK

idinteger

Run ID

public_idstring nullable

Obfuscated run ID

workflow_idinteger

Integer ID of the parent workflow

contact_idinteger nullable

Raw integer ID of the enrolled contact

current_step_idinteger nullable

Raw integer ID of the step the run is currently at. Null when not at a step.

event_idinteger nullable

Raw integer ID of the triggering event that started this run, if any.

typestring nullable

STI type column. Always null for standard automation runs (the only subtype the list endpoint returns).

status'active' | 'paused' | 'completed' | 'canceled'

Derived execution status.

skip_communicationboolean

When true, communication steps (send email, etc.) are skipped for this run.

completed_atstring date-time nullable

Timestamp when the run completed. Null if still in progress.

paused_atstring date-time nullable

Timestamp when the run was last paused. Null if never paused.

created_atstring date-time
updated_atstring date-time

Last run update time, not the time the contact entered the current step.

Example response

[
  {
    "id": 501,
    "public_id": "RnXxYz",
    "workflow_id": 101,
    "contact_id": 9001,
    "contact": {
      "id": 9001,
      "public_id": "CtAbcd",
      "email_address": "jane.doe@example.com",
      "first_name": "Jane",
      "last_name": "Doe",
      "phone_number": null
    },
    "current_step_id": null,
    "event_id": null,
    "type": null,
    "status": "completed",
    "skip_communication": false,
    "completed_at": "2025-06-02T10:30:00.000Z",
    "paused_at": null,
    "created_at": "2025-06-01T09:00:00.000Z",
    "updated_at": "2025-06-02T10:30:00.000Z"
  }
]

Changes

    • info

      added the new optional query request parameter per_page

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property / to the response with the status