Раздел Настройки → Встраивание — место, где берётся код для сайта и тонкие настройки публикации. Если нужно просто запустить виджет, начните с «Установки виджета на сайт»; здесь — полный набор вариантов.
Чат-виджет или iframe
Два способа встроить агента на сайт:
Чат-виджет (рекомендуем)
Плавающая кнопка-пузырь в углу сайта. Поддерживает все возможности агента: проактивные триггеры и автоприветствия, программный API, персонализацию. Рендерится в отдельном iframe — его стили и скрипты изолированы от стилей и скриптов вашего сайта. Скрипт загрузчика весит 50 КБ — около 23 КБ в сжатом виде. Код вставляется перед закрывающим тегом </body>.
Есть переключатель «читаемый вид» — компактный и развёрнутый код работают одинаково.
Iframe
Чат встроен прямо в страницу отдельным блоком, без кнопки-пузыря. Подходит для отдельной страницы «Напишите нам» или раздела поддержки. Требует, чтобы агент был «Открытый» и включён.
В iframe недоступны: плавающая кнопка, триггеры-автоприветствия, программный API (Chatbot("open"/"close")) и персонализация по JWT. Для полного набора возможностей выбирайте «Чат-виджет».
Публичная ссылка
Готовая страница с чатом по адресу /chat/..., которую можно отправить клиенту напрямую — в соцсетях, мессенджере или письме. Включается переключателем «Открытый / Закрытый»; агент при этом должен быть включён.
Рецепты установки
Готовые пошаговые инструкции с уже подставленными ключом и идентификатором агента — для популярных платформ: Google Tag Manager, WordPress, Shopify, Next.js, Webflow. Выберите свою платформу и следуйте шагам.
Персонализация (JWT) — для разработчиков
Доступно на тарифе «Бизнес» и выше. На тарифах ниже блок персонализации в кабинете закрыт.
Чтобы бот узнавал залогиненного пользователя, передайте подписанный токен. На странице сайта вызывается Chatbot("identify", { token }), а сам токен (JWT, HS256) подписывается на вашем бэкенде с помощью identity-секрета проекта (Проект → Настройки → API).
- Секрет никогда не публикуйте в коде страницы — только на сервере.
- Срок жизни токена — до 24 часов, обновляйте по мере необходимости.
- После выхода пользователя вызывайте
Chatbot("reset"), чтобы история не попала к другому пользователю.
В разделе есть готовые примеры подписи для Node.js, Python, PHP и Ruby. Что именно передаётся и как это видит бот — в статье «Персонализация».
Реквизиты
Технические идентификаторы агента — пригодятся при отладке или обращении в поддержку: API-ключ проекта, идентификатор агента и публичный ID.
Что дальше
- Установка виджета на сайт — быстрый старт.
- Персонализация — данные залогиненных пользователей.
Content Security Policy and pinned scripts
For a site with a restrictive Content Security Policy, allow both
https://widget.msg8.ai and https://widget-ru.msg8.ai in the relevant
script-src, frame-src, and connect-src directives. The installation snippet
also needs the site's normal nonce or hash authorization for inline scripts.
Do not disable the site's CSP. Russian visitors may use the mirror, so allowing
only the main hostname can prevent the widget from opening.
For Subresource Integrity (SRI), use loader.filename and loader.integrity
from https://widget.msg8.ai/widget/manifest.json, with crossorigin="anonymous".
The content-addressed filename stays unchanged across future releases. Keep its
filename and integrity together; choose a new pair when upgrading. The evergreen
loader.min.js changes automatically and must not be pinned with SRI.
Historical loader.v11.min.js is now frozen; it does not receive new fixes.
An older integrity hash saved before it was frozen may already be incompatible.
Pinned files are never replaced with a different mirror script. Network blocking
before the HTTP response can still prevent any script from loading; CSP/SRI
settings cannot remove that limitation.