Параметры инициализации виджета
Сначала создайте канал и получите код в разделе «Код для встраивания». Если достаточно настроек из кабинета, вставьте готовый код без изменений. Эта страница нужна разработчику, который встраивает чат в свой контейнер, передаёт данные авторизованного посетителя или управляет конфигурацией из кода.
С чего начать
Выберите размещение: поверх страницы (popup) или внутри вашего блока (embedded). Оформление и функции берутся из сохранённых настроек канала. Если для конкретного сайта нужны отличия, передайте только их в theme и features при вызове init.
Режим размещения
popupоткрывается поверх страницы по плавающей кнопке;embeddedзанимает переданныйcontainerи не показывает плавающую кнопку.
Для embedded передайте существующий CSS-селектор или DOM Element. Если контейнер не найден, инициализация завершится ошибкой. Методы open(), close() и toggle() работают в обоих режимах.
button_only: true создаёт только внешний вид плавающей кнопки без iframe чата. Кнопка не реагирует на нажатие, open(), close() и toggle() ничего не открывают, а isOpen() возвращает false. Этот режим подходит для отдельного предпросмотра кнопки и несовместим с embedded. Поскольку iframe не создаётся и удалённые настройки канала не загружаются, вид кнопки задавайте через theme.button в коде.
Для полностью собственного интерфейса чата задайте headless: true при инициализации. SDK остаётся доступен, готовый чат и плавающая кнопка не показываются; невидимый iframe обслуживает авторизацию и запросы. open() и toggle() не показывают такой экземпляр. Параметр несовместим с embedded и button_only и не меняется через configure. Получение истории и подписки доступны также в обычном виджете без headless.
Приоритет настроек
Для theme и features действует один порядок: значения по умолчанию → настройки канала → явно переданные поля init. Например, theme: { height: 700 } закрепляет высоту popup-окна в 700 px, а ширина, цвета, тексты и функции берутся из настроек канала.
Вложенные объекты объединяются по полям: переопределение русского заголовка сохраняет английский, а цвет фона кнопки не стирает цвет её иконки. Пропущенное поле или undefined не заменяет значение из настроек канала. Явные false, допустимый 0 и пустой массив сохраняются; массивы заменяются целиком для указанного языка. Пустые локализованные тексты не используются как переопределение. Для welcome_icon_url пустая строка имеет отдельный смысл: вернуть стандартную иконку.
SenlerWidget.init({
channel_id: "xxx",
theme: { height: 700 },
features: { voice_messages: false },
});
Готовый код из кабинета не включает полный снимок theme и features. Сохранённые изменения настроек канала применяются при следующей инициализации виджета, кроме полей, явно закреплённых в коде сайта. Предпросмотр в кабинете показывает и несохранённые изменения, но не меняет конфигурацию работающего сайта. Язык и способ размещения задаются отдельно в коде подключения.
В работающем виджете допустимые параметры можно временно заменить через configure. Если настроен выбор по условиям сайта, поля, возвращённые resolveRuntime, применяются поверх этих базовых настроек до следующего расчёта.
Настройте нужные возможности
- Встраивание в контейнер: размеры панели, видимость чата, кнопка сворачивания и мобильный жест.
- Оформление из кода: тема, тексты, кнопки и картинка приветствия.
- Справочник init: параметры и функции чата.
- Идентификация посетителя: внешний ID и серверная подпись.
- Приветствие из кода: выбор приветствия и отправка сообщений автоматизации.
- Настройки по условиям сайта: выбор приветствия, языка и оформления по данным посетителя и страницы.
После запуска используйте изменение настроек во время работы, чтобы не пересоздавать виджет.
Если загрузка задержалась
Индикатор появляется, если загрузка занимает больше 4 секунд. После 10 секунд скрипт-загрузчик показывает сообщение «Загрузка задерживается. Продолжаем попытки.» и кнопку «Скопировать для поддержки». Это информационное состояние: повторные попытки продолжаются автоматически.
Отчёт содержит версии загрузчика и протокола, номер попытки, длительность и этап сбоя, состояние сети и проверку ресурсов. Параметры URL, содержимое запросов, ID канала и пользователя и токены не копируются.
Внешний отчёт относится к запуску iframe. Если ошибка появилась уже внутри открывшегося чата, используйте действие в соответствующем сообщении интерфейса.
Что настраивать дальше
После успешной инициализации передайте агенту текущий экран и нужную бизнес-сущность через контекст страницы. Если данные относятся только к одному вопросу, используйте контекст сообщения. К разметке кнопок и полей переходите после того, как обычное сообщение и контекст работают отдельно.