Workflow Analytics
Monitor runs, measure performance, and track token cost for your workflows.
Analytics are available at two scopes:
| Scope | Who can access | Where |
|---|---|---|
| Per-workflow | agent_developer role or higher within the workflow's space | API + Editor Runs tab |
| Platform-wide | Admin only | Admin > Analytics > Agents |
Per-workflow analytics
Every workflow developer has access to run history and aggregate metrics for their own workflows — no admin access required.
Run history
GET /api/v1/agent-analytics/workflows/{workflow_id}/runs
Authorization: Bearer <token>Query parameters:
| Parameter | Type | Description |
|---|---|---|
status | string | Filter by run status: running, completed, failed, waiting_decision |
limit | int | Page size (1–200, default: 25) |
offset | int | Pagination offset (default: 0) |
start_ts | int | Unix timestamp — only runs created after this time |
end_ts | int | Unix timestamp — only runs created before this time |
Response:
{
"items": [
{
"id": "run_abc123",
"workflow_id": "wf_xyz",
"space_id": "space_def",
"catalog_id": "cat_ghi",
"status": "completed",
"triggered_by": "user_id_or_webhook_token",
"started_at": 1700001000,
"ended_at": 1700001003,
"duration_ms": 3186,
"error_message": null,
"prompt_tokens": 512,
"completion_tokens": 128,
"total_tokens": 640,
"cost_usd": 0.0012,
"provider": "anthropic",
"model_id": "claude-sonnet-4-6"
}
],
"total": 42
}Aggregate summary
GET /api/v1/agent-analytics/workflows/{workflow_id}/summary
Authorization: Bearer <token>Query parameters: start_ts, end_ts (same as run history).
Response:
{
"total_runs": 42,
"completed_runs": 38,
"failed_runs": 3,
"paused_runs": 1,
"success_rate": 0.9048,
"avg_duration_ms": 3186.0,
"p95_duration_ms": 7842.0,
"total_prompt_tokens": 21504,
"total_completion_tokens": 5376,
"total_cost_usd": 0.0504
}success_rate is completed_runs / total_runs (0–1).
Run states
| Status | Meaning |
|---|---|
running | Actively executing nodes |
waiting_decision | Paused at a user_approval node; awaiting inbox decision |
ready_to_resume | Decision made; waiting for the next execution slot |
completed | All paths reached an end node successfully |
failed | An error occurred; run terminated |
cancelled | Manually cancelled via the API |
Editor: Runs tab
Inside the Agent Builder editor, click the Runs tab in the right panel to see the most recent runs for the current workflow without leaving the editor. Each row shows status, elapsed time, and total token cost.
Evaluate panel
The editor's Evaluate panel (test cases) shows per-run metrics after each evaluation:
- Latency — end-to-end duration in milliseconds
- Tokens — total tokens consumed (prompt + completion)
- Cost — estimated USD cost based on the model's pricing
Use the Evaluate panel to compare different versions of a workflow before publishing.
Admin-level analytics
Platform admins can see analytics across all workflows, catalogs, and node types at Admin > Analytics > Agents.
Platform summary
GET /api/v1/agent-analytics/summary
Authorization: Bearer <admin-token>
?catalog_id=...
&space_id=...
&workflow_id=...
&start_ts=...
&end_ts=...All runs (paginated)
GET /api/v1/agent-analytics/runs
Authorization: Bearer <admin-token>
?status=failed
&limit=50The admin runs table displays workflow names alongside run IDs — no need to look up workflow IDs separately.
Node-type performance
GET /api/v1/agent-analytics/node-stats
Authorization: Bearer <admin-token>
?catalog_id=...
&workflow_id=...Response:
[
{
"node_type": "agent",
"count": 1240,
"avg_latency_ms": 1823.5,
"p50_latency_ms": 1600.0,
"p95_latency_ms": 4200.0,
"error_count": 12
},
{
"node_type": "classify",
"count": 620,
"avg_latency_ms": 412.1,
"p50_latency_ms": 380.0,
"p95_latency_ms": 920.0,
"error_count": 2
}
]Results are sorted by avg_latency_ms descending — the slowest node types appear first.
Run timeline (per run)
GET /api/v1/agent-analytics/runs/{run_id}/timeline
Authorization: Bearer <admin-token>Returns the ordered list of SSE events stored for a specific run — useful for replaying what happened during a failed run or debugging unexpected output.
Related
- Run Infrastructure — SSE event types, pause/resume, rate limiting
- Triggers —
run_idreturned immediately when a webhook fires a workflow - Workflow Lifecycle — publishing gates that affect which runs appear in analytics