Перейти к основному содержимому

🧱 Блоки

Сценарий собирается из блоков: каждый блок выполняет одно действие и передаёт управление дальше по связи, идущей из его выхода.

Всего в каталоге 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-блоки · Версии и запуски