Дополнительно
Виджет / Дополнительно

Дополнительные возможности

Custom CSS, звук уведомлений, mini app, stories, email bridge, перевод сообщений.

Custom CSS

advanced.custom_css — произвольная строка CSS, которая инжектится в <head> страницы посетителя как отдельный <style>-тег с id sh-widget-custom-styles. Перерендеривается при применении нового конфига; пустая строка очищает стили.

custom_css (пример)css
/* Убрать тень панели */
#sh-widget-panel { box-shadow: none !important; }

/* Поменять шрифт на Inter (предполагается, что он уже подключён) */
#sh-widget-panel * { font-family: "Inter", sans-serif; }

/* Свой цвет акцента вместо общего */
.sh-btn { background: #ff5722 !important; }

Звук уведомлений

Когда визитёр получает сообщение от оператора по WS, виджет может проиграть короткий звук. По умолчанию выключен — autoplay-аудио без согласия раздражает посетителей и провоцирует жалобы.

advanced.sound.enabled
Тип: booleanПо умолчанию: false
Включить проигрывание.
advanced.sound.url
Тип: stringПо умолчанию:
URL аудиофайла (mp3/wav/ogg, до 200KB после энкодинга в data-URL). Загружается через builder. Если URL пустой — звук не играет даже при enabled = true.

Mini App

Встроенный iframe внутри панели — например, личный кабинет пользователя, конфигуратор продукта, статус доставки. Открывается в отдельной вкладке виджета.

tabs.miniapp_enabled
Тип: booleanПо умолчанию: false
Показывать ли вкладку «Mini App» в нижней навигации.
miniapp.url
Тип: stringПо умолчанию:
URL iframe'а. Должен возвращать корректные X-Frame-Options/frame-ancestors — иначе браузер откажется его рендерить.
miniapp.title
Тип: stringПо умолчанию: "App"
Заголовок вкладки в нижней навигации.
miniapp.icon
Тип: stringПо умолчанию:
Имя иконки из Lucide (по умолчанию используется стрелка-расширение). Подсказки — в lucide.dev.
miniapp.height_px
Тип: numberПо умолчанию: 480
Высота iframe'а в десктопной панели (на мобиле всегда fullscreen).
miniapp.auth_token_passthrough
Тип: booleanПо умолчанию: false
Если true, виджет добавляет к URL iframe'а query ?token=<visitor_session>. Ваш миниапп может использовать этот токен для авторизации.

Stories

Лента «сториз» в верхней части news-tab, как в Instagram/Telegram. Каждая история — это анонс с обложкой, который посетитель раскрывает кликом. Контент управляется через SettingsAnnouncements.

stories.enabled
Тип: booleanПо умолчанию: false
Показывать ли story-strip в news-tab.
stories.max_visible
Тип: number (1-30)По умолчанию: 6
Сколько обложек видно без горизонтального скролла.

Email bridge

Когда посетитель пишет в виджет вне рабочих часов, имеет смысл переадресовать диалог на email — чтобы команда увидела вопрос утром, а не «потеряла» его. Email bridge делает именно это.

email_bridge.enabled
Тип: booleanПо умолчанию: false
Master-выключатель.
email_bridge.required_offline_hours
Тип: number (1-168)По умолчанию: 4
Сколько часов оффлайна до того, как тикет автоматически форвардится на email. 4 — здравый дефолт; ниже и форварды получат ваши же операторы за обедом.
email_bridge.label
Тип: stringПо умолчанию: "Email для ответа"
Подпись поля «email» в prechat-форме виджета.
email_bridge.hint
Тип: stringПо умолчанию: "Пришлём ответ на почту"
Подсказка под полем.
email_bridge.bridge_channel_id
Тип: stringПо умолчанию:
UUID email-канала из SettingsChannels, через который форвардятся тикеты. Если не задан — будет fallback на первый активный email-канал воркспейса.
email_bridge.auto_ack
Тип: { enabled, subject, body }По умолчанию:
Автоответное письмо посетителю сразу после того, как тикет ушёл на email. По умолчанию выключено.

Перевод сообщений

Если ваши операторы и посетители говорят на разных языках, виджет может «инверсивно» переводить — оператор видит свой язык, посетитель свой, реальное сообщение в БД хранится в оригинале с переводом в кэше.

advanced.translate.enabled
Тип: booleanПо умолчанию: false
Включить.
advanced.translate.auto_detect_source
Тип: booleanПо умолчанию: true
Определять язык сообщения автоматически (Google Translate detect-API). Если false, нужно знать язык заранее — обычно подходит для closed-context чатов.
advanced.translate.operator_target_locale
Тип: stringПо умолчанию: "ru"
На какой язык переводить входящие для операторов.
advanced.translate.visitor_target_locale
Тип: stringПо умолчанию:
На какой язык переводить ответы операторов для посетителя. Если не задан — берётся из navigator.language визитёра.
advanced.translate.monthly_token_budget
Тип: numberПо умолчанию: 1_000_000
Лимит токенов на месяц (Google биллит ~1 токен на 1 символ). При исчерпании перевод тихо отключается до следующего месяца.
Была ли страница полезной?