Инструкция

Как собрать бота в MAX: профиль, модерация, токен, первая воронка и рассылка

Я делаю платформу с ботами для онлайн-проектов и подключал MAX своими руками, поэтому знаю, где на этом пути теряются дни. Здесь весь путь: от проверки профиля до первой рассылки. Собрать бота можно тремя способами, и только один из них мой. Выбирайте по задаче.

Владислав Пурвиньш, TERVIO. , сверено с документацией MAX в тот же день.

  1. До началаПрофильПодтверждают организация, ИП или самозанятый через Госуслуги или банк
  2. Шаг 1МодерацияДо 48 часов по рабочим дням, и снова после правки карточки
  3. Шаг 2ТокенПоявляется только у бота, который прошёл модерацию
  4. Шаг 5РассылкаТолько тем, кто сам запустил бота, поэтому базу собирают заранее

Что нужно до начала

Личного аккаунта MAX мало. Бота заводит только подтверждённый профиль на платформе «MAX для партнёров» (business.max.ru). Это правило MAX, обойти его не получится ни через один сервис.

  • Кто может. Юрлица, ИП и самозанятые, резиденты РФ. Физлицам и нерезидентам верификация пока недоступна. От организации её проходит руководитель или представитель с правом первой подписи.
  • Чем подтвердить. Организации и ИП через Госуслуги или банк (T-Business ID, Alfa ID; через банк только в веб-версии платформы). Самозанятые только через Госуслуги.
  • Сколько ботов. До 5 на профиль организации или ИП, до 2 на профиль самозанятого.

Модерация бота занимает до 48 часов по рабочим дням, плюс время на подтверждение профиля. Если реклама стартует в понедельник, бота лучше подать на проверку заранее.

Шаг 1. Создайте бота

В кабинете откройте «Чат-боты» и нажмите «Создать». Заполните карточку:

  • логотип: квадрат 500×500 px, до 5 МБ, jpg или png;
  • название: до 59 символов, без эмодзи;
  • описание: до 200 символов.

Никнейм выбрать нельзя. MAX создаёт его сам: у ИП и юрлиц это id<ИНН>_bot, у самозанятых se<номер профиля на платформе>_bot. Он же попадёт в ссылку на бота, и поменять его пока нельзя. То есть ИНН будет виден в ссылке, которую вы раздаёте в рекламу. Лучше знать об этом заранее.

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

Ловушка. Изменение настроек опубликованного бота снова отправляет его на модерацию, и пока она идёт, менять ничего нельзя. Не правьте карточку за день до запуска.

Шаг 2. Заберите токен

Токен появляется только у бота, прошедшего модерацию. Путь: «Чат-боты», выберите бота, меню «⋮», «Настройки». Его же можно получить в мини-приложении «MAX для бизнеса» или командой «Получить токен» в одноимённом боте.

Токен даёт полный контроль над ботом. Не кладите его в чаты и в код, который уходит в публичный репозиторий.

Шаг 3. Выберите, чем бот будет работать

СпособКому подходитЧем платите
Свой код на APIЕсть разработчик, логика нестандартнаяСервер, время, поддержка
КонструкторНужны воронки и рассылки без кодаАбонплата от базы или сообщений
Платформа с CRMМенеджеры ведут переписку в том же окнеАбонплата

Дальше по каждому.

Свой код

У MAX открытое API на platform-api2.max.ru. Официальные библиотеки есть для JavaScript/TypeScript и Go, спецификация OpenAPI лежит в репозитории max-messenger/api-schema. Токен передаётся заголовком Authorization, в адресе запроса его больше не принимают.

Проверьте токен:

curl -H "Authorization: $MAX_TOKEN" https://platform-api2.max.ru/me

Если вместо ответа получили ошибку сертификата, это не поломка. API подписан корневым сертификатом Минцифры, которого нет в стандартных наборах. Скачайте его с Госуслуг и добавьте в доверенные. Отключать проверку TLS не надо: токен ходит в каждом запросе.

Подпишите бота на события. Секрет: от 5 до 256 символов, латиница, цифры и дефис.

curl -X POST https://platform-api2.max.ru/subscriptions \
  -H "Authorization: $MAX_TOKEN" -H "Content-Type: application/json" \
  -d '{"url":"https://your-domain.ru/webhook",
       "update_types":["message_created","bot_started"],
       "secret":"zamenite-na-dlinnuyu-sluchaynuyu-stroku"}'

