MAX для бизнеса без лишней магии
MAX для бизнеса без лишней магии

MAX в России постепенно превращается не просто в «ещё один мессенджер», а в канал, который всё чаще рассматривают как рабочую точку контакта с пользователем: для уведомлений, сервисных сообщений, внутренних ботов и групповых сценариев. И как только компания доходит до реальной интеграции, почти всегда начинается знакомая история: сначала один скрипт на отправку уведомлений, потом второй на обработку входящих сообщений, потом отдельная логика для групп, потом ещё пара «временных» костылей. Через месяц это уже не интеграция, а набор хрупких связок, которые страшно трогать.

Именно эту проблему и решает max.botservice: один сервис, который закрывает сразу несколько задач. Он принимает события из MAX, умеет работать как бот в личных сообщениях и группах, хранит контакты, отдает HTTP API для внешних систем и позволяет использовать MAX как полноценный канал уведомлений без необходимости плодить десяток вспомогательных утилит.

Исходный код:https://github.com/DmitryBoyko/max-bot/tree/main

Что это такое

Если коротко, max.botservice — это HTTP-сервис на Go, который стоит между API MAX и вашими внутренними системами.

С одной стороны, он принимает события от MAX: сообщения пользователей, действия в чатах, обновления по группам. С другой — отдает наружу собственные HTTP-эндпоинты, через которые ваши backend-сервисы, CRM, ERP, мониторинг или внутренние панели могут отправлять сообщения пользователям и в групповые чаты.

То есть это не просто «бот», который отвечает на команды. Это скорее инфраструктурный слой для интеграции с MAX: один процесс, один конфиг, одна точка входа.

Как это выглядит для пользователя

В личке бот работает как понятный сервисный интерфейс. Пользователь пишет ему и получает меню с кнопками: можно посмотреть ID чата, открыть список групп, настроить уведомления, привязать телефон или отвязать его.

Это важно в прикладных сценариях: если вы хотите слать уведомления не просто в абстрактный чат, а конкретному человеку из корпоративной или клиентской системы, привязка номера телефона дает нормальный мост между вашим учетом пользователей и аккаунтом в MAX.

В группах логика аккуратнее. Бот не шумит там, где он просто присутствует «для галочки». Он показывает меню и кнопку «ID этого чата» только в том случае, если у него есть права администратора. Такой подход особенно полезен для рабочих чатов, где лишние сервисные сообщения быстро начинают раздражать.

Как сервис получает события из MAX

Здесь поддерживаются оба базовых сценария, и это удобно, потому что у команд на разных стадиях внедрения обычно разные условия.

Первый вариант — webhook. MAX сам отправляет события на ваш внешний URL, например на POST /webhook. Это хороший продакшн-режим: события приходят сразу, без постоянного опроса. Но для него нужен доступный снаружи HTTPS-адрес, а значит, придется подумать о публикации сервиса и базовой защите входящей точки.

Второй вариант — long polling. Если WEBHOOK_URL в конфиге не задан, сервис сам ходит в MAX за обновлениями через GET /updates. Такой режим особенно хорош на старте проекта, в тестовой среде или там, где пока не хочется поднимать внешний HTTPS-контур. При этом сервис сам снимает старые webhook-подписки, чтобы не получить дубли событий.

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

Где хранятся данные

Чтобы не усложнять внедрение, сервис использует SQLite. В базе лежат две основные сущности:

  • контакты — привязка номера телефона к пользователю MAX;

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

Для многих команд это сильный плюс: не нужно ради запуска поднимать отдельный PostgreSQL или тащить еще один инфраструктурный компонент. Достаточно каталога ./data, а в Docker — обычного volume.

Отдельно полезно, что список групп сервис обновляет сам: при старте и затем периодически по таймеру. Если бота добавили в новый чат, изменили его роль или выдали админские права, сервис это подхватит без ручного вмешательства. При этом приветствие и кнопка с ID отправляются один раз, без навязчивого повторения.

Что можно делать через внешнее API

Для интеграции с остальными системами сервис отдает обычный HTTP API, без экзотики и сложных SDK.

Основные сценарии такие:

  • POST /send-message — отправка сообщения в личный чат или по chat ID; при необходимости можно использовать режим private: true, чтобы искать получателя по контакту.

  • POST /send-by-phone — отправка сообщения по номеру телефона; сервис находит пользователя в локальной таблице контактов и доставляет текст в MAX.

  • POST /send-to-group-by-chatid — отправка сообщения в конкретную группу по её chat_id.

Плюс есть служебные методы:

  • POST /refresh-group-chats — принудительно обновить кеш групп;

  • GET /group-chats — получить список известных групп;

  • GET /metrics — забрать простой JSON со счетчиками запросов, ошибок и срабатываний rate limit;

  • GET / — редирект на страницу бота в MAX.

