Как добавить кнопку мессенджера MAX на сайт: напрямую, через виджет и CRM
Создание сайта

Как добавить кнопку мессенджера MAX на сайт: напрямую, через виджет и CRM

Самый надёжный вариант — скопировать HTTPS-ссылку на профиль или канал из самого MAX либо поставить подтверждённый диплинк бота https://max.ru/<botName>?start=<payload> в обычный тег <a>. Такая кнопка не требует стороннего JavaScript.

Михаил Сорокин
Михаил Сорокин
Обозреватель SaaS-сервисов13 мин

Самый надёжный вариант — скопировать HTTPS-ссылку на профиль или канал из самого MAX либо поставить подтверждённый диплинк бота https://max.ru/<botName>?start=<payload> в обычный тег <a>. Такая кнопка не требует стороннего JavaScript. Плавающий SaaS-виджет нужен ради дизайна и аналитики, агрегатор — ради единого окна операторов, а бот с CRM — ради автоматизации и передачи источника. На 4 сентября 2026 года у MAX есть официальные логотипы, но готовый официальный код кнопки для внешнего сайта ещё не опубликован.

Что должна открывать кнопка MAX

До вёрстки определите целевое действие. От него зависят ссылка, подпись и способ измерения.

  • Личный или рабочий профиль. Посетитель должен найти конкретного человека и написать ему. Подходит владельцу небольшого бизнеса, который отвечает сам.
  • Канал. Посетитель читает публикации или подписывается. Подписывайте такую кнопку «Перейти в канал» или «Подписаться в MAX», а не «Написать».
  • Бот. Посетитель запускает сценарий консультации, подбора, проверки заказа или передачи обращения оператору. Бот позволяет получить метку источника.
  • Единое окно поддержки. Сообщение из MAX попадает в очередь вместе с другими каналами, закрепляется за сотрудником и сохраняется в карточке клиента. Для этого одной ссылки мало: нужен агрегатор или CRM-интеграция.

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

Сначала получите правильную ссылку

Используйте домен max.ru и HTTPS. Не собирайте адрес из номера телефона и не заменяйте домен похожим. У MAX нет подтверждённого универсального аналога wa.me/7999..., который открывал бы чат по номеру.

Ссылка на профиль

В мобильном приложении откройте профиль, нажмите QR-код и выберите «Поделиться» или «Скопировать ссылку». Другой официальный путь: «Контакты» → меню добавления → «Пригласить по ссылке».

Созданные приглашения выглядят как https://max.ru/u/<длинный_токен>. Токен выдаёт MAX: его нельзя вычислить из имени или телефона. Вставляйте скопированный адрес целиком. Затем откройте его в приватном окне и проверьте из аккаунта, которого нет в ваших контактах.

Ссылка на канал

Откройте профиль канала → «Подписчики» или настройки → «Пригласить по ссылке». Там же MAX позволяет создать QR-код. У публичного канала может быть короткий адрес вида https://max.ru/<никнейм>, у приглашения — адрес вида https://max.ru/join/<токен>.

Копируйте ссылку из интерфейса: приватный канал может требовать заявку, а после смены никнейма старый публичный адрес перестанет работать. Ссылка на отдельный пост max.ru/.../<id-поста> ведёт к публикации, а не на главный экран канала.

Ссылка на бота и метка источника

Официальная документация MAX по диплинкам задаёт такой формат:

https://max.ru/<botName>?start=<payload>

Например:

https://max.ru/SupportBot?start=site_footer_v1

botName — ник бота без символа @, payload — строка длиной до 128 символов. Для нескольких параметров соберите одну короткую строку. Не передавайте в URL телефон, email, номер договора или другие конфиденциальные данные. Если боту нужен контекст заказа, положите в ссылку одноразовый непрозрачный идентификатор, а данные получите на сервере.

После перехода пользователь видит страницу бота и запускает его. Сам переход не отправляет готовое сообщение. Бот получает событие bot_started с payload, только когда сценарий действительно стартовал. Именно это событие полезнее считать конверсией, чем один клик по кнопке. Механизм диплинков официально поддерживается в MAX для iOS 2.7.0 и выше, для Android 2.9.0 и выше; на старом клиенте предложите обновление и сохраните браузерный путь.

Формат https://max.ru/:share?text=<текст> решает другую задачу: открывает экран выбора чата или канала и подставляет текст. Он не направляет сообщение конкретной компании. Для мини-приложений существует ?startapp=, но обычной кнопке связи он не нужен.

