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 for everything.

Real-time Console

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

Logs page

Every run from every trigger — manual, API, chat, schedule, webhook — lands on the Logs page, with filtering by time range, status, trigger type, folder, and workflow, full-text search, and a Live mode that streams new entries in as they're recorded.

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 Sim 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.