Вот минимальный бот на Python без сторонних библиотек. Он встречает человека, просит телефон кнопкой и записывает метку из ссылки:

import hmac, json, os, re, ssl, urllib.parse, urllib.request
from http.server import BaseHTTPRequestHandler, HTTPServer

API = "https://platform-api2.max.ru"
TOKEN = os.environ["MAX_TOKEN"]
SECRET = os.environ["MAX_SECRET"]
# API MAX подписан корневым сертификатом Минцифры, файл в формате PEM лежит рядом
TLS = ssl.create_default_context(cafile="russian_trusted_ca.pem")


def call(path, params=None, body=None):
    url = f"{API}{path}?{urllib.parse.urlencode(params or {})}"
    req = urllib.request.Request(
        url, data=json.dumps(body or {}).encode(), method="POST",
        headers={"Authorization": TOKEN, "Content-Type": "application/json"})
    with urllib.request.urlopen(req, context=TLS, timeout=20) as resp:
        return json.load(resp)


def send(user_id, text, buttons=None):
    body = {"text": text}
    if buttons:
        body["attachments"] = [{"type": "inline_keyboard",
                                "payload": {"buttons": buttons}}]
    call("/messages", {"user_id": user_id}, body)


def handle(update):
    kind = update.get("update_type")
    if kind == "bot_started":
        # payload: часть после ?start= в ссылке, по ней видно источник
        print("старт", update["user"]["user_id"], update.get("payload"))
        send(update["user"]["user_id"], "Привет! Оставьте телефон, и я пришлю материал.",
             [[{"type": "request_contact", "text": "Отправить телефон"}]])
    elif kind == "message_created":
        sender = update["message"]["sender"]
        if sender.get("is_bot"):
            return
        for att in update["message"]["body"].get("attachments") or []:
            if att.get("type") == "contact":
                vcf = att["payload"].get("vcf_info") or ""
                phone = re.search(r"^TEL[^:]*:(.+)$", vcf.replace("\\r\\n", "\n"), re.M)
                print("телефон", sender["user_id"], phone and phone.group(1).strip())
                send(sender["user_id"], "Спасибо! Вот материал: https://example.com/guide")


class Webhook(BaseHTTPRequestHandler):
    def do_POST(self):
        got = self.headers.get("X-Max-Bot-Api-Secret", "")
        if not hmac.compare_digest(got, SECRET):
            self.send_response(403)
            self.end_headers()
            return
        size = int(self.headers.get("Content-Length", 0))
        handle(json.loads(self.rfile.read(size)))
        self.send_response(200)
        self.end_headers()


HTTPServer(("127.0.0.1", 8080), Webhook).serve_forever()

Это учебный пример. Перед ним нужен nginx или другой прокси с HTTPS, а для настоящей работы ещё база и очередь отправки. Вот что MAX требует от вашего адреса:

  • HTTPS только на порту 443, сертификат от доверенного центра или Минцифры с полной цепочкой, домен должен совпадать с сертификатом. Самоподписанный и простой HTTP не подойдут;
  • ответ 200 в течение 30 секунд, иначе MAX считает доставку неудачной и повторяет до 10 раз с растущей паузой. Одно и то же событие может прийти дважды, учитывайте это;
  • если адрес не отвечает 8 часов, MAX сам отпишет от него бота. После долгого простоя проверяйте подписку. Я для этого раз в 10 минут сверяю её автоматически;
  • Long Polling (GET /updates) MAX рекомендует только для разработки и тестов, и пока у бота есть подписка на вебхук, он не работает.

Конструктор

Сервисов-конструкторов с поддержкой MAX уже около десятка. У большинства платный вход, у некоторых есть бесплатный вариант с ограничениями. Цены меняются и часто зависят от размера базы, так что сверяйте на сайте сервиса.

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

  1. Работает ли кнопка «Отправить телефон» и куда ложится номер.
  2. Доходит ли метка из ссылки ?start= до карточки клиента.
  3. Как считается цена: по подписчикам или по сообщениям.
  4. Можно ли выгрузить подписчиков, если решите уйти.
  5. Что будет с ботом, который уже подключён к другому сервису: не начнёт ли человек получать два ответа.

TERVIO

