Работа с блоками
Блок — это один экран диалога. Подписчик получает сообщение блока, может нажать кнопку и перейти к следующему. Из блоков собирается сценарий на доске.
Каждый блок отвечает за один акт коммуникации:
- показать сообщение и медиа,
- задать вопрос и получить ответ,
- предложить выбор кнопкой,
- запустить фоновую логику,
- перейти к следующему блоку по условию.
Как открыть блок
На доске сценария кликните по блоку → откроется редактор блока в полноэкранном режиме.
Скриншот 1. Редактор блока.
Часть 1. Содержимое блока
Текст сообщения
Главное поле блока. Поддерживает:
- обычный текст и эмодзи;
- шаблоны замен:
[Name],[Answer1],[CurrentDate]; - переменные:
#{имя},#{phone}; - выражения:
{{ #{price} * #{count} }}; - HTML-разметку (где поддерживается мессенджером):
<b>,<i>,<a>.
Для подстановки переменных и шаблонов используйте кнопку «Подстановки» под полем ввода.
- Сохранить ответ на блок в переменную: укажите имя переменной (_answer по-умолчанию).
Медиа
В блок можно прикрепить:
- Изображение (jpg, png, webp);
- Видео (mp4, mov);
- Аудио / голос (mp3, ogg, oga);
- Документ (pdf, doc, xls и т.д.);
- Стикер / GIF.
Скриншот 2. Прикрепление медиа.
В настройках кнопок (см. ниже) есть опции:
- Сгруппировать медиа — несколько одинаковых медиа отправятся одним сообщением (альбомом). От 2 до 10 штук, для картинок и PDF.
- Сообщение вместе с медиа — текст подпишется под медиа, а не отдельным сообщением.
Крестик у вложения удаляет сам файл сразу, ещё до сохранения блока. Отменить это, закрыв редактор без сохранения, нельзя — файла уже нет. Поэтому ссылка на него снимается сразу и в сохранённой версии: иначе бот пытался бы отправить удалённый файл, мессенджер отвечал бы отказом и сообщение не ушло бы вовсе — вместе с текстом.
То же самое во вложениях условий сценария действий, в шаблоне документа и в картинках лендинга.
Если файл всё же пропал (например, его снесла очистка неиспользуемых), бот отправит сообщение без него: текст и кнопки уйдут как обычно. Раньше одно пропавшее вложение не давало уйти всему сообщению.
Часть 2. Кнопки
Кнопки — главный инструмент управления диалогом. Они исключают опечатки и явно ведут клиента дальше.
Типы кнопок
| Тип | Что делает |
|---|---|
| Ссылка (URL) | Открывает внешний сайт / WebApp / MiniApp / Ссылку на оплату |
| Теги | Добавляет/Удаляет теги |
| Блок | Нажатие переводит на указанный блок сценария |
| Значение | Присваивается в качестве ответа подписчика |
| Назад | Возвращает сценарий на шаг назад |
| Завершить | Завершение сценария |
| Скопировать текст | Нажатие копирует текст в буфер обмена подписчика |

Скриншот 3. Типы кнопок.
Промокод, номер заказа, реквизиты для перевода — то, что человек всё равно выделяет пальцем в сообщении. Кнопка копирует это в буфер обмена одним нажатием; в поле «Что скопировать» работают подстановки, поэтому копировать можно и значение переменной.
Кнопка работает в Telegram (только при включённых inline-кнопках) и в МАКС. В остальных мессенджерах она не показывается — если бот многоканальный, дублируйте значение текстом в сообщении.
Настройки рядов и поведения
Кнопка settings в правом верхнем углу блока открывает настройки для каждого мессенджера отдельно. Вкладки: Telegram, MAX, VK.

Скриншот 4. Настройки кнопок по мессенджерам.
Telegram — основные опции
| Опция | Назначение |
|---|---|
| Кнопок в ряду | Сколько кнопок в одной строке. Последнее значение применяется ко всем следующим рядам |
| Кнопки под сообщением | Inline-клавиатура (по умолчанию). Если убрать — кнопки будут под полем ввода (reply-клавиатура) |
| Сгруппировать медиа | Альбом из 2-10 однотипных медиа |
| Сообщение вместе с медиа | Текст идёт подписью к медиа |
| Очистить клавиатуру | Убрать кнопки под полем ввода (для запроса контакта/локации не использовать) |
| Запрос номера телефона | Кнопка получит номер. Сохраняется в #{client_phone} |
| Запрос месторасположения | Координаты в #{client_latitude} и #{client_longitude} |
| Заменить предыдущее сообщение | Предыдущее сообщение удаляется перед отправкой нового |
| Отключить предпросмотр ссылок | Убирает превью URL в сообщении |
| Отключить звуковое уведомление | Тихая отправка |
| Защищённое сообщение | Подписчик не сможет переслать/сохранить |
| Приём трансляции геопозиции | Live-локация — координаты обновляются в #{client_latitude}, #{client_longitude}. При обновлении вызывается блок с этой отметкой |
MAX и VK
Свои наборы настроек на отдельных вкладках. Делайте настройки для всех мессенджеров, в которых работает бот.
Она всегда первая в ряду. Не сочетайте её с инлайн-клавиатурой («Кнопки под сообщением») — Telegram такое не поддерживает.
Мультисписок, чек-лист, переключатели опций — всё, где кнопка возвращает подписчика на тот же блок, — требует отметки «Заменить предыдущее сообщение» и в Telegram, и в MAX.
Без неё каждое нажатие добавляет в переписку ещё одну копию экрана: после пяти галочек в чате пять почти одинаковых сообщений, и кнопки в старых копиях остаются рабочими — подписчик жмёт их и не понимает, почему ничего не меняется. С отметкой экран выглядит как один живой.
Постраничному выводу списка отметка не нужна: он убирает предыдущую страницу сам.
Часть 3. Ожидание ответа и переход «иначе»
Свободный ввод от клиента
Если в блоке предусмотрен текстовый ответ — бот его ждёт. Ответ становится доступен в шаблоне [Answer] или [AnswerN] (где N — номер блока) или [AnswerID(ID блока)].
Сохранить ответ в переменную/список можно через Сценарий действий → операцию «Ответ».
Запасной переход «иначе» (wronganswer)
Если клиент написал не то, что ожидалось (не нажал кнопку, написал текст вне условий) — должен сработать запасной переход.
В блоке выберите «Блок при неправильном ответе» → укажите блок, куда увести клиента. Обычно — «Повтори вопрос» или «Я не понял».
Если в блоке кнопки + ожидание текста, а ни одно условие не сработало — бот молчит. Всегда настраивайте wronganswer для блоков-вопросов.

Скриншот 5. Настройка запасного перехода.
Часть 4. Условия и проверки
В блоке можно настроить условные переходы — стрелка пойдёт только при выполнении проверки.
Виды проверок
- Сравнение значений:
#{age} > 18,[Answer1] = да. - Содержит / не содержит:
[Answer1] INCLUDE доставка. - И:
#{x} = 1 & #{y} > 5. - ИЛИ:
#{x} = 1 | #{y} > 5.
Конструктор условия позволяет добавлять символы кнопками: +, -, *, /, (, ), &, |, =, !=, >, >=, <, <=, Содержит, НЕ содержит.
!=Привычное по таблицам и SQL <> конструктор не понимает: условие с ним всегда ложно, и переход не сработает — молча, без ошибки. То же самое со словами «И» и «ИЛИ»: соединяйте условия знаками & и |. Проще всего набирать условие кнопками конструктора — там только рабочие знаки.
Конструктор сравнивает стороны условия как текст, вместе с кавычками. Поэтому '[Answer1]' = 'да' работает, [Answer1] = да работает, а вот смешивать нельзя: в [Answer1] = 'да' сравнивается да со строкой 'да' — с кавычками внутри. Совпадения не будет никогда, переход молча не сработает, а с != наоборот — сработает всегда.
Надёжнее брать в кавычки обе стороны: '[Answer1]' = 'да'. Тогда ответу можно быть каким угодно — с пробелами, знаками & и |, пустым.
Числа сравниваются без кавычек: #{age} > 18, #{готово} = 1.
Проверка на пустоту — тоже в кавычках с обеих сторон: '#{комментарий}' = '' (пусто) и '#{комментарий}' != '' (что-то есть). Без кавычек слева такое условие выглядит рабочим, но считается неверно: сходит с рук, только пока в переменной одно слово из букв. Появятся запятая, двоеточие или пробел с цифрами — ветка молча замолчит, а на пустом значении она не срабатывает вообще.

Скриншот 6. Конструктор условного перехода.
Несколько условий
- Выполняется первое истинное условие
Часть 5. Сценарий действий блока
В блоке доступны две точки для подключения фоновой логики:
- До отправки — действия выполняются перед показом сообщения клиенту. Используйте для расчётов, чтения списков, формирования персонального контента.
- После отправки — действия после показа. Удобно для логов, постановки тегов, уведомлений менеджеру.
Кнопка «Добавить новый сценарий действий» под списком выбора сценария действий создаёт новый сценарий действий.

Скриншот 7. Сценарий действий «до» отправки блока.
→ Подробно: Сценарии действий.
Часть 6. Отправить сотруднику
Блок умеет одновременно с ответом клиенту отправить сообщение привязанному сотруднику — менеджеру, мастеру, администратору. Клиент этого сообщения не видит.
Включите «Отправить сотруднику» и напишите текст. Получателей задают двумя способами:
- «Отправить всем» — сообщение уйдёт всем активным сотрудникам аккаунта. Выбирать никого не нужно;
- без этой отметки — выберите одного или нескольких сотрудников из списка.
«Отправить всем» переживает перенос бота в другой аккаунт: получателей бот находит в момент отправки. Конкретный сотрудник хранится идентификатором подписчика, и в чужом аккаунте такого подписчика нет — сообщение уйдёт в никуда. Поэтому в ботах, которыми вы делитесь или которые ставите из готовых, оставляйте «Отправить всем», а потом при желании поменяйте на конкретного.
К сообщению можно прикрепить:
- кнопки — ссылка на переписку, теги, переход к блоку;
- медиафайлы — фото и документы, которые пришли от клиента или подготовлены заранее;
- File ID файла для Telegram и MAX — фото, документа, видео, аудио.
В тексте и в кнопках работают переменные и шаблоны замен — сотруднику сразу уходит имя клиента, его ответы и ссылка на диалог.
Если текста нет, но есть вложение или видео, сообщение всё равно уйдёт. Одни кнопки без текста и вложений не отправляются — мессенджеру нечего показать.
Кнопка сработает в том боте, где находится сотрудник. Если сотрудник подписан на другой бот, используйте ссылку или теги.
Часть 7. Задержка отправки
У каждого блока можно задать задержку — за сколько отправить сообщение после предыдущего блока:
- Сразу — без задержки;
- Минуты / часы / дни — отложить.

Скриншот 8. Настройка задержки и времени отправки.
Опции расписания (вне сценария):
- В любое время — отправить как только подошёл срок;
- В заданное время — отправить только в окно (например, не ночью, а с 9 до 21).
Используйте задержки в рассылках-дожимах. В блоках основного диалога обычно «Сразу».
Таймер на секунды
Задержка меньше минуты ведёт себя иначе, чем минуты и часы: бот выдерживает её прямо в том же обращении, не откладывая блок в расписание. На этом собирается таймер вида «не ответил за 30 секунд — идём дальше»:
- У блока, откуда идёт отсчёт, включите «Переход без ожидания ответа» — бот пойдёт по переходу сам.
- У блока, на который ведёт переход, поставьте задержку 30 секунд.
- Текст этого блока —
[Actions], а сценарий «до отправки» решает, что показать: событие уже случилось — сценарий заканчивается без сообщения, и подписчик ничего не увидит; не случилось — «Запустить блок» на нужный шаг.
Поле «Число повторений» (появляется у задержек меньше минуты) повторяет отсчёт до десяти раз: 30 секунд, проверка, снова 30 секунд.
Если увести на блок «Запустить блок» из сценария действий, задержка не сработает — блок покажется сразу. И не ставьте отсчёт длиннее минуты этим способом: всё это время обращение мессенджера висит открытым, а Телеграм дольше ждать не станет и пришлёт сообщение заново. Для минут и часов есть обычная задержка — она уходит в расписание и ничего не держит.
Круг попыток: «не ответил — предлагаем следующему»
Секунды держат обращение открытым, поэтому круг в секундах может быть только один. А вот задержка от минуты уходит в расписание — и это не ограничение, а возможность: бот сам, в фоне, запустит блок вместе с его сценарием «до отправки» и послушается его выхода. На этом собирается очередь попыток, которая крутится без участия человека:
- Экран ожидания («ищем оператора») помечен «Переход без ожидания ответа» и ведёт переходом на блок круга.
- У блока круга задержка 1 минута, текст
[Actions]и сценарий «до отправки»: он смотрит, случилось ли ожидаемое. - Не случилось — сценарий делает шаг (предлагает заявку следующему в списке) и «Запустить блок» обратно на экран ожидания. Оттуда переход без ожидания снова уводит на блок круга — и так по кругу.
- Случилось или круг исчерпан — сценарий уводит на обычный экран, и цикл заканчивается сам.
Счётчик попыток дошёл до числа участников, список кончился, заявку приняли — что-то, что точно наступит. Круг без выхода будет слать людям сообщения, пока бота не выключат.
Две мелочи, без которых круг выглядит неопрятно:
- Отличить самоход от сообщения подписчика. При переходе без ожидания бот подставляет ответ
..., поэтому автоматический шаг ловится условием'[Answer]' = '...', а всё остальное — это подписчик что-то написал. - Экран круга должен переписывать себя — включите «Заменить предыдущее сообщение», иначе в переписке накопятся копии «ищем дальше».
Часть 8. Архитектура блока
Принцип 1. Один блок — одна задача
Не пихайте 5 вопросов в один блок. Каждый вопрос — отдельный блок с отдельным ответом [Answer1], [Answer2].
Принцип 2. Кнопки лучше свободного ввода
Где можно — давайте кнопки. Свободный ввод оставляйте для имени, телефона, email, комментариев.
Принцип 3. Используйте подстановку, а не статику
Здравствуйте, [Name]! лучше, чем Здравствуйте, друг!. Клиент чувствует, что его «узнают».
Принцип 4. Тяжёлая логика — в сценарий действий
Не вычисляйте суммы в условиях. Считайте в сценарии действий «до отправки», сохраняйте в переменные — а блок просто покажет результат.
Принцип 5. Запасной переход обязателен
Каждый блок-вопрос должен иметь wronganswer. Не понимаете, куда уводить? Уведите на тот же блок — пусть переспросит.
Принцип 6. Настройки для каждого мессенджера
Если бот работает в Telegram + MAX — заполните обе вкладки настроек кнопок. Конфигурация Telegram не переносится на MAX автоматически.
Частые ошибки
- Пустой блок без перехода — диалог обрывается. Добавьте кнопку или авто-переход к следующему блоку.
- Кнопка без целевого блока — нажатие = тишина. Нарисуйте стрелку на доске.
[Answer]вместо[Answer1]—[Answer]это последний ответ, а вам, возможно, нужен конкретный блок.- Не настроен wronganswer для вопросов — бот не реагирует на «неправильный» ответ.
- Запрос контакта/локации + кнопки под сообщением — Telegram не позволит сочетание. Уберите одну опцию.
- Группировка медиа разных типов — не сработает. Альбом только из одинаковых (только картинки или только PDF).
- Подстановка переменной с ошибкой в имени — клиент получит пустоту. Проверяйте имя через кнопку «Подставить».
Что дальше
- Освойте фоновую логику: Сценарии действий.
- Сохраняйте ответы: переменные, списки.
- Управляйте подписчиками: теги.
- Шаблоны подстановок: Шаблоны замен, Системные переменные.