Какой способ выбрать

Цены и функции в таблице проверены 4 сентября 2026 года. Перед оплатой перепроверьте тариф: SaaS-сервисы меняют лимиты чаще, чем код кнопки.

Способ или сервис Что получает посетитель и команда Цена Аналитика и источник Что проверить до установки
Своя HTML-ссылка Прямой переход в профиль, канал или бота; переписка остаётся в MAX Бесплатно Свой max_click; у бота — start и bot_started Ссылка, приватность, подпись CTA, мобильный и web-сценарий
WritesApp Плавающая мультикнопка с MAX и другими каналами 0 ₽ до 3 000 посетителей, с брендингом; Pro — 490 ₽/мес. без брендинга 10 событий GA4 на всех тарифах; 17 целей Метрики на Pro Внешний widget.js, cookies, CSP, скорость; вставлять скопированный max.ru, а не пример max.me с лендинга
Widster MAX как ссылка внутри «Мультикнопки», правила показа и другие виджеты 10 дней теста; от 1 990 ₽/мес. за 4 виджета События показа, открытия и перехода для Метрики/JS Это редирект, а не единое окно MAX; формы отдельно обрабатывают персональные данные; рабочие домены и копирайт уточнить
Umnico Несколько MAX-аккаунтов, общий inbox, операторы, история, CRM 3 500 ₽ за месяц или 27 300 ₽ за год; доп. оператор — 325 ₽/мес. Диалоги, статусы и воронка; перенос сайта/UTM в чат публично не подтверждён QR-сессия аккаунта, двухфакторная защита, отзыв доступа, экспорт/удаление истории
ПланФикс MAX-бот, сообщения в задачах, сценарии, распределение и CRM-контекст Plan A — от $4 за пользователя в месяц при оплате года Payload можно записать в поля и отчёты после настройки Нужны бот и своя кнопка; токен только на сервере; политика хранения и трансграничная передача данных

Для одного менеджера начните со своей ссылки. Подписка на floating-виджет оправдана, если нужны мультикнопка, правила показа или аналитика без разработки. Агрегатор нужен, когда на обращения отвечают несколько сотрудников. Бот и CRM выбирайте, когда важно автоматически распознавать источник, тему обращения или заказ.

Как поставить обычную HTML-кнопку

Добавьте доступную ссылку

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

<a
  class="max-button"
  href="https://max.ru/SupportBot?start=site_footer_v1"
  target="_blank"
  rel="noopener noreferrer"
  aria-label="Написать службе поддержки в MAX"
  data-max-link
  data-placement="footer"
>
  
  <span>Написать в MAX</span>
</a>

target="_blank" сохраняет страницу сайта, а noopener отделяет новое окно от исходного. noreferrer дополнительно не передаёт MAX адрес текущей страницы. nofollow для обычной контактной ссылки не требуется.

У декоративной иконки пустой alt: понятное имя уже задают текст и aria-label. Если на кнопке только знак, aria-label обязателен.

Оформите кнопку без подмены логотипа

.max-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 10px 16px;
  border-radius: 12px;
  background: #172033;
  color: #fff;
  font: 600 16px/1.25 system-ui, sans-serif;
  text-decoration: none;
}

.max-button:hover {
  background: #25314b;
}

.max-button:focus-visible {
  outline: 3px solid #00bfff;
  outline-offset: 3px;
}

.max-button img {
  flex: 0 0 24px;
  object-fit: contain;
}

.max-button--floating {
  position: fixed;
  right: max(16px, env(safe-area-inset-right));
  bottom: max(16px, env(safe-area-inset-bottom));
  z-index: 1000;
  box-shadow: 0 8px 24px rgb(0 0 0 / 24%);
}

Для плавающего варианта добавьте класс max-button--floating. Проверьте, что кнопка не закрывает cookie-баннер, корзину, чат поддержки и нижнюю навигацию на телефоне. Значение z-index: 999999 не лечит конфликт слоёв — оно только переносит конфликт на другой элемент.

Запишите клик в аналитику

Один обработчик может обслуживать кнопки в шапке, карточках и футере. Он не задерживает переход и не требует встраивать JavaScript в onclick. В примере выберите один способ отправки в Google Analytics: через Google Tag Manager или прямой gtag, иначе можно получить дубль.

