🧱 Блоки
Сценарий собирается из блоков: каждый блок выполняет одно действие и передаёт управление дальше по связи, идущей из его выхода.
Всего в каталоге 78 типов блоков. Три из них («Индикатор набора», «Преобразование», «Завершить диалог») сняты с палитры: добавить их в сценарий нельзя, но в уже опубликованных сценариях они продолжают выполняться. Остальные 75 доступны в палитре в зависимости от типа сценария, а блок «Старт» уже стоит на холсте у любого сценария.
Как устроена палитра
Блоки в палитре разложены по четырём пакам:
| Пак | Что внутри |
|---|---|
| Базовое | «Условие», «Задержка», «Переключатель», «Цикл», «Параллельные ветки», «Перевести в сценарий»; группы «Переменная», «Список», «Объект», «Строка» (в том числе дата и время); в сценариях «Поддержка» — группа «Действие»; в «Поддержке» и «Тикетах» — группа «Тикеты» |
| Чат-бот | группа «Сообщение» и блок «Вопрос» |
| ИИ | группа «ИИ-блок» и «AI-агент» |
| Интеграции | «HTTP запрос» и «Уведомление» сотрудникам |
Родственные блоки собраны в мердж-группы — на палитре это одна карточка («Действие», «Тикеты», «ИИ-блок», «Сообщение», «Переменная», «Список», «Объект», «Строка»). После того как карточка перетащена на холст, конкретная операция выбирается в панели свойств в верхнем селекте: у группы «Действие» он называется «Что делать», у «Сообщения» — «Что сделать», у «ИИ-блока» — «Режим», у «Тикетов» и остальных — «Операция». Смена варианта сохраняет блок на месте и меняет набор полей.
Отдельными карточками, без группы, лежат: «Условие», «Задержка», «Переключатель», «Цикл», «Параллельные ветки», «Перевести в сценарий», «Вопрос», «HTTP запрос», «Уведомление» и «AI-агент».
Набор блоков зависит от типа сценария. Группа «Действие» появляется только в сценариях «Поддержка». Группа «Тикеты» есть в «Поддержке» и «Тикетах», но с разным составом (см. Доступность по типу сценария). «AI-агент» доступен только в «Поддержке».
Выходы блоков
Подписи выходов одинаковы во всём редакторе:
| Выход | Значение |
|---|---|
| Далее | обычное продолжение |
| Ошибка | блок не смог выполниться; причина — в {{flow.error_message}} |
| Да / Нет | ветки блока «Условие» |
| Получен ответ / Таймаут | ветки блока «Вопрос» |
| Тело цикла / Далее | ветки блока «Цикл» |
| После веток | общий выход блока «Параллельные ветки» |
| По умолчанию | общий выход «Переключателя», если ни один кейс не совпал |
| Не совпало | «Извлечение регуляркой» ничего не нашла |
| Не найдено | нет элемента или поля («Элемент списка», «Поле объекта», «ИИ — ответ по базе») |
| Не уверена | уверенность AI-блока ниже порога |
| Пусто | «ИИ — выбор варианта» и «Обращения клиента» ничего не вернули |
| Позитивный / Нейтральный / Негативный | «ИИ — тональность» |
| Безопасно / Заблокировано | «ИИ — модерация» |
| Лимит исчерпан | «AI-агент» |
Если блок ушёл в выход «Ошибка» (или «Таймаут» у «Вопроса»), а стрелки из него нет, запуск завершается с ошибкой. Если не разведён обычный выход («Далее», «Нет», «По умолчанию» и т. п.), запуск просто завершается.
У блоков-действий над обращением и тикетом выхода «Ошибка» нет: при сбое запуск завершается с ошибкой, и об этом можно узнать глобальным сценарием на событие «Упал флоу (для алертинга)» — см. Триггеры.
Динамические выходы
У трёх блоков выходы не заданы заранее, а рождаются из содержимого полей. Каждый такой выход нужно развести на холсте отдельно.
| Блок | Откуда берутся выходы | Как называется выход |
|---|---|---|
| Вопрос | каждая кнопка клавиатуры, кроме кнопки-ссылки | btn: и payload кнопки |
| Переключатель | каждая запись в поле «Кейсы» плюс всегда существующий «По умолчанию» | case: и значение кейса, а также default |
| AI-агент | каждый объявленный исход агента | out: и ключ исхода |
Кнопки-ссылки (URL) выходов не создают — это просто переход по адресу, поэтому в блоке «Сообщение» доступны только они.
При переименовании payload кнопки, значения кейса или ключа исхода редактор сам переносит разведённую связь на новый выход (у исхода агента появляется уведомление «Связь перенесена на новый ключ», отменить можно через Ctrl+Z). При удалении кнопки или кейса связь удаляется вместе с ним.
Если удалить исход агента, у которого есть связь, редактор попросит подтверждения («Удалить исход вместе со связью?»). Когда удаляется последний исход, связь можно перевесить на порт «Готово».
У AI-агента неразведённые порты подсвечиваются: «Обязательный выход не разведён — публикация не пройдёт» — у системных выходов и когда не разведён ни один исход, «Исход не разведён: прогон уйдёт по несуществующему переходу и завершится молча» — у отдельного исхода.
Блоки-заглушки
Заглушкой остаётся один блок палитры — «Параллельные ветки»: ветки не выполняются, срабатывает только общий выход «После веток». Все остальные блоки выполняют реальное действие, в том числе все блоки тикетов.
Блоки, снятые с палитры
Если в старом сценарии остался блок, снятый с палитры («Индикатор набора», «Преобразование», «Завершить диалог»), или блок, недоступный для этого типа сценария («Изменить статус» / «Установить приоритет» в сценарии «Тикеты»), он продолжает работать, но в панели свойств показывается «Неизвестный тип блока: …» и настроить его нельзя. Замените его:
| Старый блок | Чем заменить |
|---|---|
| «Завершить диалог» | «Изменить статус» со статусом «Решён» или «Отменён» |
| «Преобразование» | «Шаблон-строка» (собрать строку из переменных) или «Поле объекта» (достать поле из объекта) |
| «Изменить статус» в «Тикетах» | «Статус тикета» |
| «Индикатор набора» | просто удалите: в канал он ничего не отправляет |
Пак «Базовое»
Условие
Ветвление по сравнению двух значений. Поля: «Левая часть» (что сравниваем, обычно переменная), «Оператор», «Правая часть» (с чем сравниваем). Выходы — «Да» и «Нет».
Операторов ровно восемь:
| Оператор | Как работает |
|---|---|
| равно | строковое сравнение значений |
| не равно | обратное «равно» |
| содержит | левая часть содержит правую как подстроку |
| входит в | значение есть в списке справа |
| не входит в | значения нет в списке справа |
| существует | значение не пустое |
| больше | числовое сравнение |
| меньше | числовое сравнение |
Правила, о которых легко забыть:
- для «входит в» и «не входит в» справа нужен JSON-массив строк, например
["vip","gold"]; - отсутствующая переменная приводится к пустой строке: «равно» с пустой правой частью даст «Да», а «существует» вернёт «Нет» и для отсутствующего значения, и для пустой строки;
- «больше» и «меньше» работают только с числами — на нечисловом значении блок падает с ошибкой.
Задержка
Пауза перед следующим блоком. Поле «Длительность» — четыре числовых поля: дни, часы, минуты, секунды. Выход — «Далее», он срабатывает после того, как время вышло.
Переключатель
Маршрут по значению. Поля: «Что сравниваем» и «Кейсы». Каждый кейс — отдельный выход блока: «Каждый кейс — отдельный выход блока. Если значение совпало — сценарий идёт по этой ветке. Если ничего не совпало — по „По умолчанию“».
Значение кейса не может быть пустым («Значение не может быть пустым — оно задаёт выход блока») и не может повторяться («Это значение уже используется другим кейсом»). Куда ведёт кейс, задаёт стрелка на схеме: под кейсом виден блок-цель или надпись «Не разведён: протяните стрелку от выхода на схеме».
Цикл
Перебирает элементы списка. Поля:
| Поле | Описание |
|---|---|
| Переменная-список | Имя переменной, в которой лежит список |
| Переменная элемента | Куда сохранять текущий элемент |
| Переменная индекса | Необязательно; счёт с 0 |
| Максимум итераций | От 1 до 1000, по умолчанию 100 — на более длинном списке блок остановится |
Выход «Тело цикла» срабатывает на каждом элементе: проведите его через блоки тела и соедините последний блок тела обратно с «Циклом». Выход «Далее» срабатывает после последнего элемента или сразу, если список пуст. Внутри тела можно ждать ответа клиента — после ответа цикл продолжится с того же элемента.
Без ожидания весь цикл выполняется за один проход, а за проход сценарий выполняет не больше 1000 блоков (сам «Цикл» тоже считается на каждой итерации) — иначе запуск завершится ошибкой. Длинный список с несколькими блоками в теле упрётся в этот лимит раньше, чем в «Максимум итераций». См. Версии и запуски.
Параллельные ветки
Задуман как запуск нескольких веток одновременно с ожиданием всех. Поле «Кол-во веток» — от 2 до 50 (по умолчанию 2). Общий выход — «После веток».
Ветки не выполняются — срабатывает только общий выход «После веток». Порты «#1», «#2»… на холсте рисуются, но соединять их нельзя: сценарий с такой связью не опубликуется. Разводите только «После веток».
Перевести в сценарий
Завершает текущий запуск и передаёт разговор другому сценарию проекта — назад ничего не возвращается. Доступен в сценариях любого типа.
| Поле | Описание |
|---|---|
| Сценарий | Куда передать разговор. В списке — опубликованные сценарии проекта с триггером «Ручной запуск» |
| Аргументы | Значения для входных переменных целевого сценария, поддерживают {{переменные}} |
Поле «Аргументы» собирается формой «Входы флоу «…»» по входным переменным выбранного сценария: значения по умолчанию подсказаны («По умолчанию: …»), для списка допустимых значений можно «Выбрать из списка» или «Ввести шаблон». Переключатель «Форма» / «JSON» открывает сырой JSON. Ключи, которых нет среди входов цели, передаются как есть. Если целевой сценарий входов не объявляет, аргументы задаются свободными парами («Добавить аргумент»).
Выход у блока один — «Ошибка» (причина в {{flow.error_message}}). Он срабатывает, если целевой сценарий не найден, не опубликован или запускается не вручную, аргументы не подходят под его входы (тип, обязательность, список допустимых значений), сценарий указывает сам на себя или разговор уже передавали 5 раз. Пустое поле «Сценарий» останавливает запуск с ошибкой.
В новом сценарии доступны данные исходного события, в том числе {{chat.*}}. Навыком AI-агента этот блок быть не может.
На этом блоке построен шаблон «Умная сортировка нового обращения»: он разбирает вопрос клиента и передаёт разговор в сценарии «Приём платёжного вопроса» или «ИИ-агент с навыками».
Группа «Переменная»
Работа со значениями. Вариант выбирается в поле «Операция».
| Операция | Поля |
|---|---|
| Переменная | «Имя переменной», «Значение», «Область» (Сценарий / Пользователь / Тенант) |
| Очистить переменную | «Имя переменной», «Область» |
| Изменить число | «Переменная», «Шаг» (отрицательный — уменьшить), «Область» |
| Переключить флаг | «Переменная», «Область» |
| В JSON-строку | «Входная переменная», «Форматирование» (В одну строку / С переносами), «Сохранить строку в» |
| Формула | «Выражение» (арифметика: +, -, *, /, %, возведение в степень, скобки, функции вроде sqrt, переменные), «Сохранить результат в» |
| Получить шаблон (только «Поддержка») | «Шаблон» — выбор из готовых ответов проекта, «Сохранить шаблон в». Если шаблон пуст или не найден, запуск завершается с ошибкой |
У «В JSON-строку» выходы «Далее» и «Ошибка». Что означают области видимости — см. Переменные.
Группа «Список»
| Операция | Поля |
|---|---|
| Создать список | «Имя списка», «Начальные элементы» (JSON-массив, необязательно) |
| Добавить в список | «Переменная-список», «Элемент» |
| Длина списка | «Переменная-список», «Сохранить длину в» |
| Элемент списка | «Переменная-список», «Индекс» (с 0), «Сохранить элемент в» |
| Установить элемент | «Переменная-список», «Индекс», «Значение» |
| Удалить из списка | «Переменная-список», «По чему удалять» (По индексу / По значению), «Что удаляем» |
| Список содержит? | «Переменная-список», «Значение», «Поле» (необязательно) |
| Объединить список | «Переменная-список», «Разделитель», «Поле», «Сохранить строку в» |
| Агрегация | «Переменная-список», «Операция» (Количество / Сумма / Среднее / Минимум / Максимум), «Поле», «Сохранить результат в» |
| Фильтр списка | «Переменная-список», «Поле», «Значение», «Сохранить результат в» |
| Сортировка списка | «Переменная-список», «Поле», «Направление» (По возрастанию / По убыванию), «Сохранить результат в» |
Выходы, отличные от «Далее»:
- «Элемент списка» — «Далее» / «Не найдено» (индекс за пределами списка; переменная результата не меняется);
- «Список содержит?» — «да» / «нет» (на холсте пока подписаны как «output.yes» / «output.no»); в «нет» уходит и случай, когда переменная — не список.
Если нужно просто число или отбор по равенству, хватит одного блока — «Агрегация» или «Фильтр списка» (фильтр сравнивает поле со значением только на равенство). Для более сложных условий соберите «Цикл» → «Условие» → «Добавить в список».
Группа «Объект»
| Операция | Поля |
|---|---|
| Создать объект | «Имя объекта», «Начальные поля» (JSON-объект, необязательно) |
| Поле объекта | «Переменная-объект», «Путь» (например address.city), «Сохранить значение в» |
| Записать в объект | «Переменная-объект», «Путь», «Значение» |
| Удалить ключ | «Переменная-объект», «Путь» |
| Ключи объекта | «Переменная-объект», «Сохранить список ключей в» |
У «Поля объекта» выходы «Далее» / «Не найдено» (поля нет; переменная результата не меняется).
Группа «Строка»
| Операция | Поля |
|---|---|
| Склеить строки | «Части», «Разделитель», «Сохранить строку в» |
| Разделить строку | «Строка», «Разделитель», «Сохранить список в» |
| Заменить в строке | «Строка», «Что заменяем», «На что заменяем», «Режим» (Точное совпадение / Регулярное выражение), «Сохранить результат в» |
| Шаблон-строка | «Шаблон» с переменными, «Сохранить строку в» |
| Извлечение регуляркой | «Входная строка», «Шаблон», «Сохранить совпадение в» |
| Парсинг JSON | «JSON-строка», «Сохранить объект в» |
| Парсинг даты | «Дата», «Формат», «Часовой пояс», «Сохранить дату в» |
| Формат даты | «Дата», «Формат» (например dd.MM.yyyy), «Часовой пояс», «Сохранить строку в» |
Выходы, отличные от «Далее»:
- «Извлечение регуляркой» — «Далее» / «Не совпало» (результат — пустая строка). Некорректное регулярное выражение останавливает запуск с ошибкой;
- «Парсинг JSON», «Парсинг даты», «Формат даты» — «Далее» / «Ошибка» (причина в
{{flow.error_message}}).
Действия над обращением (группа «Действие»)
Карточка «Действие» лежит в разделе «Базовое» и доступна только в сценариях «Поддержка»; вариант выбирается в поле «Что делать». Все действия работают с текущим обращением.
| Действие | Поля |
|---|---|
| Изменить статус | «Статус» (Новый / В работе / Уточнение / Решён / Отменён). Статусы «Решён» и «Отменён» закрывают обращение |
| Установить приоритет | «Приоритет» (Низкий / Средний / Высокий / Критический) |
| Добавить тег | «Тег» — выбор из тегов проекта |
| Назначить на группу | «Группа» — выбор из групп проекта |
| Снять группу | без полей |
| Отметить прочитанным | «ID сообщения» — сообщение, до которого помечаем прочитанным |
Пояснения:
- «Добавить тег» вешает тег на текущее обращение. Тег выбирается из списка тегов проекта; произвольный текст блок не примет.
- «Назначить на группу» снимает с обращения линию поддержки: группа и линия взаимоисключающи. Если назначить не удалось, запуск завершается с ошибкой — выхода «Ошибка» у блока нет.
- Чтобы закрыть обращение, поставьте «Изменить статус» со статусом «Решён» или «Отменён»; прощальное сообщение отправьте перед ним блоком «Сообщение».
Блоки тикетов (группа «Тикеты»)
Тикетные блоки собраны в карточку «Тикеты» (раздел «Базовое», селект «Операция»). В сценариях «Тикеты» доступны все операции над тикетом, кроме «Создать тикет». В «Поддержке» — «Создать тикет», чтение (поиск, фильтр, типы, обращения клиента) и сессия ответа. «Изменить статус» и «Установить приоритет» из группы «Действие» работают только с обращением и в «Тикетах» недоступны.
| Блок | Где доступен | Поля |
|---|---|---|
| Создать тикет | Поддержка | «Заголовок», «Описание» (оба необязательные, поддерживают переменные), «Приоритет» (по умолчанию «Средний»), «Срочность» (Низкая / Средняя / Высокая), «Сохранить ID тикета в» |
| Статус тикета | Тикеты | «Тикет», «Новый статус» (статусы проекта), «Комментарий» — внутренняя заметка, клиент её не видит. Закрывающий статус ставит «Завершить тикет» |
| Завершить тикет | Тикеты | «Тикет», «Статус закрытия» (закрывающие статусы проекта), «Комментарий» — внутренняя заметка |
| Назначить исполнителя | Тикеты | «Тикет», «Что сделать» (Выбрать исполнителя из списка / Взять исполнителя из переменной / Снять назначение), «Исполнитель» или «Идентификатор исполнителя» |
| Сменить тип тикета | Тикеты | «Тикет», «Новый тип» — выбор из справочника проекта |
| Удалить тикет | Тикеты | «Тикет» — обязателен |
| История тикета | Тикеты | «Тикет», «Сколько записей» (1–100, по умолчанию 10), «Сохранить журнал в» |
| Поиск тикетов | Поддержка, Тикеты | «Поисковый запрос», «Сохранить найденное в» |
| Фильтр тикетов | Поддержка, Тикеты | «Условия» (JSON с точными значениями: status, priority, typeName, reporterId; объединяются по «И»), «Сохранить список в» |
| Типы тикетов | Поддержка, Тикеты | «Сохранить список в» (у каждого типа — id, name, description, isDefault) |
| Обращения клиента | Поддержка, Тикеты | «Статус» (Новый / В работе / Согласован / Решён / Отменён / Закрыт; пусто — любой), «Сохранить список в». Возвращает тикеты текущего клиента; выходы «Далее» и «Пусто» (тикетов нет или запуск без клиента) |
| Продолжить в тикете | Поддержка, Тикеты | «Тикет» — обязателен |
| Close Ticket Reply Session | Поддержка, Тикеты | «Тикет» — обязателен |
Пустое поле «Тикет» означает тикет текущего запуска (кроме «Удалить тикет» и блоков сессии ответа, где тикет нужно указать явно).
Пояснения:
- «Создать тикет» действительно создаёт тикет: он привязывается к текущему обращению, автором записывается сам сценарий, а идентификатор попадает в указанную переменную. Выход у блока один — «Далее». Если тикет создать не удалось, запуск завершается с ошибкой (причина видна в трассе); чтобы узнавать о таких сбоях, заведите глобальный сценарий на событие «Упал флоу (для алертинга)».
- «Продолжить в тикете» — следующие сообщения клиента уходят не в чат, а в переписку указанного тикета (обычно
{{flow.<переменная из «Создать тикет»>}}). Выходы: «Далее» иno_bot(на холсте подписан как «output.no_bot») — если разговор ведёт не бот (например, виджет) и направить ответы в тикет нельзя. - «Close Ticket Reply Session» (русского названия у блока пока нет) возвращает разговор боту: реплики клиента снова идут в чат, а не в тикет. Закрывать уже закрытую сессию можно — ошибки не будет. Без этого блока сессия ответа держится до 24 часов, и новые вопросы клиента попадают в тикет. Удобное место — сценарий «Тикеты» на событие «Комментарий клиента».
- У остальных блоков тикетов выход один — «Далее»; при сбое системы тикетов запуск завершается с ошибкой.
Пак «Чат-бот»
Группа «Сообщение»
Вариант выбирается в поле «Что сделать».
Сообщение — отправить текст клиенту в текущий канал.
| Поле | Описание |
|---|---|
| Текст | Поддерживает шаблоны {{flow.var}} и Markdown |
| Картинки | До 10 картинок, отправятся вместе с текстом |
| Кнопки-ссылки | Inline-кнопки только со ссылками (URL). Не влияют на маршрут |
| Сохранить ID сообщения в | Имя переменной |
Кнопки в этом блоке не создают ветвление — они только ведут по ссылке. Чтобы кнопка вела по своей ветке сценария, используйте блок «Вопрос».
Изменить сообщение — поля «ID сообщения» и «Новый текст». Удалить сообщение — поле «ID сообщения».
Вопрос
Отправляет вопрос и ждёт ответа клиента.
| Поле | Описание |
|---|---|
| Сообщение пользователю | Вопрос, который зададим пользователю |
| Имя переменной | Куда сохранить ответ |
| Таймаут ожидания | Сколько ждать ответ, прежде чем уйти по выходу «Таймаут» (по умолчанию 1 час) |
| Картинки | До 10 картинок, отправятся вместе с вопросом |
| Кнопки | Клавиатура под вопросом |
Выходы блока — «Получен ответ» и «Таймаут», плюс отдельный выход на каждую кнопку.
Ответ — это объект. В шаблонах указывайте поле через точку:
| Обращение | Что вернёт |
|---|---|
{{flow.<имя>.text}} | текст ответа |
{{flow.<имя>.id}} | UUID сообщения |
{{flow.<имя>.button}} | payload нажатой кнопки |
{{flow.<имя>.attachments}} | список вложений; сейчас каналы вложения в сценарий не передают, поле пустое |
Голое {{flow.<имя>}} вернёт объект целиком, и редактор подскажет: «это объект — укажите конкретное поле через точку».
Кнопки. Клавиатура собирается по строкам («Строка N», «Кнопка N»), у каждой кнопки есть тип:
| Тип | Что делает |
|---|---|
| Обычная | обычная кнопка с payload |
| Ссылка | открывает URL |
| Web App | открывает мини-приложение |
| Запрос контакта | просит клиента поделиться контактом |
| Запрос геолокации | просит клиента поделиться геопозицией |
Каждая кнопка, кроме «Ссылки», создаёт отдельный выход блока — его нужно соединить со своей веткой: «Каждая кнопка-CALLBACK создаёт отдельный выход блока — соедините его со следующим шагом». Payload кнопок не должен повторяться («Этот payload уже используется другой кнопкой»). При удалении кнопки редактор предупредит: «Связь удалена вместе с кнопкой».
Пак «ИИ»
Двенадцать AI-блоков собраны в одну карточку «ИИ-блок»; конкретный блок выбирается в поле «Режим». Тринадцатый блок пака — «AI-агент» — лежит в палитре отдельной карточкой.
| Блок | Где доступен |
|---|---|
| ИИ — генерация | везде |
| ИИ — JSON по схеме | везде |
| ИИ — классификация | везде |
| ИИ — извлечение данных | везде |
| ИИ — выбор варианта | везде |
| ИИ — перевод | везде |
| ИИ — тональность | везде |
| ИИ — модерация | везде |
| ИИ — язык текста | везде |
| ИИ — ответ по базе | только «Поддержка» |
| ИИ — сводка чата | только «Поддержка» |
| ИИ — классификация чата | только «Поддержка» |
| AI-агент | только «Поддержка» |
У блоков «ИИ — классификация», «ИИ — тональность», «ИИ — ответ по базе» и «ИИ — классификация чата» есть поле «Порог уверенности» (0–1, по умолчанию 0.6) и отдельная ветка «Не уверена»: «Если уверенность модели ниже порога — ветка „Не уверена“».
Поля и примеры — в разделе AI-блоки.
AI-агент
Отдельный блок, который отдаёт разговор с клиентом модели: она сама пишет ответы, сама задаёт вопросы и ждёт, сама вызывает выданные ей навыки и сама выбирает исход, которым закончить. Остальные AI-блоки делают ровно один вызов модели и уходят по фиксированному выходу — агент работает циклом и переживает несколько сообщений клиента.
Панель блока разложена на три вкладки: «Инструкция», «Навыки (N)», «Исходы (N)». Каждый объявленный исход даёт свой выход на холсте.
Подробно: Агентский режим, Навыки агента, Подтверждения оператора.
Пак «Интеграции»
HTTP запрос
Вызов внешнего API.
| Поле | Описание |
|---|---|
| Метод | GET / POST / PUT / PATCH / DELETE |
| URL | Поддерживает переменные, до 2048 символов |
| Продолжение пути | Дописывается к URL (например, 12345/items). Сам адрес поменять нельзя: без «..», «://», «?» и «#», до 256 символов |
| Параметры запроса | Плоский JSON «имя → значение»; значения поддерживают переменные и кодируются автоматически |
| Тело | JSON для POST/PUT/PATCH, до 2048 символов |
| Заголовки | JSON заголовков |
| Авторизация | Без авторизации / Bearer-токен / Basic |
| Значение | Токен или логин:пароль (появляется, если выбрана авторизация) |
| Сохранить ответ в | Имя переменной |
У блока два выхода:
- «Далее» — ответ 2xx. Тело складывается в указанную переменную, код ответа — в
{{flow.__http_status__}}. - «Ошибка» — не-2xx, сбой связи, недопустимое «Продолжение пути» или слишком большой ответ. Диагностика — в
{{flow.error_message}}и{{flow.error_type}}.
Ограничения: ответ не больше 1 МиБ, таймаут соединения — 5 секунд, таймаут ответа — 30 секунд, не больше 100 HTTP-вызовов на один запуск. Запросы к приватным адресам и служебным хостам (localhost, metadata.google.internal, metadata.azure.com, *.svc.cluster.local, *.internal) блокируются. Запрос к запрещённому адресу (приватные сети, служебные хосты, не http/https) и превышение лимита в 100 вызовов в «Ошибку» не уходят — запуск завершается с ошибкой.
Ключи и токены внешних API храните в переменных проекта и подставляйте как {{project.api_token}}, а не вписывайте в блок.
Уведомление
Уведомление для сотрудников (не для клиента — клиенту пишет блок «Сообщение»).
| Поле | Описание |
|---|---|
| Канал | Email / Telegram |
| Адресат | Email-адрес — для Email, числовой chat id — для Telegram. По @username бот не найдёт: человек или группа должны сначала написать боту |
| Сообщение | Поддерживает шаблоны и Markdown |
| Токен бота | Только для Telegram. Держите его в переменной проекта, например {{project.telegram_bot_token}}, а не в блоке |
Выходы: «Далее» и «Ошибка» — если канал не настроен или доставка не удалась (причина в {{flow.error_message}}). Навыком AI-агента этот блок быть не может.
Доступность по типу сценария
| Тип сценария | Что доступно дополнительно |
|---|---|
| Поддержка | «Изменить статус», «Установить приоритет», «Добавить тег», «Назначить на группу», «Снять группу», «Отметить прочитанным», «Создать тикет», «Получить шаблон», «ИИ — ответ по базе», «ИИ — сводка чата», «ИИ — классификация чата», «AI-агент» |
| Тикеты | «Статус тикета», «Завершить тикет», «Назначить исполнителя», «Сменить тип тикета», «Удалить тикет», «История тикета» |
| Поддержка и Тикеты | «Фильтр тикетов», «Поиск тикетов», «Типы тикетов», «Обращения клиента», «Продолжить в тикете», «Close Ticket Reply Session» |
| Все типы (включая «Глобальный») | Логика (в том числе «Цикл», «Параллельные ветки» и «Перевести в сценарий»), переменные, списки, объекты, строки, сообщения, «Вопрос», ИИ-блоки общего назначения, «HTTP запрос», «Уведомление» |
→ Триггеры · Переменные · AI-блоки · Версии и запуски