Переменные: откуда берутся и куда попадают
- Приходят снаружи — из кампании обзвона (колонки файла контактов), из вызова публичного API или из SIP-заголовков входящего звонка. Именно так агент знает, к какому врачу и на какое время записан клиент.
- Извлекаются из разговора — узлом
Extract Variables. - Считаются — узлом
Codeили из ответаFunction.

Переменные агента. Значения здесь — дефолты и тестовые данные; в бою их перекрывают данные кампании или API.
Показать панель целиком
Показать панель целиком

{{direction}} (inbound, outbound или web), {{from_number}} и {{to_number}}. У входящего звонка from_number — номер звонящего, to_number — набранный номер; у исходящего наоборот. Номера приходят цифрами, без + и скобок, — если агент произносит номер вслух, приведите его к читаемому виду нодой Code. Данные кампании, Web API и SIP-заголовков применяются после и перекрывают эти значения; в чат-тесте звонка нет, поэтому там работают дефолты с вкладки.

Extract Variables — немой узел: одним structured-вызовом достаёт из сказанного дату, время и «к тому же врачу?». Тип enum с вариантами yes, no даёт значение, по которому потом можно строить формулу.
Показать панель целиком
Показать панель целиком


Code — Python в песочнице: собрать строку, нормализовать телефон, посчитать разницу дат. Читает vars, отдаёт значения через result; какие переменные забрать — перечислено в «Выходных переменных». Сети и файлов в песочнице нет — за этим идут в Function.
Показать панель целиком
Показать панель целиком


Code с часами: подпись поля прямо перечисляет, что есть в песочнице — vars, now и безопасные builtins. Значения из result перечислены в «Переменных результата» и дальше живут как переменные звонка.
now("Asia/Almaty") возвращает время в указанной зоне IANA словарём — date, time, hour, minute, dow (1–7, понедельник первый), iso, epoch и остальное. Зона обязательна: now() без аргумента или с незнакомой зоной — ошибка и уход по ветке ошибки узла. import datetime в песочнице не работает, так что «который час» спрашивают именно так — внешний сервис времени для этого не нужен.
vars, result и now принадлежат самой песочнице — переменную результата так называть нельзя, она всегда осталась бы пустой. Валидатор про это предупреждает, а не блокирует публикацию.