Logging

Every workflow run is logged. There are two places to read them: the Console for the run you're watching, and the Logs page (Run history, at the top of the Workflows pane) for everything.

Real-time Console

During manual or chat runs, the Logs panel at the bottom of the editor shows each block as it runs — active-block highlighting, outputs as they complete, per-block timing, and success/error status.

Run history

Every run from every trigger — manual, API, chat, schedule, webhook — lands in Run history, linked at the top of the Workflows pane. Filter by time range (from the past 30 minutes to the past 30 days, or a custom range), status, workflow, folder, and trigger; search the logs; and sort by date, duration, cost, or status. The list refreshes on its own as new runs are recorded. Export downloads the current list, and the Dashboard toggle switches to a chart view of the same runs.

Log details

Click any entry to open its sidebar: the run's timeline (start/end, total duration, per-block timing) and each block's data flow.

The block's result — JSON-formatted structured data, markdown rendering for AI content, and a copy button.

What the block received — resolved variable values, referenced outputs, and environment variables. Exact secret values activated by a successful {{KEY}} substitution are masked in this trace view. See Execution log protection.

Workflow snapshots

View Snapshot opens a frozen copy of the workflow exactly as it was at run time — structure, block states, connections — and each block is clickable to its inputs and outputs. This is how you debug a run of a workflow you've since changed.

Snapshots exist for runs after the enhanced logging system was introduced. Older migrated logs show "Logged State Not Found".

Retention

  • Free: 7 days — logs are archived to cloud storage, then deleted.
  • Pro / Team / Enterprise: retained indefinitely.

Next

Common Questions

Each log entry includes the run ID, workflow ID, trigger type, start and end timestamps, total duration in milliseconds, cost breakdown (total cost, token counts, and per-model breakdowns), run data with trace spans, final output, and any associated files. The log details sidebar lets you inspect block-level inputs and outputs.
When a value saved under Secrets is successfully substituted through {{KEY}}, exact, case-sensitive occurrences are masked throughout the log-facing copy, including the live block-log display, Logs Overview input and output, Trace, log-read APIs, and the Logs block's Get Run Details output. Direct reads such as environmentVariables['KEY'] or shell $KEY also activate masking when Agent Serve can recognize the read in the code beforehand; a name built at runtime, a reassigned binding, or a hardcoded literal is not recognized. This is not a general redactor: encoded, hashed, or transformed values are not matched. Functional execution responses, streams, and callbacks remain unchanged. See Execution log protection under Secrets for details.