Сообщения и кнопки

Действие «Отправить сообщение» собирает ответ бота из блоков и снабжает его inline-кнопками, главным меню и шагами диалога. Это самое богатое действие конструктора — здесь же подключаются подстановки и реферальные параметры кнопок.

Блоки сообщения

Сообщение — это последовательность блоков (кнопка Добавить блок):

  • Текст — форматированный текст (до 4096 символов) с подстановками и кнопками.
  • Фото — изображение с подписью.
  • Файл — документ с подписью.
  • Задержка — пауза в секундах перед следующим блоком.
  • ИИ — ответ, сгенерированный моделью по промпту.
  • Реакция — вызов другой реакции (опционально дождавшись её обработки).

Блоки перетаскиваются. Режим показа блоков — «По порядку» или «Случайно» (для вариативных ответов). Главное меню бота можно оставить без изменений, задать новое или спрятать.

Опции блока

У текстовых и медиа-блоков есть флаги: закрепить, без звука, защита от пересылки, спойлер, без превью ссылок, автоудаление через N секунд.

Inline-кнопки

В блоке настраиваются кнопки (Текст кнопки + Тип):

  • Текст (callback) — кнопка с обработкой нажатия на стороне бота.
  • Ссылка — открывает URL.
  • Веб-приложение — открывает Telegram Mini App. См. Mini App.
  • Вызов реакции — нажатие запускает другую реакцию.
  • Приём платежа и Уведомление — размечены как «скоро».

Стиль кнопки — обычный, синий (Primary), зелёный (Success) или красный (Danger). Флаг «Одноразовая» сжигает кнопку после нажатия.

Поведение при нажатии

Для callback-кнопок настраивается, что происходит при нажатии: заменить текст кнопки, заменить сообщение (текстом или содержимым привязанной реакции), удалить сообщение, пропустить answerCallbackQuery. Нажатие также может ставить метки и задавать параметры.

Параметры в кнопке (Carry)

Блок «Carry — снимок данных в нажатие кнопки» прикрепляет к кнопке набор значений, зафиксированных в момент отправки. При нажатии эти значения попадают в контекст — так каждая кнопка несёт свои параметры (per-invocation), даже если кнопок много. Задаётся время жизни payload в секундах. Это основа сценариев «выбери товар → оформи именно его».

Динамические кнопки

Блок «Динамические кнопки из списка» разворачивает массив из ctx в кнопки — по одной на элемент. Настраиваются: ключ списка в ctx, псевдоним элемента, число кнопок в ряд и шаблон кнопки (поддерживает {{alias.поле}}). Так строятся каталоги, списки записей и меню из данных коллекции. Подробнее — Динамические кнопки и параметры.

Ожидаемый ответ (шаги диалога)

Текстовый блок может ждать ответ пользователя — это превращает сообщение в шаг диалога и ставит сценарий на паузу до ответа. Несколько шагов подряд образуют анкету или мастер прямо в чате.

Тип ожидаемого контента

Бот может ждать конкретный вид ответа: текст, выбор из вариантов (кнопки-варианты), фото, видео, видео-заметку, аудио, документ, голосовое, местоположение, контакт, календарь или кубик. Если пользователь пришлёт не тот тип, шаг считает ответ неподходящим.

Проверка текста

Для текстового ответа можно включить проверку формата: телефон, e-mail, ссылка, дата, время или соответствие формуле (регулярное выражение). Не прошедший проверку ответ отклоняется, и бот показывает сообщение об ошибке.

Сохранение ответа

Ответ пользователя можно сохранить в параметр — после чего он доступен в подстановках как {{param.ключ}} и в условиях. Так шаги диалога наполняют мини-профиль клиента.

Ошибки, напоминание и таймаут

  • Сообщение при ошибке проверки — что показать, если ответ не прошёл валидацию.
  • Напоминание — что отправить, если пользователь молчит.
  • Снятие ожидания по таймауту — через сколько перестать ждать; при таймауте можно запустить реакцию (например, мягко завершить анкету). Эта реакция видна в связях как «Таймаут ожидания», а реакция на сам ответ — как «Ожидаемый ответ».

Подстановки

Кнопка «Подстановки» вставляет переменные: данные отправителя ({{first_name}}, {{username}}, {{user_id}}), события ({{text}}, {{chat_id}}, {{datetime}}) и параметры ({{param.ключ}}). Полный список и формулы — Подстановки и формулы.

Что дальше