Типы блоков
Блоков всего пять типов. Каждый отвечает за свой шаг сценария.Стартовое условие
Точка входа в воронку. Срабатывает, когда входящее сообщение или событие совпало с его
условием. У такого блока обязано быть хотя бы одно условие, иначе он не запустится никогда.
Состояние диалога
Обычный шаг диалога. Отправляет сообщение и ждёт ответ, дальше ведёт по стрелкам. Сам себя
не запускает: попасть в него можно только по стрелке, по таймауту, через действие «Перейти
в блок» или из кампании.
Fallback
Запасной блок с самым низким приоритетом. Отвечает на «помощь», «меню» или «отмена» в любом
месте воронки и не сбивает подписчика с текущего шага. Чтобы реально увести его дальше,
добавьте действие «Перейти в блок».
ИИ-оператор
Передаёт переписку виртуальному оператору. Своего готового текста у блока нет: ответ пишет
модель. Персона, модель и язык настраиваются на странице ИИ-оператор, а в
самом блоке задаётся «Задача блока» и переключатель «Писать первым при входе».
Draft
Заготовка. Не срабатывает, пока вы не переключите её в рабочий тип. Удобно отложить блок,
сохранив его настройки.
На каждое сообщение подписчика бот проверяет блоки по порядку: сначала стрелку из блока, где
подписчик стоит сейчас, потом стартовые условия, и в последнюю очередь Fallback. Если подошло
сразу несколько блоков, выигрывает более высокий приоритет условия, а при равенстве последний
созданный блок. Стрелка «любой ответ» проверяется после стрелок с конкретным условием.
Условия: на что реагирует блок
Условие это строка, по которой блок или стрелка решают, подходит ли входящее сообщение. Как именно сравнивать, вы выбираете в списке «Тип сравнения» рядом с полем «Ключевые слова».
Грамматика одинакова для условия блока и условия стрелки:
;разделяет варианты и работает как ИЛИ:купить; оплатить; заказать.(A|B)группирует слова в режиме ключевых слов:(тариф|план) (сменить|поменять).{{ }}подставляет данные подписчика прямо в условие. Можно просто вписать переменную как условие: она подставит своё значение, и блок сработает, если входящее сообщение совпало с ним.- Переменную можно сравнить:
{{ status }} != paidили{{ price }} > 100. Операторы:==,!=,>,>=,<,<=. Для==и!=сравнение строковое без учёта регистра, для остальных числовое. - Варианты в одном поле можно смешивать через
;:купить; {{ vip }} >= 5; заказать.
Отдельного «И» (AND) в грамматике нет. Несколько вариантов через
; тоже работают как ИЛИ:
блок срабатывает, если подошёл хотя бы один. Понимать смысл сообщения умеет только блок
«ИИ-оператор», обычная стрелка сверяет текст буквально.{{ tag }} это стартовый параметр из ссылки запуска бота: если подписчик перешёл по
t.me/ваш_бот?start=123, то {{ tag }} станет равен 123. Значение фиксируется один раз, при
первом /start. Поэтому стартовый блок с условием /start; {{ tag }} ловит и обычный запуск
командой, и запуск по параметру из ссылки.Пустое поле условия означает «любое сообщение от подписчика». Но если после подстановки
{{ }} строка стала пустой, такое условие не совпадёт ни с чем.Стрелки и таймауты
Стрелка (связь) ведёт от одного блока к другому. Её тип виден прямо на подписи стрелки.- Авто-переход. Пустая стрелка без таймаута. Срабатывает сразу после того, как блок отправил сообщение. Так проходит только первая пустая стрелка, ответа подписчика она не ждёт.
- По сообщению. Срабатывает, когда подписчик пишет текст, подходящий под «Условие срабатывания».
- По нажатию кнопки. Ловит клик по инлайн-кнопке Callback этого блока. Отдельно такой тип стрелки не выбирают: вставьте нужную кнопку в условие стрелки из списка «Кнопки источника», и стрелка сама станет «По нажатию кнопки».
- Через таймаут. Срабатывает по таймеру, если подписчик молчит. Задержку вы задаёте в поле «Таймаут до перехода» в секундах, минутах, часах или днях.
- Ждать любой ответ подписчика. Стрелка проходит при любом ответе, будь то текст или клик, без проверки условия. Сама по себе не срабатывает и проверяется последней, чтобы не перебивать стрелки с конкретным условием.
Сообщение блока: текст, медиа и кнопки
Содержимое блока настраивается на вкладке «Сообщение».Текст
В конструкторе доступно базовое форматирование Telegram: жирный, курсив, подчёркивание, зачёркивание, моноширинный, код, ссылки, спойлер и цитата. Расширенное форматирование (заголовки, списки, таблицы) доступно в Рассылках. Переключатель «Показывать превью ссылок» решает, разворачивать ли карточку ссылки. Лимиты Telegram: до 4096 символов в тексте и до 1024 в подписи к медиа.Медиа
К блоку прикрепляются пять видов медиа: Фото, Видео, Видеосообщение, Голос, Аудио.- Несколько фото и видео уходят одним альбомом. Голос, аудио и видеосообщение отправляются отдельными сообщениями.
- Видеосообщение идёт без подписи и без кнопок.
- Инлайн-кнопки нельзя прикрепить к альбому: они уходят отдельным сообщением следом за ним.
- При загрузке квадратного видео до 60 секунд бот по умолчанию отправит его как видеосообщение. Тип можно переключить в «Отправить как» прямо на файле, и бот отправит выбранным типом.
Файл загружается прямо в блок. Подставить внешнюю ссылку или путь к файлу нельзя.
Инлайн-кнопки
Каждая инлайн-кнопка занимает свою строку. Тип кнопки выбирается переключателем:- URL. Открывает ссылку.
- Callback. Ловится блоком сценария по нажатию.
- Скопировать. Копирует текст в буфер обмена подписчика, например промокод.
primary, success, danger). В тексте и значении кнопки
работает подстановка {{ }}, например {{ click_id }} в ссылке. Лимиты Telegram: callback до
64 байт, ссылка до 2048 символов, копируемый текст до 256.
Как кнопка ведёт дальше. Кнопка Callback ловится блоком сценария по своему значению, тому
тексту, что вы вписали в её callback. Поймать нажатие можно двумя способами:
- Стрелкой из этого же блока: вставьте кнопку в условие стрелки из списка «Кнопки источника», значение подставится в один клик.
- Отдельным блоком «Стартовое условие», у которого в «Ключевых словах» стоит то же значение callback. Такой блок поймает нажатие из любого места воронки, даже если подписчик уже ушёл с блока с кнопкой.
Свою reply-клавиатуру (обычные кнопки под полем ввода) в блоке задать нельзя, блок работает с
инлайн-кнопками. Есть только переключатель «Убрать reply-клавиатуру у подписчика»: он прячет
reply-клавиатуру, которую подписчик получил раньше.
Действия после отправки
На вкладке «Действия» настраивается, что произойдёт после того, как блок отправил сообщение. Доступно три действия:- Поставить тег. Помечает переписку тегом. Теги заводятся и управляются в разделе Теги.
- Убрать тег. Снимает тег с переписки.
- Перейти в блок. Меняет текущую позицию подписчика. Следующее его сообщение будет сверяться с условиями целевого блока.
Захвата ответа в переменную или запуска своего кода в действиях нет.
Пуши: напоминания замолчавшим
Если подписчик застрял в блоке и не идёт дальше, его можно вернуть напоминанием на вкладке «Пуши». Есть два режима:- Заданные сообщения по таймеру. Вы пишете шаги сами, задержки отсчитываются от входа в блок.
- ИИ сам решает когда и что писать. Доступно только в блоке «ИИ-оператор». Модель сама выбирает момент и текст под контекст переписки и то, что известно о подписчике, в рамках заданных «не чаще» и «не реже» и лимита напоминаний.
Переменные
В текст, кнопки и условия подставляются данные подписчика через{{ }}. Токены пишутся латиницей
и точно как в списке. Полный справочник в разделе Переменные.
- Системные:
first_name,last_name,full_name,username,user_id,telegram_id,date_of_birth,created_at,tag(стартовый параметр из ссылки запуска, см. выше). - Динамические: заполняются после постбека от партнёрки и хранят данные последнего события.
click_id(идентификатор для партнёрских ссылок),event.payout(сумма события),event.currency(валюта),event.trader_id(идентификатор аккаунта или игрока у партнёра),event.device_type(тип устройства),event.os_version(версия ОС),event.link_type(тип ссылки). - Свои: глобальные переменные, заведённые для бота.
Системные события и конверсии
Стартовое условие и стрелки срабатывают не только на текст, но и на события. Готовые события можно вставить из списка «Системные события», набирать их руками не нужно:- Заблокировал бота и Разблокировал бота.
- Заявка на вступление и Заявка одобрена (для инвайт-кампаний каналов).
- Реакция.
- Конверсии трекера: Регистрация, Депозит, Повторный депозит, Вывод и другие постбеки. Про источники этих событий читайте в разделе Трекер.
Пример: небольшая воронка
Стартовое условие на /start
Создайте блок «Стартовое условие». В поле «Ключевые слова» впишите
/start, тип сравнения
оставьте «Содержит ключевые слова». В сообщении поздоровайтесь: Привет, {{ first_name }}! и
добавьте две инлайн-кнопки типа Callback: «Каталог» и «Задать вопрос».Разводим подписчика по кнопкам
От стартового блока протяните две стрелки: в условие каждой вставьте свою кнопку из списка
«Кнопки источника». Одну стрелку ведите к блоку «Каталог», другую к блоку «Вопрос».
Состояние «Каталог»
Создайте блок «Состояние диалога», отправьте в нём фото и описание. На вкладке «Действия»
добавьте «Поставить тег», например «Смотрел каталог», чтобы потом собрать этих подписчиков в
рассылку.
Fallback на «помощь»
Добавьте блок «Fallback» с условием
помощь; help в режиме «Содержит ключевые слова». Он
ответит подсказкой в любом месте воронки и не собьёт подписчика с текущего шага.Напоминание по таймауту
От блока «Каталог» протяните стрелку «Через таймаут» на 1 день в отдельный блок-напоминание.
Если за сутки подписчик ничего не написал, он получит мягкий пуш. Любое его сообщение раньше
срока отменит напоминание.
Что дальше
ИИ-оператор
Персона, модель и язык виртуального оператора для блока «ИИ-оператор».
Настройки бота
Имя, описание и текст «О боте», которые видят подписчики в Telegram.
Мессенджер
Как оператор перехватывает переписку вручную и возвращает её ИИ.
Рассылки
Массовые сообщения по тегам и сегментам подписчиков, с расширенным форматированием.