Skip to main content

Assignment Node

The Assignment Node sets values into the dictionary without writing a Script Node. It's the cheapest, most readable way to seed or update flow state.

What it serves

Each row in the node's settings is a key = value write into the per-flow dictionary. Use it when the only thing you need is to put data into the dictionary so downstream nodes can read it.

When to use it

  • Initialize dictionary keys at the start of a flow.
  • Copy values around (e.g. flatten a nested agent response into a top-level dictionary key for a Condition Node to test).
  • Set defaults before a Script Node or Agent Node runs.

If you'd otherwise write a one-line Script Node like dictionary.x = y, use an Assignment Node instead.

Connections

  • One input, one output.

Settings

A repeater of key / value pairs. Each pair sets dictionary.<key> = <value>.

Values support template expansion the same way Script Node props do:

${dictionary.test} ← reads dictionary.test
${dictionary.user.email} ← reads nested
"hello" ← literal string
${Array([1, 2, true, null])} ← the Array() operator — produces a real array

Each value is type-gated to string / number / boolean / array (via evaluateValue). An object or other disallowed type resolves to null silently — if you need an object, build it in a Script Node. (${Array([...])} accepts only literal elements.)

The dictionary is size-capped at 1.5 MB (DICT_MAX_BYTES). An over-cap write is rejected at commit time, throwing and failing the node — so keep large blobs out of the dictionary.

Compiled JSON shape

{
"assignmentNode_Jh0KW15H45bk-Wo4WFxgGAeyjKj9Y6dW": {
"next_1": ["scriptNode_..."],
"data": {
"settings": {
"keyValuePairs": [
{ "key": "test", "value": "555" },
{ "key": "check", "value": "${dictionary.test}" }
]
}
}
}
}