Monitor
Watch every deployed workflow and automation in an environment — health at a glance, triggers and recent runs per item, and the run console one click away.
The Monitor is the operational view for an environment. It lists every deployed workflow and every automation, shows how many runs succeeded or failed over the selected time window, and lets you open a trigger URL or a failed run in a single click.
What the page shows
Health line
A row of four cells sits above the table and timeline. The numbers always reflect the selected time range.
- Runs — total run count across all items in the window.
- Success — percentage of runs that completed without error.
- Failed — number of failed runs, shown in red. Clicking this cell filters the list to items that had at least one failure in the window.
- Attention — count of blocked plus paused items. Clicking filters the list to items needing action.
The active filter cell shows a gold underline. Clicking it again clears the filter.
Only workflow runs are counted — here, and in an expanded row's Recent runs list and its All runs count. A webhook call that was refused — failed authentication, an address not on the allowlist, the rate limit — never started a run, so it is not a failed run: it appears under the trigger's Deliveries instead (see Webhook → Who called your webhook). An accepted call and the run it started count once, as that run.
Table columns
| Column | What it shows |
|---|---|
| Name | A mark, the item name, and — for blocked or paused items — a small tag. The mark is a coloured square for workflows (the canvas colour) or a bolt for automations; a small dot on its corner shows state: green for live, blue pulsing for running, amber diamond for blocked, grey for paused. Paused rows are dimmed. |
| Triggers | One badge per trigger kind (webhook, schedule, api, chat, form, manual, voice). Schedule badges show a short cadence when the cron is a recognisable pattern (15 min, Hourly, Daily 06:00, Nightly, Weekly), otherwise Schedule. |
| Runs | A blue sparkline and total count for the selected range. |
| Failed | A red sparkline and count. When there are no failures the count shows in muted ink and no sparkline is drawn. |
| Last run | A status word (for example "Success", "Error", "Running"), a relative time, and on the second line: the truncated execution ID, duration, and the name of the failing block if the run errored. Clicking this cell opens the run sheet. |
Item states
Items have one of four states reflected in the Name mark.
live— the item is deployed in a writable environment (workflow) or enabled (automation) and is ready to run.running— at least one execution is currently in flight.blocked— the item has no deployment in this environment. This happens when the environment is read-only and no deployment exists yet. Triggers on a blocked workflow return 403. ABLOCKEDtag appears next to the name, and a Deploy button appears inline in the Last run cell.paused— the item is disabled. APAUSEDtag appears next to the name.
Timeline view
The Monitor opens on the timeline. Each item is one row of duration bars on a shared baseline; expanding a row reveals one sub-row per configured trigger — three webhooks named Signoz, Generic and Claude Status get three lanes, whether or not each has fired in the window — so you can see which trigger produced which runs. Click a sub-row's name to jump to that trigger's entry (URL, authentication mode and credential copy actions) in the list below the lanes. Blocked items show a hatched lane with the block reason. The toolbar's TIMELINE | TABLE control switches to the table, and the same health line and time-range controls apply to both.
Filtering
The type control (ALL | WORKFLOWS | AUTOMATIONS) and the time-range picker (1H 6H 12H 1D 3D 7D) sit in the toolbar for both views. Every filter is stored in the URL so the exact view is shareable.
| URL parameter | Values | Default |
|---|---|---|
type | all · workflows · automations | all |
view | table · timeline | timeline |
range | 1 · 6 · 12 · 24 · 72 · 168 (hours) | 24 |
filter | failing · attention | (none) |
Triggering a workflow from the Monitor
Click the expand caret on any row to open its detail panel. The left side shows Triggers — one entry per configured trigger.
For webhook and API triggers each entry shows:
- The trigger name and HTTP method badge (for example,
POST). - The invocation URL in monospace.
- A Copy URL button and a Copy example request button that puts a ready-to-run
curlcommand on your clipboard. - The authentication mode on a second line (for example,
HMAC SHA-256).
For schedule triggers each entry shows the cron expression.
The provenance line next to the TRIGGERS header shows when the item was last deployed (as a relative age — for example, deployed 3 days ago) and, for pack-materialised workflows, the package ID and version.
Surfacing "next run" or "last hit" in this panel would require extending the triggers endpoint. The data exists in the database (workflowSchedule.nextRunAt, lastRanAt) but is not included in the current response shape. This is a deliberate gap, not an oversight.
The run sheet
Opening a run — from the Last run cell, a trigger's Deliveries, or the timeline — shows one bar across the top: status, workflow name, trigger, start time, duration, and, when the run has a deployed version, a version badge. Next to it sits a truncated execution id — click it to copy the full id — and, when a rerun is available, a Rerun button.
- Hover or focus the status chip for the run's details: when it started and ended, how long it ran, how many blocks it ran, and, if it failed, which block(s) failed and the error code.
- Select a block on the canvas, or a line in the console stream — to fill the pane below with its own details; the pane's caption names it. Press Esc to return to the run; on the canvas, clicking the selected block again also deselects it.
- Hover or focus any block, on the canvas or in the console stream, for a small card with its status, name, start time, duration, its position among the run's blocks, its type, and the error code if it failed.
A call that was refused before any run started carries the same bar in place of a run — no duration, no run id, no Rerun button. Hovering the status chip shows the HTTP status Scrydon answered with and that no run started; see Webhook → Who called your webhook for what's recorded about the call itself.
Reading a failure
- Find the row in the table. The Last run cell shows the status and a relative time.
- Click the cell to open the run sheet. The failed block is pre-selected so the error section is visible immediately. The console opens folded to a single bar at the bottom — every time, wherever you open the run from; click the caret at its right to unfold the full log stream.
- If consecutive failures are visible in the detail panel, a red count appears next to the
RECENT RUNSheader.
Only a failure is shown in red. A block that was skipped, or that finished with a warning, did not fail: its pane shows that in a neutral Reason section (skipped) or an amber Warning section, never in the red Error section.
Blocked items
A blocked item has no deployment in the current environment. This is the normal state for workflows in a read-only production environment where no deployment has been pushed yet.
- The row shows a
BLOCKEDtag and a Deploy button in the Last run cell. - Triggers on a blocked workflow return 403 to callers.
- Clicking Deploy creates a deployment from the latest promoted version.
Read-only environments are configured under Settings → Environments. See the Policy Issues page if your environments disagree with your organisation's declared policy.
Auto-refresh
The refresh control in the top-right corner is a split button.
- Left half (↻ REFRESH) — triggers an immediate refresh of all data on the page.
- Right half (interval picker) — sets the automatic refresh interval. Options are every 5 seconds, 15 seconds, 30 seconds, 1 minute, or Off. The current selection is shown in the button. A pulsing green dot indicates that auto-refresh is active; a grey dot means it is Off.
Auto-refresh pauses automatically while a run sheet is open.