Перейти до змісту

Утиліти

Ноди секції Утиліти використовуються для обробки JSON-даних і формування структурованого результату сценарію. JSON processor перетворює JSON або текст на змінні, а JSON output завершує сценарій і повертає JSON-результат.

1. JSON processor (Обробник JSON)

JSON processor (JsonProcessor) обробляє JSON або текстовий шаблон і створює змінні, які можна використовувати в наступних нодах.

Використовуйте JSON processor, коли потрібно:

  • сформувати JSON із поточних змінних сценарію;
  • витягнути top-level поля JSON у окремі змінні;
  • підготувати дані для наступної Condition, HTTP Request або іншої ноди;
  • обробити текстове значення як окремий output.

Налаштування

Поле Значення
JsonTemplate Текст або JSON із підтримкою #var і {{ JS }}
NextAction Єдиний вихід

Connections

  • Вхід: один стандартний connector.
  • Вихід: один NextAction.
  • Якщо JsonTemplate порожній, нода використовує перше значення з inputs попередньої ноди.

Змінні і шаблони

У JsonTemplate можна використовувати #var та {{ JS }}.

Наприклад:

{
  "user_id": {{ JSON.stringify(#member.external_id) }},
  "score": {{ #node.4.points + 10 }}
}

Для string-значень краще використовувати JSON.stringify(...), щоб результат залишався валідним JSON.

Вихідні змінні

Top-level primitive fields JSON створюються як node-scoped variables.

Наприклад, для ноди з ID 7:

{
  "user_id": "123",
  "score": 15
}

створить:

#node.7.user_id
#node.7.score

Якщо результат є звичайним текстом, а не JSON object, він доступний як:

#node.{id}.json.source

Приклад

HTTP Request
  -> JSON processor
  -> Condition "#node.7.score >= 20"

Важливі особливості

  • Root array [...] не розкладається на окремі змінні й обробляється як plain text.
  • Arrays усередині JSON object не створюють окремих outputs.
  • Найнадійніше використовувати top-level primitive fields.
  • Для складного JSON краще читати потрібні значення через parseJson(...) із raw JSON-джерела, наприклад #node.{httpNodeId}.http.rawBody або #webhook.body.
  • Якщо template має бути JSON object, він повинен містити валідний JSON.

2. JSON output (Результат JSON)

JSON output (JsonOutput) — термінальна нода, яка формує фінальний JSON-результат сценарію. Основний сценарій використання — синхронний AI tool.

Налаштування

Поле Значення
Title Назва ноди на canvas
JsonTemplate Обов'язковий JSON-шаблон із підтримкою #var і {{ JS }}

Connections

  • Вхід: один стандартний connector.
  • Виходи: відсутні.
  • JSON output завершує поточний execution, тому після неї не можна підключити наступну ноду.

Змінні і шаблони

JsonTemplate підтримує #var і {{ JS }}.

Наприклад:

{
  "service": {{ JSON.stringify(#node.2.arguments.service_name) }},
  "price": {{ #node.8.price }},
  "source": "external-api"
}

Template може сформувати будь-який валідний JSON value: object, array, number, boolean, string або null.

Для string-значень використовуйте:

{{ JSON.stringify(#var) }}

замість простого:

"#var"

щоб коректно екранувати лапки та інші спеціальні символи.

Результат

Після виконання ноди сформований JSON стає фінальним результатом execution.

У внутрішньому context він також доступний як:

#node.{id}.json.raw

Приклад

Типовий AI tool flow:

Agent trigger
  -> HTTP Request
  -> Condition
       | success -> JSON output
       | failure -> JSON output

Кожна гілка синхронного AI tool має зрештою завершитися JSON output.

Важливі особливості

  • JsonTemplate є обов'язковим.
  • Порожній template, помилка в JS або сформований невалідний JSON завершують execution помилкою.
  • JSON output є terminal node і не має outgoing connection.
  • У фінальний JSON варто додавати лише ті дані, які справді мають бути повернуті назовні.