Canvas Features

The workflow editor provides several features for debugging, testing, and organizing nodes: Data Pin, Execution Logs, Enable/Disable, and Extract to…

The workflow editor provides several features for debugging, testing, and organizing nodes: Data Pin, Execution Logs, Enable/Disable, and Extract to Sub-Workflow.

Data Pin

Data Pin lets you pin a node's output from the last run so you can test downstream nodes without re-executing the pinned node.

Where to Find It

  • Properties panel – Select a node and scroll to the Pinned Data section
  • Node badge – A pin icon appears on the node when data is pinned

Actions

ActionDescription
PinPins the node's last execution output (available after a run)
ClearRemoves pinned data
EditEdit the pinned JSON directly; click Save to apply

Test Mode Behavior

When running a workflow in test mode, nodes with pinnedData skip execution and use the pinned output instead. Use this to:

  • Test downstream logic without calling external APIs
  • Debug expressions that reference the node's output
  • Iterate on prompts or conditions with fixed sample data

Expression completion in the editor uses pinned data when available to suggest fields.

Execution Logs

The Debug panel (bottom drawer) shows real-time execution logs during workflow runs. You can also open a running production execution from either History dialog or a Board card. The editor attaches to that run's SSE stream, restores completed node results, and continues to show node animations and logs as new nodes start and finish.

What It Shows

  • Node results – Per-node status (success, error, skipped, running), execution time, and output
  • Final outputs – Aggregated outputs from Output nodes
  • Agent progress – For Agent nodes, step-by-step tool calls and reasoning

Actions

  • Copy as JSON – Copy the full execution log to clipboard
  • Open in JSON editor – Opens the log in JSON Hero or JSON Editor Online for inspection
  • Download generated files – If a skill produced downloadable files (_generated_files), a Download button appears. Single file downloads directly; multiple files open a selection popup.

Distinction from Logs Tab

The Debug panel shows workflow execution logs (node results, outputs). The Logs Tab shows Docker container logs (backend, frontend, database).

Enable / Disable

You can disable nodes so they are skipped during execution. Disabled nodes show an "off" badge and appear dimmed.

How to Toggle

MethodDescription
Properties panelSelect node → Power icon (top right)
Context menuRight-click node(s) → Disable or Enable
KeyboardSelect node(s) → press D (see Keyboard Shortcuts)

Multi-Select

When multiple nodes are selected, Enable/Disable applies to all of them. The context menu shows "Enable" if any selected node is disabled, "Disable" if all are enabled.

Runtime Behavior

Nodes with active: false are skipped. Downstream nodes receive no data from skipped nodes. Use this to temporarily exclude nodes without deleting them.

Agent memory graph

Agent nodes with persistent memory enabled show a pink brain control on the node. Click it to open the memory graph editor: entities render as an animated, force-directed graph clustered by entity type, with searchable Source/Target pickers for adding relationships and a connections panel for jumping between linked entities. The same dialog includes Share memory with other agents (workflow → agent → read or read/write) for cross-agent memory sharing. While the dialog is open, main canvas undo/redo is deferred so graph editing keeps its own history.

Filtering the graph. The top-left of the canvas has a search control, collapsed to a shortcut button until you click it or press Ctrl/Cmd+F. It matches an entity's name, its type, and every attribute key and value, as well as a relationship's type (parent_of) and its properties; a matched relationship brings both of its entities with it. All whitespace-separated terms must match. A matched entity brings its whole neighbourhood with it — every relationship it takes part in and the entity on the far side of each — so a match is never left as an unconnected dot. A matched relationship brings only the two entities it joins and stops there, since searching a relation type is a question about that relation rather than about everything its ends are attached to. Everything else is hidden outright — not faded — on the canvas and in the All edges list, and a badge shows how many of the total entities are left. The inside the box clears the query first, then closes the box on a second press. Escape unwinds the same way, innermost first: it clears the query, then closes the search box, then leaves the expanded canvas view, and only closes the dialog once none of those are open. Clearing restores the full graph with every entity back where it was.

Placing entities by hand. Dragging an entity pins it where you drop it, so the auto-layout settles the rest of the graph around it instead of pulling it back. Dragging the entity you have selected moves its directly connected entities along with it, keeping the cluster's shape; dragging any other entity moves just that one. Tidy layout (the wand button) releases every pinned entity and re-runs the auto-layout.

Extract to Sub-Workflow

Convert selected nodes into a reusable sub-workflow and replace them with an Execute node.

How to Use

  1. Select one or more nodes on the canvas
  2. Right-click → Extract to Sub-Workflow
  3. Enter a name (and optional description) for the new workflow
  4. Click Extract

What Happens

  • A new workflow is created with the selected nodes
  • External inputs (edges from outside the selection) become the sub-workflow's Input fields
  • External outputs (edges to nodes outside the selection) are mapped to the sub-workflow's Output
  • The selected nodes are replaced with a single Execute node that calls the new workflow
  • Input/output mappings are preserved automatically

Use Cases

  • Reuse a sequence of nodes across multiple workflows
  • Simplify a complex workflow by grouping related logic
  • Create modular, testable sub-workflows

Run with cURL

The cURL button in the editor toolbar (top-right) opens a dialog to build and copy a cURL command for triggering the workflow via API.

  • Choose the workflow's request body mode (Defined or Generic)
  • Set the authentication type (Anonymous, JWT, or Header Auth)
  • Configure response caching and rate limiting
  • Toggle SSE streaming and customize per-node start messages
  • Edit the request body
  • In Generic mode, the canvas run panel uses the same raw JSON body as the cURL dialog
  • Click Copy cURL to copy the ready-to-run command

See Webhooks for full dialog details and SSE Streaming for the event protocol.