Главная · Блог · Служебные уведомления через MAX-бота: правило «сначала написал он»
Служебные уведомления через MAX-бота: правило «сначала написал он»
Бот в MAX умеет присылать клиенту то, ради чего его обычно и заводят: «заказ собран», «напоминаем о записи завтра в 14:00», «вопрос принят, ответим в течение часа». Но у мессенджера есть жёсткое правило: бот не начинает разговор сам. Пока человек не написал боту первым, уведомление ему не отправить — ни из кабинета, ни рассылкой, ни по загруженной базе телефонов. Ниже — как жить с этим правилом (собирать базу так, чтобы клиенты сами приходили в бота), какие уведомления собираются в ЧБТ блоками «Пауза», «Условие» и «HTTP-запрос», и где проходят границы: что MAX-канал в ЧБТ не делает.
Правило MAX: бот отвечает, а не начинает
Платформа MAX присылает боту событие, когда человек открыл диалог или написал сообщение. Только после этого у бота появляется адресат, которому можно отправлять текст. Загрузить список телефонов и «прозвонить» его сообщениями нельзя технически: номер телефона не является идентификатором диалога, а диалога, пока клиент не написал, не существует. В Telegram работает то же ограничение — там оно проявляется ошибкой, о которой мы писали в разборе PEER_ID_INVALID и «бот не может написать первым».
Из этого следуют три практических вывода.
- База для уведомлений равна списку тех, кто хотя бы раз написал боту. В ЧБТ такие люди появляются в разделе «Контакты» автоматически, с пометкой канала MAX, — отдельно «собирать базу» не нужно, нужно давать повод написать.
- Уведомления нельзя запустить «на потом» без бота сегодня. Если оповещения понадобятся к декабрьской распродаже, ссылка на бота должна стоять в письмах и чеках уже в октябре.
- Заблокировал — выпал. Если клиент заблокировал бота, сообщения ему не доходят; в статистике рассылки это будет строка «ошибки». Чистить базу руками не требуется.
Правило одинаково для любого конструктора и для собственной разработки — обойти его нельзя, можно только выстроить процесс так, чтобы клиент приходил в бота сам и заранее.
Какие уведомления имеют смысл в MAX и чем они запускаются в ЧБТ
Прежде чем строить сценарий, полезно разложить уведомления по типу запуска: одни отправляет сам сценарий в ответ на действия клиента, другие — вы из кабинета, третьи предназначены не клиенту, а вам.
| Уведомление | Чем запускается в ЧБТ | Что нужно заранее |
|---|---|---|
| «Заявка принята, ответим до 18:00» | Блок «Сообщение» сразу после «Сбор данных» | Ничего |
| Напоминание о записи | Блок «Пауза» после подтверждения записи | Клиент записался через бота |
| Статус заказа по запросу | Ключевое слово или кнопка → «HTTP-запрос» к вашей системе или «Оператор» | Номер заказа; ваш API или оператор на смене |
| Изменение графика, поставка приехала | Раздел «Рассылки» по тегу (Базовый и выше) | Теги на контактах |
| Событие для вас: клиент просит перенести запись | Действие «Уведомить оператора», письмо, Web Push | Включённые уведомления в аккаунте |
Чего в этой таблице нет: «внешняя система отправила событие — конкретный клиент получил сообщение в MAX» без доработки с вашей стороны. Так можно только через публичный API и только тем, кто уже писал боту, — подробности в разделе ниже. Если сразу пообещать клиентам «пуш при каждом изменении статуса из нашей CRM», придётся потом объясняться.
Шаг 1. Дать клиенту повод написать боту
Самый короткий путь — шаблон «Уведомления»: бот берёт контакт и объясняет, что здесь будут приходить статусы заказа или записи. Откройте его в разделе «Сценарии» через кнопку «Использовать шаблон» и адаптируйте тексты под свою услугу. Подключение самого канала MAX занимает несколько минут: токен из кабинета MAX для бизнеса вставляется в «Каналы» → «Подключить MAX», подробности — на странице бота MAX.
Дальше — расставить ссылку на бота во всех точках, где клиент с вами уже соприкасается:
- письмо или SMS с подтверждением заказа: «Статусы заказа — в MAX: ссылка»;
- чек или вкладыш в посылку — QR-код;
- подпись менеджера в переписке и на визитке;
- страница «Спасибо за заказ» на сайте;
- табличка на ресепшене: «Напоминание о записи придёт в MAX — отсканируйте».
Диплинк. Ссылка на бота из кабинета MAX для бизнеса поддерживает стартовый параметр: когда клиент открывает бота по такой ссылке, MAX присылает событие запуска с этим параметром, и в ЧБТ срабатывает триггер «Диплинк» с указанным payload. Заведите разные payload для разных точек входа — order для письма, kassa для чека, site для страницы благодарности — и в каждой ветке ставьте свой тег действием «Добавить тег». Через месяц в «Контактах» будет видно, откуда люди реально приходят.
QR. Раздел «QR-кампании» в ЧБТ сейчас строит QR-код со ссылкой на Telegram-бота проекта. Для MAX возьмите ссылку бота с параметром и сгенерируйте QR любым внешним генератором — сценарий на стороне ЧБТ от этого не меняется.
Минимальный сценарий входа выглядит так: триггер «Диплинк» (order) → «Сообщение»: «Здравствуйте! Здесь будут статусы вашего заказа. Напишите его номер из письма» → «Сбор данных» (Своё поле «Номер заказа», проверка «Число», в переменную order_id) → «Действие»: тег ждёт-статус → «Сообщение»: «Принято. Как только что-то изменится по заказу {{order_id}}, напишем сюда». С этого момента клиент в базе, и любые дальнейшие уведомления ему разрешены.
Шаг 2. Напоминание о записи: «Пауза», «Условие», «Сообщение»
Запись через бота в ЧБТ устроена без календаря: клиент выбирает услугу кнопкой, пишет удобное время текстом, оставляет телефон, а вы получаете уведомление и подтверждаете. Как это собрано — на странице записи клиентов в MAX. Слотов и проверки занятости нет, и это влияет на напоминания: сценарий не знает дату визита как дату, он знает только текст «завтра в 14:00» в переменной.
Поэтому напоминание строится одним из двух способов.
Фиксированная пауза — для записи «на завтра». После блока подтверждения поставьте «Пауза» на 18–20 часов, затем «Сообщение»: «Напоминаем: вы записаны на {{visit_time}}. Всё в силе?» с кнопками «Да» и «Перенести». Ветка «Перенести» ведёт в «Действие» → «Уведомить оператора» («{{name}} просит перенести запись на {{visit_time}}») и дальше в блок «Оператор» — администратор договаривается о новом времени из раздела «Диалоги». Переменная visit_time заполняется в блоке «Сбор данных» через поле «В переменную».
Вручную из «Диалогов» — для записи на другие даты. Администратор открывает диалог клиента и пишет напоминание сам. Это тоже сообщение от бота в MAX, правило «сначала написал он» соблюдено, а времени уходит меньше, чем на звонок. Для типовых текстов есть шаблоны быстрых ответов в инбоксе.
Ночная защита. Чтобы пауза не сработала в три часа ночи, перед сообщением поставьте «Условие» → «Время»: если час меньше 9 — ещё одна «Пауза» на несколько часов, иначе — сразу сообщение. Условие по дню недели работает так же и пригодится, если по воскресеньям вы закрыты.
Если хочется цепочку сложнее — «за сутки, потом за два часа, потом просьба об отзыве после визита», — механика та же: чередование «Пауза» → «Условие» → «Сообщение» и теги на каждом шаге. Подробно она разобрана в статье про триггерные цепочки в боте.
Шаг 3. Статус заказа по запросу клиента
«Где мой заказ» магазину пишут постоянно, а данных о заказах у самого бота нет. Ответить без оператора он сможет, если спросит статус у вашей учётной системы: клиент пишет — и получает ответ сразу, не дожидаясь, пока вы «что-то пришлёте». Собирается это из четырёх блоков.
- Вход. Триггер «Ключевое слово» в режиме «содержит» на слова «статус», «где заказ», «доставка» — или кнопка «Где мой заказ» в стартовом меню (триггер «Нажатие кнопки»).
- Номер заказа. «Сбор данных»: Своё поле, проверка «Число», две попытки, текст при ошибке: «Номер заказа — это цифры из письма-подтверждения, например 48213». Ответ — в переменную
order_id. - Запрос данных. Статус заказа с Ozon и Wildberries по номеру ЧБТ не получает — такие вопросы отдавайте оператору блоком «Оператор». Если заказы живут в вашей системе — «Действие» → «HTTP-запрос»: бот отправит POST на ваш адрес с переменными и данными контакта, а ответ сервера (как текст) сохранит в переменную, которую вы укажете в поле «в переменную», например
order_status. - Ответ. «Сообщение»: «По заказу {{order_id}}: {{order_status}}. Появятся вопросы — напишите, оператор подключится».
Важная оговорка про HTTP-запрос: ЧБТ подставит в сообщение ответ вашего сервера как есть. Разбирать JSON и вытаскивать из него поле конструктор не умеет, поэтому сервер должен отвечать готовой человеческой строкой: «Собран, передан в СДЭК, ожидайте 2–3 дня». Настроить такой ответ можно в Make, n8n или в двух строках на своём бэкенде. Формат исходящего запроса описан в справке по webhook.
И обязательно — ветка «не нашли»: если сервер вернул пустой ответ, «Условие» → переменная «задано» — иначе блок «Оператор». Лучше живой человек через пять минут, чем бот, который бодро сообщает «{{order_status}}» пустым текстом.
Шаг 4. Внешние события: что может входящий webhook и чего не может
В ЧБТ есть триггер «Входящий webhook»: сценарий получает адрес вида https://app.chbt.io/webhook/inbound/<проект>/<путь>?token=…, секрет генерируется кнопкой в настройках триггера, и любая внешняя система может запустить сценарий обычным POST-запросом. Это удобно для внутренних задач: CRM сообщила «оплата прошла» — сценарий создал сделку действием «Сделка в CRM» и дёрнул «Уведомить оператора».
Но есть ограничение, о котором нужно сказать прямо: входящий webhook не привязан к диалогу конкретного клиента в MAX. Он запускает сценарий как отдельное событие, а не продолжает переписку с человеком, который вчера написал боту. Схема «наша система узнала об отгрузке → клиент Иванов получил сообщение в MAX» через этот триггер в ЧБТ не собирается, и обещать её клиентам не стоит.
Что работает вместо неё:
- Клиент спрашивает сам — шаг 3 выше. Часто этого достаточно: человек проверяет статус, когда ему это нужно, а не когда системе захотелось написать.
- Рассылка по тегу для событий, которые касаются группы, а не одного человека: «поставка размера M приехала» — всем с тегом
ждёт-M; «в пятницу работаем до 16:00» — всем с тегомклиент. Раздел «Рассылки» доступен на Базовом тарифе и выше: текст с {{name}}, аудитория по тегам, отложенный запуск по дате и времени, статистика отправлено/ошибки. Отправка идёт очередью с ограничением скорости, поэтому тысяча сообщений уходит не мгновенно — это нормально. Как размечать базу, чтобы такие рассылки были точными, разобрано в статье про теги как систему сегментации; особенности канала — на странице рассылок в MAX. - Оператор пишет вручную из «Диалогов» — для единичных случаев вроде «ваш заказ задержится на день». Диалог уже есть, значит, сообщение дойдёт.
- Ваша система пишет через публичный API — если клиент уже писал боту. Вебхук о новом сообщении передаёт id диалога, ваша система хранит его рядом с заказом и при отгрузке отправляет текст запросом
POST /api/v1/conversations/:id/messages. Сообщение уходит в MAX как ответ оператора, диалог переходит к человеку. Нужна доработка: скрипт у вас или сценарий в Make или n8n. Подробности — в справке по API.
Если адресные уведомления по внешнему событию для вашего процесса критичны, закладывайте эту доработку в план запуска.
Что бот сообщает команде: push, письмо, блок «Оператор»
У сценария уведомлений есть второй адресат — администратор или менеджер. Клиент нажал «Перенести», оставил номер заказа, которого нет в системе, написал «срочно» — обо всём этом кабинет должен сказать сразу, а не когда кто-то откроет «Диалоги» после обеда. В ЧБТ для этого три механизма, и все они работают без внешних интеграций.
- Действие «Уведомить оператора» в блоке «Действие». Текст с переменными — «{{name}} просит перенести запись на {{visit_time}}» — появляется в кабинете и уходит Web Push всем операторам проекта, даже если вкладка закрыта. Push включается колокольчиком в «Диалогах» и в «Аккаунт → Уведомления».
- Письмо на e-mail о новом диалоге и о новой заявке — по настройкам аккаунта. Подходит, если кабинет открыт не постоянно.
- Блок «Оператор» — диалог помечается в «Диалогах» как ожидающий человека, бот замолкает. Это не уведомление в чистом виде, но именно он гарантирует, что просьба не потеряется среди ответов бота.
Чего нет: ЧБТ не отправляет уведомления владельцу в его личный MAX или Telegram. Каналы уведомлений для команды — кабинет, push и почта. Если хочется получать их на телефон, установите кабинет как приложение кнопкой «Установить» (PWA) — push приходят туда же.
Границы MAX-канала в ЧБТ, о которых лучше знать до запуска
Список короткий, но каждый пункт когда-то стал для кого-то сюрпризом.
- Только текст и кнопки. Фото, PDF и видео в MAX-бота через ЧБТ не отправить. Чек, инструкцию или схему проезда давайте ссылкой в тексте сообщения.
- Кнопки — только под сообщением сценария. Каждая кнопка — либо ссылка, либо переход в ветку, и живёт она у того сообщения, к которому прикреплена. Поэтому в конце каждой ветки повторяйте меню отдельным «Сообщением» с кнопками «Статус заказа», «Перенести запись», «Оператор» — иначе клиент останется с текстом без выхода.
- Индикатор «печатает» — только в Telegram-канале. В MAX ответ появляется без него; на длинных текстах это заметно, поэтому режьте сообщения на 2–3 короткие.
- Бесплатный тариф — 30 диалогов в месяц. Напоминания после «Паузы» лимит не расходуют: считаются только люди, которые сами написали боту в этом месяце. Но когда таких набралось 30, каждый следующий вместо ответа по сценарию получит фразу о лимите, в том числе постоянный клиент, если в этом месяце он боту ещё не писал, — это самая частая причина, почему «бот MAX молчит». Рассылки — только на Базовом (650 ₽ за бота в месяц) и выше.
- В рассылках нет кнопок и медиа. Кнопки и ветки — только в сценарных сообщениях. Хотите реакцию на рассылку — напишите в тексте: «ответьте «да», и мы забронируем» — слово «да» ловится триггером «Ключевое слово».
- Счётчиков по блокам сценария нет. Сколько человек дошло до напоминания и нажало «Да», считайте тегами: ставьте «Добавить тег» на нужных ветках и фильтруйте «Контакты».
Если часть клиентов у вас в Telegram, тот же сценарий уведомлений работает и там: каналы добавляются в один проект, а различия между платформами мы собрали в сравнении MAX или Telegram для бота. Как построить в MAX автоответчик на входящие вопросы — отдельная статья про бота-автоответчика в MAX.
Чеклист перед запуском уведомлений
- Ссылка на бота стоит минимум в двух точках, где клиент с вами уже общается: письмо после заказа и чек или страница «спасибо».
- У каждой точки входа свой payload и свой тег — иначе через месяц не понять, что сработало.
- Пройдите сценарий с телефона через «Проверить сценарий» и через настоящий MAX: убедитесь, что напоминание пришло после паузы и что кнопка «Перенести» вызвала оператора.
- Проверьте «Условие» по времени: искусственно поставьте час меньше 9 и убедитесь, что сообщение ушло в утреннюю ветку.
- Если настроили «HTTP-запрос» — отправьте тестовый номер заказа и посмотрите, что бот подставил в {{order_status}} читаемый текст, а не JSON.
- Убедитесь, что письмо о заявке и Web Push включены у того, кто реально будет отвечать, а не у владельца аккаунта, который заглядывает раз в неделю.
- Посчитайте диалоги: если клиентов больше 30 в месяц, Базовый тариф нужен с первого дня, иначе часть людей упрётся в молчащего бота.
Уведомления в MAX — это не отдельный модуль, а обычный сценарий плюс дисциплина «ссылка на бота везде». Первую версию — шаблон «Уведомления» и одно напоминание с паузой — можно собрать за вечер на Бесплатном тарифе. Создать MAX-бота для уведомлений →
Шаблон «Уведомления»Чат-бот MAX для бизнесаРассылка ботом MAXСправка: webhooksТриггерные цепочки в боте