Skip to content

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

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

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

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

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

TIP

Для режимов встраивания (inline/static/overlay/button/offset) приоритет: <script data-mz-*>window.MZBOT_CONFIG → дефолты бандла. Для темы и языка добавляются ещё два верхних уровня — живой атрибут на <html> и вызов JS-API. Для подсказок верхний уровень — MZBOT.setTips(...) (живого атрибута нет).

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

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

<!-- 2) глобальный объект (до бандла) -->
<script>window.MZBOT_CONFIG = { theme: 'dark', accent: '#0dbb52', bgColors: { light: ['#eef2ee'], dark: ['#1b2735'] } };</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.

Задаётся только при сборке

USER_UUID, API_HOST и WS_HOST зашиваются в бандл на стороне Morze и не переопределяются с хост-страницы — ни атрибутами data-mz-*, ни через window.MZBOT_CONFIG.

lang — язык интерфейса

КлючЗначенияПо умолчаниюОписание
langru | enruЯзык всего интерфейса виджета: плейсхолдер ввода, меню, статусы, экраны ошибок, aria-подписи.

Как и тема, язык живёт по расширенному приоритету (сверху — выше): MZBOT.setLang(...)<html data-mz-lang> (живой атрибут) → window.MZBOT_CONFIG.lang<script data-mz-lang> → значение из бандла → ru.

html
<html data-mz-lang="en">
<script src="bundle.min.js" data-mz-lang="en" defer></script>

Подробнее — MZBOT.setLang().

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

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

Любой ключ фона (pattern, patternOpacity, patternScale, bgColors, bgAngle, patternImage, patternImageOpacity, patternImageSize) принимает либо одно значение на обе темы, либо карту { light, dark } — ветка выбирается по активной теме и переприменяется при её переключении. См. Два фона: светлая и тёмная тема.

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

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

КлючЗначенияПо умолчаниюОписание
type1 | 011 = плавающая кнопка-лаунчер, 0 = полосный header.
positionrb | lbrbУгол: право-низ / лево-низ.
closedButtonblob | simplesimpleСтиль закрытой кнопки (только type:'1').
lockScrollMobilebooleantrueБлокировать скролл хоста на мобильных при открытом чате.
soundbooleanfalseМастер-переключатель звука уведомлений. false убирает и пункт меню.
notifySoundURLhttps://cdn.morze.tech/notify.mp3Звук при входящем в закрытом чате. '' отключает.
voicebooleantrueКнопка микрофона (голосовые). false — кнопки нет, диктофон не монтируется.
attachmentsbooleantrueКнопка-скрепка (файлы). false — кнопки нет, file-input не создаётся.
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' },
  { type: 'ok',        url: 'https://ok.ru/profile/574368901092' },
  { type: 'instagram', url: 'https://www.instagram.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 | ok | instagram имеют встроенные иконки и брендовые цвета; любой другой тип — кастом, требует icon. Алиасы: odnoklassnikiok, instainstagram. Регистр не важен.
  • url — ссылка (открывается в новой вкладке). color, icon, label — опциональны.
  • Пустой массив = фича выключена.

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

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

Любой из этих ключей (кроме responseDelay) можно задать картой по языкам — она пересчитывается при смене языка:

js
bot: {
  title: { ru: 'Morze Ассистент', en: 'Morze Assistant' },
  tips:  { ru: ['Тарифы', 'Кейсы'], en: ['Pricing', 'Case studies'] },
}

tips дополнительно меняются с хост-страницы — атрибутом data-mz-tips, ключом window.MZBOT_CONFIG.tips или в рантайме через MZBOT.setTips(). Остальные строки — через MZBOT.setBotContent().

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

data-mz-theme            data-mz-design           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-voice            data-mz-attachments
data-mz-button-shape     data-mz-button-size
data-mz-offset-x         data-mz-offset-y
data-mz-lang             data-mz-tips

data-mz-bg-colors

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

Суффиксы -light / -dark

Любой атрибут фона (data-mz-pattern, data-mz-pattern-opacity, data-mz-pattern-scale, data-mz-bg-colors, data-mz-bg-angle, data-mz-pattern-image*) можно задать отдельно для каждой темы: data-mz-bg-colors-light="…" + data-mz-bg-colors-dark="…". Атрибут без суффикса остаётся значением для темы, которую не задали явно.

data-mz-tips

Принимает JSON-массив (data-mz-tips='["Тарифы","Кейсы"]'), а если значение не JSON — строку с разделителем | (data-mz-tips="Тарифы|Кейсы").