Конструктор виджета
Страница «Настройки → Widget Builder» (/settings/widget-builder) — визуальный конструктор чат-виджета с предпросмотром в реальном времени. 23 секции, draft/publish workflow с governance (одобрение, расписание публикации, audit log) и live state picker для тестирования всех экранов виджета.
Секции конструктора
Сгруппированы по смыслу. Любую секцию можно открыть из левой колонки билдера; справа — live preview, который обновляется на каждый keystroke.
| Группа | Секции |
|---|---|
| Бренд | Brand (логотип, форма, прозрачный фон, цвета, тема, Powered by toggle), Background, IconPack, EmojiPack, BotProfile |
| Контент | Welcome (приветствие, hero, CTA), Tabs (Home/Chat/Help/News/MiniApp toggle), Forms (pre-chat поля), SystemMessages, Translation |
| Поведение | Conversation (реакции, inline keyboard, cookie_domain), Hours (рабочее время), AwayGreetingSegments, EmailBridge, ReplyKeyboards, QuickReplies, SlowMode/BannedWords, BotMenu |
| Расширения | Stories, MiniApp, PinnedBanner |
| Безопасность и Advanced | Privacy (consent, GDPR), Advanced (custom CSS, kill-switch, keyword routing rules) |
Загрузка логотипа
В секции Brand загружайте логотип файлом (PNG / JPEG / WebP / SVG, до 256 КБ) — он отправляется на бэкенд через POST /api/workspaces/{ws}/widget-config/logo и встраивается в конфиг как data URL. Опции: форма (круг / скруглённый / квадрат) и прозрачный фон (убрать accent-плитку под логотипом — для PNG со своим фоном).
«Powered by SupportHub» в футере
Внизу виджета по умолчанию показывается ссылка Powered by SupportHub. Скрытие — через тоггл Hide Powered by в секции Brand. Тоггл plan-gated: доступен только на тарифах с фичей custom_branding; на бесплатном плане отображается заблокированным с подсказкой про апгрейд.
Live preview + state picker
Превью обновляется на каждый keystroke через postMessage. State picker внизу превью переключает виджет между состояниями (Home / Chat list / Conversation / Help / News / Off-hours / Email-bridge prompt / Operator typing) — можно проверить как выглядит каждый экран без необходимости создавать тикеты вручную. Mobile toggle переключает превью на 375px ширину для проверки мобильной верстки.
Governance: Draft / Publish / Schedule
- Draft — каждое изменение пишется в
workspace.settings.widget_draft(autosave, optimistic concurrency через If-Match). Прод-виджет видит толькоworkspace.settings.widgetдо публикации. - Publish — промотирует draft в опубликованную версию. Бампит widget_version, инвалидирует preamble-cache виджет-бандла.
- Schedule — отложенная публикация. Celery beat каждую минуту проверяет scheduled drafts (
app.tasks.widget_scheduler.promote_scheduled_drafts) и промотирует когда время пришло. - Approval — для платных планов: editor → approver flow. Submit/Approve/Reject видны в audit log.
- Audit log — все события (publish, approve, reject, schedule, embed-secret rotated) хранятся с user_id и timestamp; доступны через
GET /api/workspaces/{ws}/widget-config/audit-log.