На практике это позволяет быстро подключить MAX к существующему ландшафту. Например, backend системы заказов может слать пользователю уведомление о статусе заявки, а система мониторинга — писать в рабочую группу о сбоях или инцидентах.

Безопасность без перегруза

У таких сервисов всегда есть риск впасть в две крайности: либо оставить всё «как есть» и получить дыру, либо обвесить интеграцию сложной защитой так, что поддерживать её станет тяжелее, чем сам бот. В max.botservice сделан разумный баланс.

Если задан WEBHOOK_SECRET, то POST /webhook ожидает заголовок X-Webhook-Secret. Если значение не совпадает, сервис возвращает 401. Это простой и рабочий способ отсечь лишние входящие запросы.

Если задан API_KEY, то административные методы вроде /refresh-group-chats и /group-chats принимают запросы только с заголовком X-API-Key. Это позволяет не выносить служебное API в отдельный контур, но и не оставлять его полностью открытым.

Для методов отправки сообщений предусмотрен rate limit: по умолчанию задан лимит запросов в минуту, который можно настроить или отключить. Если лимит превышен, сервис вернет 429. Это защита не только от злоумышленников, но и от обычных внутренних ошибок — например, когда сбойный скрипт начинает слать сообщения по кругу.

Весь этот набор включается переменными окружения, без переписывания приложения.

Развертывание

Запуск предельно прямолинейный. Нужен Go версии 1.251.25 и выше. Дальше:

  1. Клонируете репозиторий.

  2. Копируете .env.example в .env.

  3. Заполняете минимум BOT_TOKEN.

  4. Запускаете через go run ./cmd или собираете Docker-образ.

  5. При необходимости поднимаете через docker-compose.

Порт по умолчанию — 8080, но его можно изменить через PORT.

Логи можно переключить в JSON через LOG_FORMAT=json, а детализацию — через LOG_LEVEL. Внутри используется стандартный slog, так что стек остается легким и предсказуемым, без лишних зависимостей.

Почему это особенно актуально сейчас

На фоне курса на расширение использования MAX в России выигрывают решения, которые можно встроить быстро и без тяжелой инфраструктурной реформы. Бизнесу и внутренним IT-командам редко нужен «идеальный платформенный комбайн» на первом этапе. Обычно нужен понятный, поднимаемый за вечер сервис, который уже завтра сможет:

  • принимать входящие сообщения от пользователей;

  • отправлять уведомления из внутренних систем;

  • работать с групповыми чатами;

  • давать минимальную управляемость и наблюдаемость;

  • не требовать отдельной команды на сопровождение.

Именно в таком сценарии max.botservice выглядит особенно уместно. Он не пытается стать всем сразу. Он решает конкретную задачу: превращает MAX из просто мессенджера в рабочий транспорт для сервисных коммуникаций.

Кому это подойдет

В первую очередь — командам, которые уже смотрят в сторону MAX как канала взаимодействия с пользователями или сотрудниками и не хотят строить интеграцию из разрозненных кусков.

Это хороший вариант, если вам нужен:

  • бот с внятным пользовательским меню;

  • канал уведомлений из backend-сервисов;

  • отправка сообщений в личные и групповые чаты;

  • простое локальное хранение контактов и чатов;

  • минимальный порог входа для запуска и сопровождения.

Итог здесь довольно практичный: один бинарник, одна база, один конфиг и предсказуемое поведение в работе. А это в интеграционных историях обычно ценится куда выше, чем «гибкость на будущее», которая потом превращается в бесконечный зоопарк скриптов.

