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

Самый надёжный вариант — скопировать 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_click → bot_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.
Порядок внедрения такой:
- Выберите тип подключения: личная MAX-сессия по QR или официальный бот/API. Для регулируемых процессов и автоматизации предпочтительнее контур, в котором токен, права и события можно контролировать на сервере.
- Подключите тестовый канал и сразу проверьте отзыв сессии, двухфакторную защиту, роли сотрудников и доступ администратора. Не отключайте 2FA без оценки риска.
- Создайте очередь: рабочее время, ответственный по умолчанию, таймер первого ответа, переадресация просроченного диалога.
- Настройте карточку контакта и дедупликацию. Один человек может прийти из MAX, формы сайта и email; совпадение по имени ненадёжно.
- Проверьте текст, фото, документы, голосовые сообщения, ответы на конкретное сообщение, групповые чаты и статусы доставки. Поддержка «MAX» не гарантирует равенство всех типов сообщений.
- Настройте handoff: бот сообщает о передаче, создаёт задачу, ставит диалог в очередь и перестаёт отправлять автоматические ответы, пока работает оператор.
- Выгрузите тестовый диалог и удалите тестовый контакт. Так вы заранее узнаете, доступны ли экспорт, сроки хранения и выполнение запросов субъекта данных.
Если на сайте есть 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-сервисов
Тестирует и анализирует облачные решения для маркетинга, продаж и аналитики. За плечами 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 с официальным знаком или выбрать сторонний сервис, явно обозначив его как сторонний.
Профиль подходит для личной переписки с одним ответственным. Бот — для источников, меню, автоматизации и передачи оператору. Канал — для публикаций и подписки; это не точка поддержки.
Смотрите также

9 лучших навыков для Codex для дизайна сайтов в 2026 году
17 сентября 2026 г.

8 лучших навыков для Claude для дизайна сайтов в 2026 году
17 сентября 2026 г.

Самые выгодные цены на домены .com у российских и международных регистраторов
14 сентября 2026 г.

Сравнение цен на домены .ru у регистраторов
14 сентября 2026 г.
Комментарии(0)
Оставьте комментарий
Войдите, чтобы присоединиться к обсуждению