<script>
  document.addEventListener('click', function (event) {
    const link = event.target.closest('a[data-max-link]');
    if (!link) return;

    const params = {
      channel: 'max',
      placement: link.dataset.placement || 'unknown'
    };

    const useGoogleTagManager = true; // false, если используется прямой gtag
    if (useGoogleTagManager) {
      window.dataLayer = window.dataLayer || [];
      window.dataLayer.push({ event: 'max_click', ...params });
    } else if (typeof window.gtag === 'function') {
      window.gtag('event', 'max_click', params);
    }

    const counterId = 12345678; // замените на ID своей Яндекс.Метрики
    if (typeof window.ym === 'function') {
      window.ym(counterId, 'reachGoal', 'max_click', params);
    }
  });
</script>

Создайте один словарь размещений: header, product_card, pricing, footer, floating. Так отчёт не превратится в набор почти одинаковых целей. Не добавляйте произвольные utm_* к профилю или каналу: MAX не документирует их передачу адресату. Для бота используйте start, для обычной ссылки — событие сайта или собственный редирект-счётчик.

Клик показывает намерение, но не доказывает, что человек вошёл в MAX, нажал «Начать», отправил сообщение или купил. Стройте воронку из разных событий: max_clickbot_started или новый диалог → взятие оператором → квалифицированный лид → сделка.

Как подключить сторонний плавающий виджет

Проверьте, что MAX поддерживается фактически

Попросите сервис принять вашу скопированную ссылку https://max.ru/... и проверьте предпросмотр. Наличие слова MAX на рекламной странице недостаточно: проверьте переход на iOS, Android и в десктопном браузере без авторизации. Отдельно спросите, является ли MAX простой ссылкой или сервис действительно получает сообщения.

Установите скрипт и сохраните резервную ссылку

Например, документация WritesApp публикует такой загрузчик:

<!-- Оставьте обычную ссылку MAX в разделе «Контакты» как резервную. -->
<script
  src="https://writesapp.ru/widget.js"
  data-widget-id="YOUR_WIDGET_ID"
  async
  referrerpolicy="strict-origin-when-cross-origin"
></script>

<noscript>
  <a
    href="https://max.ru/SupportBot?start=site_noscript_v1"
    target="_blank"
    rel="noopener noreferrer"
  >Написать в MAX</a>
</noscript>

Замените YOUR_WIDGET_ID значением из личного кабинета. async не блокирует разбор HTML, но внешний файл всё равно добавляет DNS, TLS и выполнение JavaScript. Атрибут referrerpolicy ограничивает детализацию реферера; он не отменяет данные, которые виджет собирает собственными запросами.

Не скрывайте обычную контактную ссылку по событию load скрипта: файл мог загрузиться, а сам виджет — не отрисоваться. Лучше оставить резервную ссылку в футере постоянно или убирать её только после подтверждённого события готовности из API сервиса.

Согласуйте CSP, механизм согласия и скорость

Сначала включите Content-Security-Policy-Report-Only, добавьте документированный домен скрипта и посмотрите нарушения в консоли и отчётах. Не разрешайте *, unsafe-eval и все сторонние фреймы ради одной кнопки. Виджет может обращаться к отдельным API, сетям доставки контента (CDN), хранилищам изображений и WebSocket: полный список запросите у поставщика и подтвердите во вкладке Network. В опубликованном фрагменте загрузчика нет фиксированной версии или хеша Subresource Integrity (SRI), поэтому нельзя просто добавить надёжный integrity к автоматически обновляемому widget.js.

Если скрипт сохраняет cookies, IP, устройство, действия или поля формы, отразите поставщика в политике и карте обработки данных. Решение о загрузке до согласия зависит от фактической функции и правового основания; это надо согласовать с ответственным за персональные данные. Простая локальная <a>-ссылка ничего не отправляет MAX до клика и потому заметно проще.

Снимите Lighthouse или WebPageTest до и после установки на мобильном профиле. Сравнивайте не только общий балл, но и размер JS, число запросов, Total Blocking Time, Interaction to Next Paint и сдвиги макета. Рекламное «не замедляет сайт» не заменяет измерение на вашей странице.

Как собрать обращения в омниканальном агрегаторе

Агрегатор нужен, когда сообщения нельзя оставлять на личном телефоне одного менеджера. Он принимает диалоги в общий inbox, назначает ответственного, хранит историю и связывает канал с CRM.

