# Variables

Flow variables are memory containers that hold temporary data during the execution of a flow. They can represent various types of information, such as numbers, strings, dates, or complex data structures, arrays or maps.

Variables play fundamental role in orchestrating and controlling the behavior of flows, enabling exchange of information between their internal nodes, as well as preparing parameters for and receiving results of external calls to connectors and subflows.

***

### Purpose

Flow variables serve multiple purposes within a flow, including:

* Storing intermediate results or temporary data.
* Passing information between different nodes or steps in the flow.
* Controlling flow execution based on conditional checks or business rules.
* Providing input parameters for flow's nodes.

***

### Scope

Flow variables can have different scopes depending on where they are defined and how they are used within the flow.

[**Flow Local Variables**](variables/local-flow-variables) are available for use by all nodes within the flow.

[**Node Variables**](variables/node-variables) are available for use by all nodes located after the node that produced them.

***

### Lifecycle

* **Initialization:** Variables are initialized with an initial value before they are used.
* **Modification:** Variables may be modified or updated as the flow progresses.
* **Reference:** Variables are referenced by nodes or steps to read or write values.
* **Cleanup:** Variables may be cleared or reset at the end of the flow.

***

### Data Types

Flow variables can hold values of various [data types](../structures), including primitive types (e.g. Integers, Strings, Booleans) and complex types (e.g. Arrays, Maps, custom data structures).

***
