Skip to content

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 JsonTemplate is 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.rawBody or #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 output ends 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

  • JsonTemplate is required.
  • An empty template, a JS error, or invalid generated JSON ends the execution with an error.
  • JSON output is a terminal node and has no outgoing connection.
  • Include only the data that should actually be returned outside the scenario in the final JSON.