Workflows

List workflow executions (paginated, filterable)

GET
/api/workflows/executions

Lists recent WorkflowExecution records for the caller organization. Drives the Workflows Dashboard page in the client - mirrors the event-logs/Automations Dashboard pattern but sourced from the workflow runner's execution records (not the legacy event-handler automation system; the two are independent). Each row includes the trigger metadata (triggeredBy, triggerData) and context refs (contactId, conversationId) so the client can render a per-trigger linked-entity link - e.g. for the application_created trigger, the row links to the contact profile of the application owner (since there is no standalone application detail page). The full node-by-node execution trace and workflow variables are omitted from list rows for payload size; fetch them with GET /api/workflows/executions/{executionId}. Non-SUPERADMIN callers are always scoped to their own organization regardless of any organizationId query param.

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

workflowId?string

Filter to executions of a specific workflow.

triggeredBy?string

Filter by trigger kind. Use all (default) for no filter. Mirrors WorkflowExecution.triggeredBy.

Value in

  • "all"
  • "message"
  • "timer"
  • "webhook"
  • "manual"
  • "schedule"
  • "contact_created"
  • "contact_updated"
  • "application_created"
  • "application_updated"
  • "conversation_started"
  • "email"
  • "sendgrid_inbound"
status?string

Filter by execution status. Use all (default) for no filter.

Value in

  • "all"
  • "pending"
  • "running"
  • "completed"
  • "failed"
  • "cancelled"
  • "waiting"
days?number

Time-range filter (executions where createdAt is within the last N days). Must be a positive number. Fractional values supported (e.g. 0.0417 for the last hour).

Range0 < value
organizationId?string

Cross-org filter - SUPERADMIN only. Ignored for regular admins (response is always scoped to the caller's own organization for them).

page?integer

Page number (1-indexed). Default 1.

Range1 <= value
Default1
limit?integer

Page size. Default 20, max 100.

Range1 <= value <= 100
Default20

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/api/workflows/executions"
{  "success": true,  "data": [    {      "_id": "string",      "workflowId": "string",      "workflowName": "string",      "handledError": true,      "organizationId": "string",      "triggeredBy": "message",      "triggerData": {},      "contactId": "string",      "conversationId": "string",      "messageId": "string",      "status": "pending",      "startedAt": "2019-08-24T14:15:22Z",      "completedAt": "2019-08-24T14:15:22Z",      "duration": 0,      "error": "string",      "createdAt": "2019-08-24T14:15:22Z",      "updatedAt": "2019-08-24T14:15:22Z"    }  ],  "pagination": {    "page": 0,    "limit": 0,    "total": 0,    "totalPages": 0  }}