Порядок внедрения такой:

  1. Выберите тип подключения: личная MAX-сессия по QR или официальный бот/API. Для регулируемых процессов и автоматизации предпочтительнее контур, в котором токен, права и события можно контролировать на сервере.
  2. Подключите тестовый канал и сразу проверьте отзыв сессии, двухфакторную защиту, роли сотрудников и доступ администратора. Не отключайте 2FA без оценки риска.
  3. Создайте очередь: рабочее время, ответственный по умолчанию, таймер первого ответа, переадресация просроченного диалога.
  4. Настройте карточку контакта и дедупликацию. Один человек может прийти из MAX, формы сайта и email; совпадение по имени ненадёжно.
  5. Проверьте текст, фото, документы, голосовые сообщения, ответы на конкретное сообщение, групповые чаты и статусы доставки. Поддержка «MAX» не гарантирует равенство всех типов сообщений.
  6. Настройте handoff: бот сообщает о передаче, создаёт задачу, ставит диалог в очередь и перестаёт отправлять автоматические ответы, пока работает оператор.
  7. Выгрузите тестовый диалог и удалите тестовый контакт. Так вы заранее узнаете, доступны ли экспорт, сроки хранения и выполнение запросов субъекта данных.

Если на сайте есть pre-chat-форма, не предполагайте, что её имя, телефон и UTM автоматически попадут в диалог MAX. Это два разных потока. Нужна явная связка: сервер создаёт одноразовый идентификатор, бот получает его в start, а CRM объединяет записи после подтверждения пользователя.

Как связать кнопку с ботом и CRM

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

Подготовьте серверную часть

Бот должен пройти модерацию. Токен храните только в секретах серверного окружения: его нельзя помещать в HTML, JavaScript, data-атрибуты или URL кнопки. Production-сценарий принимайте через Webhook по HTTPS с доверенным сертификатом; включите событие bot_started.

Кодируйте место входа

Дайте каждой кнопке короткий payload:

site_header_v1
site_product_482_v1
site_pricing_v1
qr_exhibition_v1

Версия пригодится после изменения сценария. Идентификатор товара допустим, если он публичный; данные клиента — нет. Для персонального заказа создавайте одноразовый случайный токен с коротким сроком жизни.

Разберите событие запуска

Когда приходит bot_started, сервер должен:

  • проверить длину и допустимый формат payload;
  • найти источник по белому списку, а неизвестное значение записать как unknown;
  • создать или обновить контакт без опасной дедупликации только по имени;
  • записать placement, кампанию и время старта;
  • показать релевантное меню;
  • по запросу человека передать диалог оператору и поставить задачу в CRM.

Не смешивайте max_click и bot_started в одном показателе. Разница между ними показывает потери на переходе, авторизации и запуске бота.

Как использовать логотип и QR-код

У MAX доступны знак и версия с текстом. Скачайте исходник из брендбука, не перерисовывайте его, не меняйте пропорции и выбирайте вариант с достаточным контрастом. Разместите файл на своём домене: хотлинк на чужой CDN создаёт ещё одну точку отказа и может измениться без вашего релиза.

Готового официального embed-виджета для сайта на дату проверки нет: раздел «Виджеты и кнопки» в брендбуке помечен «Скоро». Поэтому собственная HTML-кнопка с официальным знаком корректнее, чем код неизвестного происхождения, названный «официальным».

QR-код полезен на десктопе, в печати и на экране презентации. Генерируйте его из уже проверенной ссылки, добавляйте рядом подпись и короткий читаемый адрес. Проверьте код двумя камерами, при плохом освещении и в печатном размере. QR не заменяет кликабельную ссылку для мобильного пользователя.

Как проверить результат после установки

Не ограничивайтесь тем, что кнопка появилась на экране. Пройдите матрицу сценариев:

  • iPhone и Android с актуальным MAX: приложение открывается на нужном профиле, канале или боте;
  • телефон без приложения: остаётся понятная HTTPS-страница, а не пустой экран;
  • desktop без активной сессии: видна web-страница и понятен вход или установка;
  • desktop с MAX: переход не теряет адресата и payload;
  • приватное окно и пользователь не из контактов: профиль действительно допускает начало общения;
  • приватный канал: кнопка честно ведёт к заявке, если она включена;
  • бот: после «Начать» приходит bot_started с нужной меткой;
  • JavaScript отключён, CDN заблокирован или включён ad blocker: статическая ссылка остаётся;
  • клавиатура и программа экранного доступа: фокус виден, название кнопки понятно;
  • узкий экран: кнопка не перекрывает оплату, меню, consent-баннер и системные safe areas;
  • аналитика: один клик создаёт одно событие, а не два из-за одновременного inline- и делегированного обработчика;
  • агрегатор/CRM: тестовый диалог назначается, оператор отвечает, история сохраняется, экспорт и удаление работают.

