Compass Docs
Workflows

Wiring & data binding

Connect nodes with edges, then bind upstream values to each node's inputs.

Building a workflow is two related acts: wiring nodes together so data can flow between them, and binding specific upstream values to a node's inputs. Wiring says "these steps are connected"; binding says "this value goes here."

Edges

You connect nodes by dragging an edge from one node's output handle to another node's input handle. The edge represents data flowing from the producer to the consumer.

Every node has a single input handle. Multiple upstream nodes can connect into that one handle — you don't wire to individual fields. Which upstream value actually feeds each of the node's settings is decided afterward, when you bind (below). This keeps the canvas readable no matter how many inputs a step draws on.

Connections are typed: a node's output carries a type, and Compass only lets you connect it where that type fits, catching mismatches as you build.

Data binding

Wiring makes a value available to a node; binding chooses where it's used. You bind in the side panel (the mapper), which lists the values coming from the nodes you've wired in and lets you assign them to the node's inputs. A binding can be:

  • A reference to an upstream value, written {{node.field}} (for example {{input.topic}} or {{search.results}}).
  • A template — text with one or more references embedded in it.
  • A literal — a fixed value you type in directly.

You can reference a whole upstream output or drill into a specific field of it.

Bindings created for you

For common cases, connecting an edge sets up the obvious binding automatically:

  • Wiring into an Agent node binds its input to the upstream step's output.
  • Wiring into the Output node adds a result field named after the source.

Other nodes — integrations especially — record the connection and leave the precise mapping to you, so you open the mapper and assign each parameter.

Data edges and tool edges

Most edges are data edges: a value flows from one step into the next. Some edges are tool edges instead. When an Agent node is involved, it has a separate tools handle, and nodes placed in tool mode connect there to become tools the agent can call — rather than feeding it data. Tool edges and data edges stay distinct; you can't cross one for the other. See Composing workflows.

When something isn't bound

If you wire a node in but haven't told it what to do with the value, the editor flags an unassigned input in the Issues panel. Open the node and finish the binding to clear it. Deleting an edge also removes any bindings that referenced it, so you won't be left pointing at a value that's no longer there.

Next

On this page