Skip to main content
Expressions let parameters pull values from inputs and upstream node outputs using a concise, Python‑like syntax. They are written inside { ... } braces and evaluated when a node runs. Every expression must resolve to a value matching the parameter’s type.

Basics

Referencing an Input

{input}
In this case, input refers to the input port named input on the current node.

Referencing an Upstream Node’s Output

{@NodeA.output}
Here, NodeA is the ID of an upstream node, and output is the name of its output port.

Referencing Sub-fields

{input.fieldA}
{@NodeB.output.field1}
You can access sub-fields of structured data by chaining field names with dots. Ensure the referenced field exists to avoid runtime errors.
An expression that resolves to multiple items results in an error. Read more about this in the Execution flow guide.

Single expression vs Multiple expressions

Suppose a node receives the following object at its input port:
{
  "name": "Alice",
  "age": 30
}
A single expression like {input.name} extracts just the name field, resulting in the string "Alice". Similarly, {input.age} would yield the number 30. On the other hand, if you use multiple expressions in a parameter like so:
"{input.name} is {input.age} years old."
This combines both fields into a single string: "Alice is 30 years old.".
Multiple expressions are always evaluated to strings with each expression replaced by its string representation.

Escaping braces

To include literal in text, escape with a backslash:
"Use \\{braces\\} literally"

Missing node ouputs

Any expression referencing an upstream node that hasn’t run yet will evaluate to None. Ensure that nodes are executed in the correct order to avoid unexpected None values.