После теста запишите владельца ссылки и место её хранения. При смене никнейма канала, пересоздании приглашения или отзыве сессии агрегатора кто-то должен обновить сайт и повторить проверку.

Типичные ошибки

Конструировать ссылку из телефона или ставитьmax.me

Подтверждённые страницы и диплинки MAX используют https://max.ru/.... Для профиля копируйте сгенерированное приглашение; для бота используйте документированный формат. Похожий домен из статьи или лендинга сервиса не становится стандартом.

Вести кнопкой «Написать» на канал

Канал предназначен для чтения и подписки. Несоответствие CTA повышает отказы и портит аналитику. Для поддержки направляйте в профиль или бота.

Считать клик обращением

Между кликом и сообщением есть web-страница, авторизация и кнопка «Начать». Разделяйте события и смотрите конверсию между этапами.

Передавать персональные данные в payload

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

Загружать внешний скрипт без резервной ссылки

Сбой CDN, CSP или блокировщик уберёт единственный контактный канал. Оставьте обычную ссылку в футере и <noscript>.

Вставлять токен бота на сайт

Посетитель увидит секрет в исходном коде. Браузер должен знать только публичный URL бота; API-токен остаётся на сервере.

Давать внешнему виджету избыточные разрешения CSP

script-src * и unsafe-eval расширяют поверхность атаки всего сайта. Соберите реальные runtime-домены и разрешите только их.

Не проверять форму и передачу оператору

Успешная отправка формы ещё не означает созданную CRM-задачу, а фраза «передаю специалисту» — назначенного сотрудника. Проверяйте полный маршрут с чтением результата.

Автор статьи

Михаил Сорокин — Обозреватель SaaS-сервисов
Михаил Сорокин

Обозреватель SaaS-сервисов

Тестирует и анализирует облачные решения для маркетинга, продаж и аналитики. За плечами 8 лет работы в B2B-продуктах и более 120 детальных обзоров.

Вопросы и ответы

Подтверждённого публичного шаблона для click-to-chat по номеру нет. Скопируйте приглашение из профиля MAX. Для бизнеса с несколькими сотрудниками используйте бота или проверенную CRM-интеграцию.

Ссылка https://max.ru/:share?text=... подставляет URL-кодированный текст, но пользователь сам выбирает чат или канал. Чтобы открыть конкретного бота с контекстом, используйте ?start= и сформируйте ответ внутри сценария.

Публичные страницы каналов и ботов предлагают открыть MAX в браузере. Пользователю может потребоваться вход или регистрация. Поэтому используйте HTTPS-ссылку max.ru, не самодельную схему приложения, и проверяйте гостевой сценарий.

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

Для обычного профиля или канала записывайте maxclick на сайте и placement кнопки. Для бота задайте отдельный start payload и сохраните его по событию botstarted. Не помещайте в метку персональные данные.

Нет, если нужен один переход и вы можете добавить HTML. Она полезна для нескольких каналов, правил показа, A/B-теста и готовой аналитики. Очередь операторов появляется только у агрегатора или CRM, а не у любой плавающей иконки.

Сама локальная -ссылка не обращается к MAX до клика. Но ваш обработчик аналитики и внешний widget.js могут использовать идентификаторы, cookies или передавать технические данные. Решение принимайте по фактической карте запросов и политике сайта.

На 4 сентября 2026 года брендбук предлагает логотипы, а раздел готовых виджетов и кнопок помечен «Скоро». Можно сверстать собственный доступный CTA с официальным знаком или выбрать сторонний сервис, явно обозначив его как сторонний.

Профиль подходит для личной переписки с одним ответственным. Бот — для источников, меню, автоматизации и передачи оператору. Канал — для публикаций и подписки; это не точка поддержки.

Смотрите также

Поделиться

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

Оставьте комментарий

Войдите, чтобы присоединиться к обсуждению