Utils
Nodes in the Utils section are used to process JSON data and build a structured scenario result. JSON processor converts JSON or text into variables, while JSON output finishes the scenario and returns a JSON result.
1. JSON processor
JSON processor (JsonProcessor) processes a JSON or text template and creates variables that can be used by subsequent nodes.
Use JSON processor when you need to:
- build JSON from current scenario variables;
- extract top-level JSON fields into separate variables;
- prepare data for a following
Condition,HTTP Request, or another node; - process a text value as a separate output.
Settings
| Field | Meaning |
|---|---|
JsonTemplate |
Text or JSON with support for #var and {{ JS }} |
NextAction |
The single output |
Connections
- Input: one standard connector.
- Output: one
NextAction. - If
JsonTemplateis empty, the node uses the first value from the previous node inputs.
Variables and templates
JsonTemplate supports #var and {{ JS }}.
For example:
{
"user_id": {{ JSON.stringify(#member.external_id) }},
"score": {{ #node.4.points + 10 }}
}
For string values, it is better to use JSON.stringify(...) so the result remains valid JSON.
Output variables
Top-level primitive JSON fields are created as node-scoped variables.
For example, for node ID 7:
{
"user_id": "123",
"score": 15
}
creates:
#node.7.user_id
#node.7.score
If the result is plain text rather than a JSON object, it is available as:
#node.{id}.json.source
Example
HTTP Request
-> JSON processor
-> Condition "#node.7.score >= 20"
Important details
- A root array
[...]is not expanded into separate variables and is processed as plain text. - Arrays inside a JSON object do not create separate outputs.
- Top-level primitive fields are the most reliable values to use as outputs.
- For complex JSON, it is better to read the required values with
parseJson(...)from a raw JSON source such as#node.{httpNodeId}.http.rawBodyor#webhook.body. - If the template is intended to be a JSON object, it must contain valid JSON.
2. JSON output
JSON output (JsonOutput) is a terminal node that produces the final JSON result of a scenario. Its primary use case is a synchronous AI tool.
Settings
| Field | Meaning |
|---|---|
Title |
Node title on the canvas |
JsonTemplate |
Required JSON template with support for #var and {{ JS }} |
Connections
- Input: one standard connector.
- Outputs: none.
JSON outputends the current execution, so no following node can be connected after it.
Variables and templates
JsonTemplate supports #var and {{ JS }}.
For example:
{
"service": {{ JSON.stringify(#node.2.arguments.service_name) }},
"price": {{ #node.8.price }},
"source": "external-api"
}
The template can produce any valid JSON value: object, array, number, boolean, string, or null.
For string values, use:
{{ JSON.stringify(#var) }}
instead of plain:
"#var"
to correctly escape quotes and other special characters.
Result
After the node runs, the generated JSON becomes the final execution result.
Inside the execution context, it is also available as:
#node.{id}.json.raw
Example
A typical AI tool flow:
Agent trigger
-> HTTP Request
-> Condition
| success -> JSON output
| failure -> JSON output
Every branch of a synchronous AI tool should eventually end with JSON output.
Important details
JsonTemplateis required.- An empty template, a JS error, or invalid generated JSON ends the execution with an error.
JSON outputis a terminal node and has no outgoing connection.- Include only the data that should actually be returned outside the scenario in the final JSON.