Чат-бот
Что делать, если бот работает в тестовом окне, но не работает в мессенджере?
Возможно, у вас не оплачен тариф или выбран неподходящий тариф.
Также причиной может быть ошибка подключения канала.
В этом случае рекомендуем проверить настройки по инструкциям подключения мессенджеров.
Как получить корректный номер телефона клиента?
Необходимо добавить проверку номера с помощью регулярных выражений.
Регулярные выражения — это условия, с помощью которых бот проверяет формат введенных данных. Например, можно убедиться, что пользователь ввел именно номер телефона, а не произвольный текст.
Как настроить проверку?
В процессе общения с клиентом может потребоваться получить его номер телефона или email. Для автоматической проверки таких данных можно использовать регулярные выражения.
Подходящие выражения:
-
Номер телефона в России:
^((\+7|7|8)+([0-9]){10})$ -
Номер телефона с кодом любой страны:
^(\+)?((\d{2,3}) ?\d|\d)(([ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$ -
Email:
^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$
Убедитесь, что перед регулярным выражением в условии стрелки нет пробела.
Иначе схема чат-бота может работать с ошибками.
В примере используется регулярное выражение для телефонных номеров любой страны.
Так же, как бот может записать имя или возраст клиента, он может сохранить номер телефона или email.
Создайте блок с просьбой отправить номер телефона или email:

Проведите из него стрелку и укажите в условии соответствующее регулярное выражение:

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

Для этого проведите вторую стрелку из блока с запросом номера телефона и создайте сообщение, например:
Это не номер телефона. Пожалуйста, напишите номер телефона еще раз.

Выберите тип блока Не состояние.
У такого блока нет собственного условия, как у блока Состояние диалога, и пользователь не переходит в него как в отдельное состояние.
В данной схеме пользователь останется в предыдущем блоке, пока не введет корректный номер телефона:

Подробнее о блоке «Не состояние» читайте в отдельной статье.
Подробнее читайте в статье «Список полезных регулярных выражений».
Как узнать количество подписанных на бота?
В разделе «Аналитика» отображается:
- общее количество клиентов;
- количество клиентов по каждому мессенджеру.


Как сделать, чтобы разговор начинал сам бот?
Для каждого мессенджера используется отдельная настройка первого сообщения.
Подробнее читайте в статье «Первое сообщение в мессенджерах».
Как отправить «догоняющее» сообщение?
Если клиент перестал проходить воронку, ему можно отправить напоминание с помощью блока Не состояние.

Такой блок отправляет сообщение, но не перемещает пользователя по основной воронке.
Подробнее читайте в статье «Блоки “Не состояние”».
В соединении также необходимо:
- Настроить таймер.
- Включить переключатель Отменить, если покинул блок.

Этот переключатель означает, что стрелка сработает только для тех пользователей, которые к моменту окончания таймера все еще находятся в исходном блоке.
Как сделать, чтобы сразу отправлялась цепочка из 2–3 сообщений?
Соедините блоки стрелками и укажите в настройках каждой стрелки задержку 0 секунд.

Как отключить умные ответы, когда в чат вступает оператор или менеджер?
Укажите задержку после ответа оператора.

Как отследить переход по ссылке из предыдущего сообщения?
Можно использовать два способа:
- Добавить ссылку в кнопку.
- Использовать функцию
proxy().
Способ 1. Ссылка в кнопке
Добавьте кнопку в настройках блока:

В настройках кнопки:
- Оставьте функцию По умолчанию.
- Укажите текст кнопки.
- Добавьте ссылку.

Включите параметр С уведомлением о клике:

Нажмите Добавить, а затем Сохранить:

После клика клиента по кнопке в диалоге появится уведомление:

Способ 2. Прокси-ссылка
Если мессенджер не поддерживает кнопки, используйте функцию:
proxy('ваша ссылка')
В калькуляторе блока создайте переменную, например link, и присвойте ей результат функции proxy():

В тексте сообщения вставьте переменную:
#{link}
Если клиент перейдет по ссылке, в диалоге появится уведомление:

Колбэк при переходе по ссылке из функции
proxy()аналогичен колбэку кнопки с включенным уведомлением о клике.
Чтобы настроить реакцию бота на клик, укажите колбэк в условии блока типа:
- Стартовое условие;
- Не состояние с условием.
Реакция на конкретную ссылку
Если бот должен реагировать только на переход по определенной ссылке, укажите полный текст колбэка в условии блока:

Тип соответствия:
Полное совпадение
Реакция на переход по любой ссылке
Если бот должен реагировать на любой переход по ссылке, укажите часть колбэка:
link_was_pressed

Тип соответствия:
По наличию ключевых слов

Я хочу запустить таргет на бота. Где взять ссылку?
Можно создать сайт или лендинг и разместить на нем ссылки на ботов.

Создавать сайт необязательно — можно использовать прокси-ссылки.
Ссылки с кнопок мини-лендинга использовать нельзя.
Верно ли, что функция «Задержка по времени» отправляет сообщение в конкретную дату и время?
Да. Сообщение будет отправлено в дату и время, указанные в настройках стрелки.

Если дополнительно указана задержка перед отправкой, она прибавляется к заданному времени.
Например, если указано время отправки 21.07.2025 10:00 и задержка 1 час, сообщение будет отправлено 21.07.2025 в 11:00.
Можно ли создать два разных бота в одном аккаунте?
Да. В одном аккаунте можно создавать любое количество проектов.
Как сделать, чтобы стрелка с таймером и условием не планировалась после каждого сообщения клиента?
Если параметр Отменить сообщения с таймером отключен, а переход по таймеру зависит от условия, добавьте в поле Строки, на которые не отвечать:
#{question}

Почему текст ¶, введенный в блоке, заменяется на символ ¶?
Это происходит из-за обработки HTML-сущностей браузером.
Браузер воспринимает ¶ как начало сущности ¶, которая отображается символом ¶.
В качестве решения используйте:
&Para
Можно ли отправлять администратору уведомления, когда клиент пишет в онлайн-чат?
Да.
Подробнее об этом читайте в статье.
Можно ли сделать разные ссылки на одного бота с разной логикой?
Пример обращения в поддержку
Добрый день! У нас есть две ссылки, которые ведут на один и тот же сайт. Мы хотим понимать, откуда приходят заявки: одна ссылка будет в шапке профиля Telegram, а вторая — в рекламе. Можно ли использовать одного бота, но разделить эти два источника?
Да. Для этого можно создать два лендинга и указать для каждого свой тег.
Шаг 1. Создайте два сайта с разными тегами

Шаг 2. Укажите теги в условиях стартовых блоков
При переходе с лендинга Сайт для курса будет запускаться первая схема:

При переходе с лендинга Обучение будет запускаться вторая схема:

Можно ли отправить сообщение на следующий день после первого сообщения бота?
Пример обращения в поддержку
Человек переходит по рекламе и попадает в бота. Ему приходит приветственное сообщение, а на следующий день в 12:00 нужно отправить ссылку. Как это настроить?
Да.
В поле даты отправки стрелки укажите переменную:
next_day
Затем задайте необходимое время.

Как настроить, чтобы бот не мешал общению с клиентами?
В настройках проекта есть поле:
Время в минутах, на которое замирает бот после ответа оператора

Отсчет начинается с момента отправки сообщения оператором.
Если по ошибке установлено слишком большое значение и бот отключился надолго:
- Установите в этом поле
0. - Отправьте клиенту сообщение от оператора.
Как настроить отписку через чат-бота?
Вложенные файлы
Можно ли отправлять изображения?
Да. Бот может отправлять изображения в сообщениях.
Для этого выберите нужный блок, добавьте вложение и укажите его тип, например Изображение.

Подробнее читайте в статье «Вложения».
Как отправить несколько изображений или файлов?
В одном блоке можно добавить несколько вложений одного типа:

Также можно создать несколько блоков подряд и отправлять в каждом отдельное вложение.
Чтобы файл отправлялся без текста, в поле ответа укажите:
#{none}
Почему вместо файлов приходят ссылки?
Это может означать, что:
- выбран тип отправки файла ссылкой;
- при отправке файла произошла ошибка;
- файл по указанной ссылке недоступен.
Особенности отправки файлов:
- Загружаемые файлы должны иметь разные названия, поскольку внутри проекта они сохраняются в одной папке.
- При отправке по ссылке необходимо проверить доступность ссылки.
- Видеофайлы не отправляются как встроенное видео для просмотра.
- При удалении блока связанный с ним файл также удаляется.
Как включить превью ссылки?
При добавлении ссылки в текст сообщения можно включить отображение превью.

За отображение превью в Telegram, WhatsApp, Facebook и VK отвечает разметка Open Graph.
Open Graph содержит метатеги:
-
og:title— заголовок; -
og:description— описание; -
og:image— изображение.
После изменения изображения или описания может потребоваться обновить кеш ссылки с помощью специальных инструментов.
Какой максимальный размер файла?
При загрузке в конструктор максимальный размер файла — 20 МБ.
При отправке файла по ссылке ограничений со стороны конструктора нет.
Как отправить случайный текст или изображение?
Для выбора случайного значения используется функция:
random(low, high)
Функция принимает два параметра:
- нижнюю границу;
- верхнюю границу.
Пример:
random(-10, 10)
Результат — случайное целое число от -10 до 10.
Получение случайного значения из набора данных
Набором данных может быть:
- массив;
- словарь;
- таблица.
Пример с массивами:
text = {
"1": "Вас ждет солнечная Италия",
"2": "Думаю, модная Франция поднимет настроение",
"3": "Пора-пора, на берега родного Крыма",
"4": "Изведайте уголки своей родины"
}
picture = {
"1": "https://i.ibb.co/k4prZK0/itperv.jpg",
"2": "https://i.ibb.co/mTthk8t/image.jpg",
"3": "https://i.ibb.co/dJ1d6XK/5d42d4f8a593ad12cf3fb394-1.jpg",
"4": "https://i.ibb.co/Y3YYGQD/DSCF6408-2.jpg"
}
Выберите случайный номер:
vibor = random(1, 4)
Получите значения из массивов:
txt = get(text, '#{vibor}')
pct = get(picture, '#{vibor}')
После этого выведите результаты клиенту.

При работе с таблицами используется тот же принцип: заполните строки и затем считывайте случайно выбранную строку.
