# Variables and data flow

Nodes receive data through input fields and pass results through output fields. After connecting nodes, configure input bindings so that each step receives the right data.

## Choose a data source

| Source | When to use it | Reference example |
| --- | --- | --- |
| Run variables `vars` | Parameters supplied for this run, such as a source file or target table | `{{ .vars.source_ref }}` |
| Previous output `data` | Results returned by the preceding node | `{{ .data.documents }}` |
| Saved results `state` | Results reused by several later steps | `{{ .state.parsed_documents }}` |

When editing the workflow configuration, use `save` to store outputs in state for later nodes. Run variables configure the current run; node outputs change as processing advances.

## Example: connect parsing to chunking

1. Select the source in Read MOI Volume.
2. Bind its `sources` output to General Document Parsing's source input.
3. Bind the parser's `documents` output to Segment's document input.
4. Pass the chunks to the knowledge base writing node.

File references and parsed content are different data: `file_ids` identify files, `documents` contains parsed records, and `text` or `plain_text` provides a node's text output. Parsing uses file references; chunking and cleaning use parsed documents or text.

## Check bindings

If a node reports a missing field, inspect the upstream output for the field name, type, and empty values. Pass `documents` with source metadata when later steps need to trace results to their source files.

- [Choose nodes](nodes/index.md)
- [Run and debug](run-debug.md)
