Перейти к содержанию

Data Flow и переменные

Как данные передаются между узлами

Каждый узел процесса может принимать данные от предшественников и порождать новые. Данные накапливаются по мере выполнения.

Start Event      → {driver_id: 123, amount: 500}
Проверка водителя → {driver_id: 123, amount: 500, is_active: true, status_code: 200}
Проверка баланса  → {...всё выше..., sufficient: true, balance: 15000}
Выплата           → {...всё выше..., transaction_id: "TXN-..."}

Реестр данных

Schemix автоматически отслеживает какие данные доступны на каждом этапе. Это видно в двух местах:

Summary панель (правая)

Одиночный клик на узел → правая панель показывает:

  • Входные данные — переменные от предшественников, сгруппированные по узлу-источнику
  • Выходные данные — что этот узел добавляет (системные + пользовательские)

Sheet настройки

Двойной клик → вверху Sheet collapsible блок «Доступные переменные» со списком всех доступных переменных и их источников.

Откуда берутся данные

Источник Как создаются
Start Event (Telegram/WhatsApp) Автоматически: message_text, external_username, external_user_id, channel
Start Event (API/Webhook) Через редактор выходных данных или импорт из JSON
AI Task Через редактор «Выходные данные» — поля, которые LLM вернёт
AI Chat Автоматически: exit_type (escalate/resolved/timeout/max_rounds)
User Task Автоматически из полей формы
Service Task Системные: status_code, success. Пользовательские: из JSON body ответа

Подстановка переменных

В промптах, шаблонах и URL используется синтаксис Jinja2:

{{ variables.driver_id }}
{{ variables.message_text }}

В визуальном редакторе — кнопка { } Переменная с dropdown для выбора из доступных.

Системные outputs Service Task

Каждый HTTP-вызов автоматически возвращает:

  • status_code (число) — HTTP-код ответа (200, 404, 500...)
  • success (boolean) — true если 2xx, false иначе

Полезно для условий в Gateway: success == true → продолжить, success == false → обработать ошибку.