Concept

How blocks pass data

Most blocks need a value that an earlier block produced. A block gets it by referencing that block's output by name. This page covers three things: what an output is and where it lives, how a block references one, and the types of values you'll find inside.

In this workflow, Classify reads the message from Start, and Reply reads the classification from Classify.

What an output is

When a block runs, Sim keeps its result under the block's name for the rest of the run. That stored result is the block's output, and any later block can read it.

An output is usually a set of named values, not a single thing. You read one by its key: <classify.content> is the content value of the block named classify.

Logs
Start9ms
classify2.1s
OutputInput
contentstring
"Billing · high urgency"
modelstring
tokensobject
inputnumber
412
outputnumber
38
totalnumber
450

Different blocks produce different values. An Agent keeps its content; an API keeps the data it received; a Table block keeps a rowCount and the rows it read, reached with <table1.rowCount>.

A block's output is not the same as the workflow's output. Every block has its own, kept under its own name. The workflow's output is simply one of them: whatever the last block produced.

How a block references an output

A block's inputs are its parameters: the fields you fill in, like an Agent's model and prompt. In any parameter you can insert a connection tag to pull in an earlier output instead of typing a fixed value. The <start.input> in Classify's prompt means "use whatever Start received here."

A block can reference any output that already exists by the time it runs, meaning any block before it on its path (see how workflows run). You rarely type a tag by hand: wherever a parameter accepts one, the builder lists the available outputs and you pick the value you want.

Data types

Each value inside an output has a type, shown next to it in the output panel. The type tells you what you can do with the value: index into an array, read a field from an object, compare a number.

TypeWhat it isExample
stringText"Billing issue"
numberA numeric value248
booleantrue or falsetrue
objectA set of named fields{ category: "billing", urgency: "high" }
arrayAn ordered list of values["billing", "urgent"]
nullNo valuenull

A file shows up as an object carrying the file's details, like its name and URL. When a value isn't the type the next step needs, reshape it in a Function block, which runs a short snippet of code and stores the result as its own output.

Next

On this page