Комментарии (49)


  1. qwe101
    22.03.2026 05:59

    Как бы ни относиться к МАХ, нам с этим жить.(Сам ставить это на рабочий телефон не собираюсь).


    1. KSA_GT
      22.03.2026 05:59

      Вот сами и живите с MAX :) А остальные будут искать любые способы этого не делать.


      1. shornikov
        22.03.2026 05:59

        Ну давайте, убедите всех бухгалтеров/etc коммуникация с которыми вам необходима - бороться с махом вместе с вами...
        Я с автором согласен. Он есть, и идет первым номером по умолчанию, как почта РФ или Автоваз. Вы же идете на почту за пришедшими посылками и садитесь в такси на базе Лады?

        Мне макс не нравится, но я не хочу гадать - В удаленном городе у коллег все хорошо или они не могут мне в телегу достучаться, потому что она у них не работает.


        1. Sigarr
          22.03.2026 05:59

          Бухгалтеров не надо убеждать. Они Электронной почтой пользуются всю дорогу


    1. error911
      22.03.2026 05:59

      С ним жить точно, если относиться как ты


  1. NineInchNail
    22.03.2026 05:59

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


  1. Konstantin-2
    22.03.2026 05:59

    Вы не упомянули в статье важный момент о том, что использовать ботов под Макс могут лишь особая категория людей. Точнее, люди не могут, только юридические организации.


    1. tuxi
      22.03.2026 05:59

      Я вот тоже не понимаю, как это все собираются развивать со старта вводя "белый список" кому это доступно. Какая-то стрельба самим себе в ногу и с радостным выражением на лице.


      1. WLMike
        22.03.2026 05:59

        Да, уж. Телега очень удобна чтобы первый содержательный проект сделать для начинающего программиста, прикрутить минимальный мониторинг к маленькому пет проекту или просто личный ботик для чего-то сделать. Все похерили


      1. vmkazakoff
        22.03.2026 05:59

        1) некоторые сервисы "выстреливали" как раз из-за ограничений на вход. Их всплмнившегося - клабхаус. Правда это точно не сценарий маха, так что мимо ))

        2) они делают это умышленно - создать бота для геолокация закладок - не получится без привязки к реальному паспорту. Это уже не просто симку купить, ИП открыть это сильно больше проверок. Аналогично со всякими шлюхоботами. В телеге с ними приходилось бороться сложными фильтрами сообщений, тут фильтр сделали на входе.


        1. tuxi
          22.03.2026 05:59

          не понятно зачем юрлицо. Есть же госуслуги, кто хочет, пусть подтверждает доступ к АПИ через госуслуги. Вот и паспорт.


          1. RealFSA
            22.03.2026 05:59

            Смысл не чтоб было удобно, а чтоб налоги заплатили. И опять-же контроль за юрлицами какой никакой .


            1. tuxi
              22.03.2026 05:59

              Налоги с чего? За использование АПИ ботов?


              1. RealFSA
                22.03.2026 05:59

                Хочешь мониторить кормушку для котика, через бот? Становись в позицию Юрлица, плати налоги проходи проверки.


        1. Krasovsky
          22.03.2026 05:59

          Это не сервис что бы выстреливать. Ему плевать на выстреливаемость потому что это навязанное решение, для которго зачистили поляну и которое финансируется из налогов тех, кому навязывается.

          Фактически у людей просто отобрали функциональность чат ботов


    1. RoasterToaster
      22.03.2026 05:59


      1. nooblik
        22.03.2026 05:59

        Это чтоб в случае чего к тебе пришли и набутылили с огромными штрафами


      1. exelens
        22.03.2026 05:59

        Так и есть

        Там в названии канала будет инн )))


    1. DmitriyColeman
      22.03.2026 05:59

      Возможно, это сделано для того, чтобы не начали появляться боты, пересылающие сообщения из чатов в нормальные мессенджеры и обратно


  1. RoasterToaster
    22.03.2026 05:59

    попробовал жене канал настроить- а там комментариев нет "встроенной функции комментариев в каналах МАХ действительно нет, и это не ошибка с вашей стороны. Мессенджер пока не имеет такой нативной возможности, как Telegram" -ого нежданчик

    -

    через ваше решение комментарии прикрутить не получится?


    1. vmkazakoff
      22.03.2026 05:59

      Это же не "решение". Это прослойка.

      Комментарии делаются так:

      • Есть чат и канал

      • Бот читает и то и то

      • Бот постит (форвард) сообщения из канала в чат

      • Бот считает все реплаи (включая ответы на ответы) в чате

      • Бот добавляет кнопку под пост в канал и обновляет счётчик на ней

      Но вообще есть и готовые решения. Которые прикручиваются в пару кликов. Правда все кривые и работают по сути как отдельный сайт. Буэээ


      1. RoasterToaster
        22.03.2026 05:59

        Получается что все дублируется, вместо 5 каналов будет 10


        1. vmkazakoff
          22.03.2026 05:59

          Так в телеге же то же самое. Комментарии в ней это просто чат. Только в него не обязательно заходить, чтобы оставить коммент, когда вы проваливаетесь в комментарии вы просто видите срез сообщений. В махе в чистом виде без нормального захода в чат не получится.


  1. Dhwtj
    22.03.2026 05:59

    Интернет почините, хотя бы проводной. А то он заблокирован с обоих сторон.

    И тогда возможно я посмотрю на Макс без брезгливости


    1. Bogomazovsm
      22.03.2026 05:59

      С обЕих


  1. Furriest
    22.03.2026 05:59

    Неожиданный хабрасуицид, это ж надо настолько не думать о последствиях.


    1. RoasterToaster
      22.03.2026 05:59

      Может он думал что тут какое-то не политизированное общество технических специалистов ))


      1. duronus
        22.03.2026 05:59

        Дык политика уже влезла к технарям, поэтому теперь приходиться быть еще и юристом. Вот сделаешь ты иконку для канала "не кошерную" так тебе штраф нарисуют))


  1. Nyase
    22.03.2026 05:59

    MAX в России постепенно превращается не просто в «ещё один мессенджер»

    Но есть нюанс.


  1. Krasovsky
    22.03.2026 05:59

    Можно а зачем?


  1. Aluvian
    22.03.2026 05:59

    Макс это Троян, в который запихнули мессенджер. Встраивать трояны даже в песочницу западло


    1. GSnick
      22.03.2026 05:59

      Почему троян?


      1. Vladimir_III
        22.03.2026 05:59

        Его VK делает, которое все данные сразу ФСБ сливает без промедления


  1. exTvr
    22.03.2026 05:59

    Можно. Но зачем?/s


  1. badkun
    22.03.2026 05:59

    А зачем, да еще и не юрикам нельзя, буд то только им нужны боты.

    Жаль не хватает кармы минуснуть(


  1. koleso_O
    22.03.2026 05:59

    Судя по комментам, всем интересно просто еще разок перетереть за Макс, но не обсудить предложенный в этой статье сервис.

    Я все-таки накину немного накинусь на кодовую базу…

    1) Не понял прикола с моками - почему не использовать уже готовые от uber, текущие мок-файлы идут в финальную сборку (а этого быть не должно), автор же в курсе?

    2) какие-то странные метрики - почему нет зависимостей на всеми используемый прометей?


    1. winkyBrain
      22.03.2026 05:59

      автор в ридонли и вряд ли вам ответит в ближайшее время)


      1. mmMike
        22.03.2026 05:59

        автор еще и неприкасаемый (карму слить недоступно).
        А судя по статьям станочник широкого профиля. на любые темы.

        В общем заказуха...


        1. Squoworode
          22.03.2026 05:59

          А его уже слили до read-only, дальше просто некуда


    1. itstranger
      22.03.2026 05:59

      Я пробежался по комитам и есть ощущение, что проект полностью навайбкожен. Ничего против использования в программировании нейронок не имею, но такое ощущение, что автор в целом плохо разбирается в программировании. Отсюда и вск вышеописанные проблемы. Хотя, могу ошибаться.


  1. theindiefly
    22.03.2026 05:59

    Можно, а зачем? (с)


  1. progrocket3
    22.03.2026 05:59

    Как быстро встроить MAX в свои системы

    Достаточно его установить, дальше он сам


  1. HE_Hy_OK
    22.03.2026 05:59

    лучше тел на AOSP с гапсами прошью, чем на ос с максом


  1. Swordsman
    22.03.2026 05:59

    Гори в огне со своим мах


  1. bagrintsev
    22.03.2026 05:59

    Целый день возился с этим максом, не могу его заставить из микротика отправлять сообщения Dude. С телеграмм все просто было - обычный Get запрос, id группы, пароль, все в одной строке.

    У Макса нужен Post запрос, который микротиком отправляется через пень колоду, куча json параметров и в результате ошибка 404, хотя все пингуется.

    В результате так и не настроил. Из техподдержки один бесполезный бот и никаких примеров/мануалов.

    Думаю, проще алерты будет настроить на вк или другой более вменяемый мессенджер на белых списках, яндекс там или какой еще поищу.


    1. bagrintsev
      22.03.2026 05:59

      Ну в общем настроил я отправку сообщений в MAX.

      Кому надо ловите заветную строку:

      /tool fetch url="https://platform-api.max.ru/messages?chat_id=-12345678901234" http-method=post http-header-field="Content-Type:application/json,Authorization:f9**************gm" http-data="{"text": "[Time] - [Device.Name] is [Service.Status]"}" keep-result=no;


      1. bagrintsev
        22.03.2026 05:59

        Примечание: сервер не дает вставить правильную строку. Замените в этой строке знак плюса на левый слеш для экранирования (хабр не дает вставить этот символ):
        /tool fetch url="https://platform-api.max.ru/messages+?chat_id=-12345678901234" http-method=post http-header-field="Content-Type:application/json,Authorization:f9**************gm" http-data="{+"text+": +" MikroTik+"}" keep-result=no;

        Естественно, чат ид и строку авторизации вставьте свою.


  1. itstranger
    22.03.2026 05:59

    В то время, как tg давно создал mini app и полноценную экосистему внутри своего приложения, мах завёз ботов без какой-либо тех. поддержки, доступных не всем, так ещё и работающих криво судя по комментариям.

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

    Если что, не пиарю вк (потому что его современные владельцы создали макс), просто говорю какое же говно вам пытаются скормить взамен тг и других мессенджеров. Честно, учитывая какое отношение к максу у народа, я бы просто его уже закрыл и не мучил. Но учитывая, что макс принадлежит, вроде как сынку Кириенко и что на нём наверное пилят огромные бабки, никто ничего сворачивать не собирается.


  1. Ne_Vaybkoder_Czestn0
    22.03.2026 05:59

    Рано или поздно... Неее, я не скачаю макс