Это мой продукт, поэтому читайте с поправкой. Он подойдёт, если кроме бота вам нужно окно, где менеджеры переписываются с клиентами из MAX, Telegram, ВКонтакте, WhatsApp и Авито.

  1. В разделе «Боты», в карточке «Подключить бота», выберите MAX, вставьте токен и нажмите «Подключить».
  2. Соберите воронку в «Сценариях»: сообщения, кнопки, вопросы, паузы, теги. Код не нужен, а один сценарий можно запускать и в MAX, и в Telegram.
  3. Раздайте ссылку вида max.ru/имя_бота?start=метка. Метка попадёт в карточку клиента.

Если бот работал в другом сервисе, соберите воронки заранее: при подключении TERVIO забирает бота себе, и в старом сервисе он замолчит. Воронки Salebot импортируются файлом выгрузки, отчёт показывает, что не перенеслось.

Ограничения тоже назову. Человек, написавший и в Telegram, и в MAX, для TERVIO остаётся двумя карточками. Блок с мини-приложением в MAX не покажется. Здесь я описываю только воронки, рассылки, переписку и модерацию чатов: про остальные модули в MAX спросите отдельно, прежде чем на них рассчитывать.

Попробовать бесплатно7 дней бесплатно, карта не нужна. Цена зависит от числа подписчиков.Что умеет бот MAX в TERVIO

Шаг 4. Соберите первую воронку

Для первого запуска хватит четырёх экранов. Вот рабочая схема на регистрацию:

  1. Человек открывает max.ru/имя_бота?start=post_12. Бот получает событие bot_started с меткой post_12.
  2. Бот коротко говорит, что человек получит, и задаёт один вопрос кнопками.
  3. Бот просит телефон кнопкой request_contact и выдаёт обещанное.
  4. Тем, кто замолчал, бот напоминает через час и через сутки. Ответил человек, и напоминания отменяются.

Что отличается от Telegram:

  • Клавиатуры под полем ввода в MAX нет, все кнопки живут под сообщением.
  • В сообщении до 30 рядов кнопок и до 7 кнопок в ряду. Если в ряду есть кнопка-ссылка, запрос телефона, геолокации или мини-приложения, то не больше 3.
  • Подпись кнопки может быть длинной, но MAX советует до 20 символов при одной кнопке в ряду и до 10 при двух.
  • Метка в ссылке: до 128 символов. Длиннее бот не получит. Личных данных в неё не кладите.

Заведите отдельную метку на каждый пост и объявление. Иначе через месяц не узнаете, откуда пришёл покупатель.

Шаг 5. Рассылка в MAX

Бот пишет только тем, кто сам его запустил. Купить или загрузить чужую базу и написать по ней нельзя. База собирается ссылками на бота, поэтому начинать надо до того, как рассылка понадобится.

Технические пределы MAX: 4 000 символов текста, 12 вложений в сообщении, 2 сообщения в секунду в один чат, до 30 запросов в секунду на бота. Длинные тексты придётся делить, а массовую отправку ставить в очередь. Хороший конструктор делает это сам.

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

Если переезжаете с базой

Самая неприятная находка за время работы с MAX. В выгрузке Salebot для MAX в колонке id лежит номер диалога, а не id человека. По виду их не отличить, диапазоны совпадают. Загрузите такой файл как есть, и бот будет писать не туда или получать отказ.

Перевести номер в человека можно запросом GET /chats/{chat_id} от имени бота: id лежит в поле dialog_with_user.user_id. Если загружаете базу через сервис, спросите, умеет ли он это. Проверьте на двух-трёх своих номерах до массовой отправки.

Коротко: где теряют время

  • Подают бота на модерацию в день запуска. Закладывайте 48 рабочих часов.
  • Правят карточку опубликованного бота и снова попадают на проверку.
  • Отключают проверку сертификата вместо установки корневого сертификата Минцифры.
  • Не замечают, что вебхук отписался после простоя.
  • Раздают одну ссылку без меток во все каналы.
  • Начинают собирать базу, когда рассылка нужна уже завтра.

Собрать бота в MAX без кода

Подключите бота токеном, соберите воронку на свежий пост и посмотрите, сколько людей дойдёт до заявки. Не подойдёт — не оплачивайте: кабинет встанет на паузу сам.

Попробовать бесплатно7 дней бесплатно, карта не нужна

Источники: документация MAX для разработчиков (dev.max.ru), раздел о платформе «MAX для партнёров» и справочник методов API. Правила MAX меняются, проверено 4 ноября 2026.

Ещё по теме

Боты и MAX