Docs

Run history

Workspace-wide execution log for every automation. One row per run, expandable to step-by-step trace.

What a run is

A run is one end-to-end execution of an automation against a single contact (or a single inbound event). When an automation activates — by manual trigger, webhook, date schedule, or upstream workflow — the orchestrator opens a WorkflowRun row, walks the graph, and updates that row as each node completes.

Run history is the source of truth for the question “did this automation actually run for this contact, and what did it do?” — at /runs in the workspace nav, under Operate.

Runs vs deliveries

Runs and deliveries are sibling surfaces, not the same thing. They sit next to each other under Operate because operators reach for them at different moments.

SurfaceGrainReach for it when…
Run history (/runs)One row per automation execution.You want to know whether an automation actually ran, which branch it took, and where it stopped.
Delivery ops (/delivery-ops)One row per outbound message attempt.You want to know whether the recipient actually received a specific message.

A single run can produce zero, one, or many delivery attempts depending on how the graph branches. Conversely, a manually-resent message creates a delivery attempt with no parent run. Both views link to each other where the relation exists.

Run lifecycle

StatusMeaning
PENDINGTrigger fired, run queued for the orchestrator.
RUNNINGWalking nodes; some steps still in flight.
COMPLETEDReached an END node cleanly.
FAILEDHalted by a STOP_ERROR node, a node threw, or validation failed mid-flight.
CANCELEDOperator cancelled the run, or the parent automation was deactivated.

Filtering & search

  • Status chips at the top of the table — All / Running / Completed / Failed / Canceled.
  • Workflow filter — scope to one automation, or leave blank for workspace-wide.
  • Contact filter — paste a contact email/phone to see only their runs.
  • Date range — last 24 h / 7 d / 30 d, or custom.

Drilling into a run

Clicking a row opens the run detail. You'll see:

  • The full step trace — every node visited, the order, and the duration of each step.
  • For SEND_MESSAGE steps, a link to the resulting DeliveryAttempt row (so you can jump to delivery status and the provider response).
  • For INTEGRATION steps, the request/response payload (redacted secrets) and any captured fields written into the per-step output bag.
  • The error field on FAILED runs — populated from a STOP_ERROR message or the raw exception.