Skip to content

Конфигурация

Поведение виджета задаётся одним объектом конфигурации. Его дефолты зашиты в бандл на этапе сборки (widget.config.js), а хост-страница может переопределить нужные ключи в рантайме.

Приоритет разрешения

От низшего к высшему (побеждает верхний):

  1. widget.config.js — build-time дефолты, зашитые в бандл.
  2. <script data-mz-*> — атрибуты на загружающем теге.
  3. window.MZBOT_CONFIG = {…} — глобальный объект (задаётся до загрузки бандла).
  4. <html data-mz-theme> — живой атрибут на <html> (только тема; отслеживается MutationObserver).
  5. MZBOT.setTheme(…) — вызовы JS-API в рантайме.

TIP

Для режимов встраивания (inline/static/overlay/button/offset) приоритет: <script data-mz-*>window.MZBOT_CONFIGwidget.config.js. Для темы добавляются ещё два верхних уровня — <html data-mz-theme> и MZBOT.setTheme(...).

Три способа задать конфиг на хосте

html
<!-- 1) атрибуты загружающего скрипта -->
<script src="bundle.min.js" data-mz-theme="dark" data-mz-accent="#0dbb52" defer></script>

<!-- 2) глобальный объект (до бандла) -->
<script>window.MZBOT_CONFIG = { theme: { mode: 'dark' }, chat: { position: 'lb' } };</script>
<script src="bundle.min.js" defer></script>

<!-- 3) живой атрибут темы на <html> -->
<html data-mz-theme="dark">

Справочник ключей

Идентичность и endpoints

КлючТипПо умолчаниюОписание
USER_UUIDstringИдентификатор клиента/бота на бэкенде.
API_HOSTstringhttps://api.assistant.morze.techHTTP-эндпоинт Router'а.
WS_HOSTstringwss://api.assistant.morze.tech/ws/WebSocket-эндпоинт.
bitrix24booleanfalseРежим Bitrix24-плейсмента: пробрасывать авторизацию портала на каждый /msg и /action.

Дефолт указывает на прод

Для локальной разработки с morzebot-backend-v2 (:9000) переопределите API_HOST/WS_HOST (в коде закомментированы локальные варианты в widget.config.js).

theme — визуальная тема

КлючЗначенияПо умолчаниюОписание
modelight | white | dark | autodarkЦветовая схема (auto следует за ОС).
accentCSS-цвет#9162e4Акцентный цвет — управляет всеми тематическими элементами.
patternnone | whisper | mesh | scales | bloom | cipher | prismwhisperSVG-паттерн фона области чата.
patternOpacity0..10.05Прозрачность паттерна.
patternScale0.25..41.3Масштаб паттерна.
bgColorsмассив цветов | CSS-строкаКастомный фон чата (см. Темизацию).
bgAngleградусы160Угол градиента.
patternImageURLБесшовное изображение-оверлей поверх фона.
patternImageOpacity0..11Прозрачность изображения.
patternImageSizepx | CSS background-sizeРазмер тайла.
msgAnimationbubble | unfurl | cascade | pop | breathebubbleАнимация входящих сообщений.
glow.dark / glow.lightbooleanfalse / trueАкцентное свечение по разрешённой теме.
glow.intensity0.1..50.2Сила свечения.

Подробности — на странице Темизация.

chat — раскладка и поведение

КлючЗначенияПо умолчаниюОписание
type1 | 011 = плавающая кнопка-лаунчер, 0 = полосный header.
positionrb | lbrbУгол: право-низ / лево-низ.
closedButtonblob | simplesimpleСтиль закрытой кнопки (только type:'1').
lockScrollMobilebooleantrueБлокировать скролл хоста на мобильных при открытом чате.
soundbooleanfalseМастер-переключатель звука уведомлений. false убирает и пункт меню.
notifySoundURLhttps://cdn.morze.tech/notify.mp3Звук при входящем в закрытом чате. '' отключает.
messengersмассив[telegram, vk]Кнопки мессенджеров, разлетающиеся вокруг лаунчера на ховере.
inlinebooleanfalseInline-режим — лаунчер в потоке страницы. Требует container.
containerCSS-селекторnullХост-элемент для монтирования (фолбэк <body>).
button.shapecircle | squaresquareФорма simple-кнопки (blob игнорирует).
button.sizepx50Размер кнопки.
offset.x / offset.ypx44 / 8Отступ открытой карточки от края вьюпорта.
staticbooleanfalseСтатичный докнутый режим. Требует container.
staticHeightpx | CSS-длина'100%'Высота статичной панели.
staticMaxWidthpx | CSS-длина | nullnullКап ширины статичной панели.
overlay.enabledbooleanfalseСмонтировать overlay-поверхность.
overlay.startVisiblebooleanfalseЛаунчер overlay виден сразу.
overlay.positionrb | lbrbУгол overlay-лаунчера.

Режимы подробно — на странице Режимы встраивания.

messengers[]

js
messengers: [
  { type: 'telegram', url: 'https://t.me/morzetech' },
  { type: 'vk',       url: 'https://vk.com/morzetech' },
  // кастом: любой мессенджер через icon URL
  { type: 'viber', url: 'viber://chat?number=%2B7...', icon: 'https://cdn.example.com/viber.svg', color: '#7360F2', label: 'Viber' },
]
  • typewhatsapp | telegram | vk | max имеют встроенные иконки и брендовые цвета; любой другой тип — кастом, требует icon.
  • url — ссылка (открывается в новой вкладке). color, icon, label — опциональны.
  • Пустой массив = фича выключена.

bot — личность бота

КлючТипПо умолчаниюОписание
avatarURLhttps://cdn.morze.tech/morze-avatar-blue.pngАватар бота.
titlestringMorze AssistantЗаголовок открытого чата.
titleClosedstringМогу вам помочьПодпись на закрытой кнопке.
responseDelayms1200Искусственная задержка перед показом входящего (показывается «печатает…»). 0 отключает.
tipsstring[]Быстрые подсказки-реплики.

Полный список data-mz-* атрибутов

data-mz-theme            data-mz-accent           data-mz-pattern
data-mz-msg-animation    data-mz-bg-colors        data-mz-bg-angle
data-mz-pattern-image    data-mz-pattern-image-opacity   data-mz-pattern-image-size
data-mz-container        data-mz-inline           data-mz-static
data-mz-static-height    data-mz-static-max-width
data-mz-overlay          data-mz-overlay-start-visible   data-mz-overlay-position
data-mz-sound            data-mz-button-shape     data-mz-button-size
data-mz-offset-x         data-mz-offset-y

data-mz-bg-colors

Принимает строку с цветами через запятую: data-mz-bg-colors="#1b2735,#283e51,#0a1622".