Skip to main content
Runchat works with three data shapes: items, lists, and objects. All parameter data is stored internally as flat arrays, which keeps data flow simple and predictable.

Items

A single value, like one piece of text or one image URL. When you type into a node’s input form, you’re setting one item per parameter. Internally Runchat stores it as an array with a single element.

Lists

More than one value in the same parameter. You can create a list by:
  • Clicking the + button on an Input node to add additional values
  • Setting an Agent node’s output format to list
  • Returning an array from a Code node
  • Receiving a list back from an API
When a parameter holds a list, the node shows pagination controls so you can step through inputs and outputs.

Objects

JSON objects describe things using key-value pairs. They’re heavily used by language models, third-party APIs (YouTube, Maps, etc.), and anywhere structured data needs to flow between nodes. Object values can themselves be lists, nested objects, or any other type.
{
  "title": "Pavilion concept",
  "materials": ["concrete", "glass"],
  "rooms": {
    "count": 4
  }
}

How data flows between nodes

When a node runs, Runchat collects the data from each input parameter (always as an array) and passes it to the node’s calculation function. If a parameter has multiple items, the node processes each one and returns a matching list of outputs. You control how lists are processed at each input using depth, set on the parameter connection. Depth determines whether items are processed individually, processed all at once, or flattened from nested arrays. See Data Matching for the full behaviour.

Next steps

  • Data Matching: how depth, “each”, and “all” control list behaviour across multiple inputs
  • Data Types: the type each value carries and how casting works
  • Loops: pass output back upstream for recursive workflows