🌐 Виджет
Встраиваемый чат для вашего сайта. В селекте «Платформа» канал так и называется — «Виджет».
Виджет — это чат в реальном времени. Посетитель пишет прямо со страницы, обращение попадает в «Поддержка» → «Чаты», оператор отвечает из Fixorix. Других способов связи (обратный звонок, email-форма) виджет не предлагает.
Создание
Виджет создаётся в разделе «Каналы» (левое меню, группа «Проект») кнопкой «Создать» — она видна участникам с ролью Редактор и выше. В окне «Создание канала» в поле «Платформа» выберите «Виджет» — дальше мастер из трёх шагов.
Шаг 1 — «Создание канала». Заполните поля и нажмите «Далее».
| Поле | Обязательно | Что вводить |
|---|---|---|
| Название | да | Имя канала в списке. Подсказка: «Например: Чат поддержки». |
| Описание | нет | Заметка для себя. Подсказка: «Например: виджет на лендинге». |
| Укажите домен сайта | да | Домен, на котором будет работать чат. Подсказка: «Например: example.ru или localhost». |
Шаг 2 — «Внешний вид виджета». Настройте цвета, позицию и поведение чата (те же параметры, что на вкладках «Вид» и «Чат» — см. таблицу ниже). На широком экране рядом показывается живое превью. Кнопка «Назад» возвращает к первому шагу, кнопка «Создать» создаёт канал.
Шаг 3 — «Виджет готов». Здесь выдаются код установки, HMAC-секрет и блок «Тех. информация» (Widget ID, Host). Кнопка «К списку каналов» закрывает мастер.
Подробное пошаговое руководство с примером кода — Установка виджета.
HMAC-секрет (строка из 64 шестнадцатеричных символов) выдаётся на шаге «Виджет готов» и больше нигде не отображается. Сохраните его сразу — он нужен для опознания пользователей (см. ниже). Если секрет потерян, выпустите новый кнопкой «Сбросить секрет».
Домен виджета
Домен нужен, чтобы виджет разрешили загружать на вашем сайте.
- Список разрешённых доменов общий для проекта: домен, добавленный при создании или редактировании любого виджета, начинает работать для всех виджетов этого проекта.
- Домен сравнивается точно:
www.example.ru,example.ruиshop.example.ru— разные домены. Если сайт открывается по нескольким адресам, добавьте каждый: создайте для него виджет или укажите его в поле «Привязанный домен» любого виджета проекта — прежние записи из списка при этом не удаляются. Если нужного адреса в списке нет, кнопка чата на странице появится, но чат не откроется. - Схему
https://, путь, порт и регистр убирать не обязательно: сохраняется только имя хоста (https://Shop.ru:8443/contacts→shop.ru). Кириллический домен сохраняется в punycode (магазин.рф→xn--80aairftm.xn--p1ai) — так адрес страницы присылает браузер. Если такой домен уже есть в списке проекта, используется существующая запись. Сайт на нестандартном порту всё равно не заработает — см. ограничение про HTTPS и порт 443 ниже. - Страница чата встраивается только по HTTPS и только на стандартном порту 443. По
http://localhostили поhttps://localhost:3000браузер заблокирует фрейм, даже если доменlocalhostразрешён. - Удалить домен из списка разрешённых нельзя. Однажды добавленный домен продолжает работать для всех виджетов проекта, даже если его сменили в настройках виджета или удалили сам виджет. Чтобы чат пропал со старого сайта, уберите сниппет с его страниц.
Карточка виджета
Клик по строке канала открывает справа панель «Детали виджета»:
| Поле | Что показывает |
|---|---|
| ID виджета | Идентификатор виджета (он же Widget ID из сниппета). |
| Название | Имя канала (если не задано — «Без названия»). |
| Описание | Заметка, если она была заполнена. |
| Домен | Домен, привязанный к виджету. |
| Платформа | Пилюля «Виджет». |
| Статус | Пилюля «Работает» или «Остановлен». |
| Скрипт для вставки на сайт | Готовый код установки с переключателем режимов и кнопкой «Скопировать». |
| HMAC-секрет | Секция с кнопкой «Сбросить секрет». |
Код установки
Сниппет лежит в карточке виджета (строка «Скрипт для вставки на сайт») и на вкладке «Детали» (строка «Код установки»). Над кодом — переключатель из двух режимов. Под кодом — подсказка, ссылка «Документация по подключению» (ведёт на эту страницу) и кнопка «Скопировать».
| Режим | Что даёт | Что нужно на вашей стороне |
|---|---|---|
| «Без авторизации» | Обычный анонимный чат: посетитель пишет, не представляясь | Вставить одну строку кода на страницы сайта |
| «С авторизацией» | Чат открывается от имени вошедшего на сайт пользователя: одна история переписки на всех его устройствах, у оператора — один постоянный клиент, подписанный переданным email | Считать подпись посетителя на сервере (HMAC-секрет) и передать её виджету |
Переключение режима меняет только текст сниппета: настройки виджета от этого не зависят.
- В режиме «Без авторизации» код — это одна строка
scriptс адресом загрузчика и идентификатором виджета. - В режиме «С авторизацией» код состоит из тега загрузчика без параметров и небольшого скрипта с настройками:
widgetId,userId,userHashи необязательныйemail. ЗначенияuserIdиuserHashподставляет ваш сайт — в сниппете на их месте стоят заглушки, которые нужно заменить.
Кнопка «Скопировать» копирует код целиком в том режиме, который выбран сейчас.
Если авторизации на сайте нет или она не важна для поддержки, берите режим «Без авторизации» — чат заработает сразу. Перейти на режим с авторизацией можно в любой момент, заново создавать виджет не нужно.
Пошаговое руководство с готовым примером — Установка виджета.
Настройки виджета
Настройки правятся в панели «Редактирование виджета» — иконка карандаша в строке канала. Четыре вкладки: «Основные», «Вид», «Чат», «Детали». На вкладках «Вид» и «Чат» рядом показывается живое превью. Изменения сохраняются кнопкой «Сохранить», после чего появляется уведомление «Виджет обновлён».
Вкладка «Основные»
| Настройка | Что делает |
|---|---|
| Название | Имя канала в списке. Обязательное поле. |
| Описание | Свободная заметка. |
| Привязанный домен | Домен, на котором работает виджет. При некорректном вводе появляется «Введите корректный домен». |
При смене домена показывается предупреждение: «Внимание: изменение домена приведет к тому, что виджет перестанет загружаться на вашем текущем сайте, убедитесь, что вы перенесли код на новый ресурс.»
На деле прежний домен остаётся в списке разрешённых доменов проекта, и удалить его оттуда нельзя, поэтому на старом сайте виджет продолжит открываться, пока там стоит сниппет. Чтобы чат там пропал, уберите сниппет со страниц старого сайта.
Вкладка «Вид»
| Настройка | Что делает |
|---|---|
| Основной цвет | Цвет кнопки-лаунчера и шапки чата. |
| Оттенок текста | Дополнительный цвет оформления чата: второй цвет градиента кнопки чата и основа для оттенков текста. |
| Позиция виджета | «Слева» или «Справа» — угол экрана, в котором появляется кнопка чата. |
| Показывать аватар оператора | Переключатель. Подсказка: «Лицо оператора в чате повышает доверие. Выключите для строгого корпоративного стиля.» |
Вкладка «Чат»
| Настройка | Что делает |
|---|---|
| Задержка автооткрытия, сек | Через сколько секунд чат откроется сам. Значение -1 (и любое значение меньше единицы) отключает автооткрытие; задержка больше 60 секунд обрезается до 60. |
| Приветственное сообщение | Первое сообщение, которое увидит посетитель. До 256 символов. |
Настройки «Показывать аватар оператора» и «Приветственное сообщение» сохраняются и видны в предпросмотре, но на сайт клиента не передаются — посетитель видит аватар и приветствие, заданные по умолчанию.
На вкладке «Чат» указано: «Скоро здесь появятся настройки таймеров и графика работы». Настроек рабочего времени и текста вне рабочего времени в продукте сейчас нет.
Вкладка «Детали»
| Поле | Что показывает |
|---|---|
| Widget ID | Идентификатор виджета — он же подставляется в сниппет. |
| Host | Домен, привязанный к виджету. |
| Код установки | Сниппет с переключателем режимов «Без авторизации» / «С авторизацией» и кнопкой «Скопировать». |
| HMAC-секрет | Секция с кнопкой «Сбросить секрет». |
Остановка виджета
В строке канала есть кнопка «Выключить виджет» / «Включить виджет», а текущее состояние показывается пилюлей в колонке «Статус»: «Работает» или «Остановлен». После действия появляется уведомление «Виджет выключен» или «Виджет включён»; если переключить не удалось — «Не удалось изменить состояние виджета. Попробуйте ещё раз.».
Что происходит при выключении:
- виджет перестаёт открываться на сайте: кнопка чата остаётся на странице в ваших цветах, но по нажатию панель не открывается, поэтому переписка недоступна и новые обращения не создаются; автооткрытие тоже не срабатывает;
- снимать сниппет со страниц не нужно — код остаётся на месте и ничего не ломает;
- обратное включение мгновенно, повторно вставлять код не требуется;
- в разделе «Каналы» выключенный виджет остаётся в списке со статусом «Остановлен» и доступен для редактирования.
Остановка удобна, когда сайт на техобслуживании или отдел поддержки временно не работает.
Выключение виджета не трогает историю: обращения, созданные раньше, остаются в разделе «Чаты». После включения посетитель продолжит ту же переписку.
Что умеет чат в виджете
Сообщения
- Текст оформляется Markdown: жирный, курсив, зачёркивание, инлайн-код и блоки кода, маркированные и нумерованные списки, цитаты, горизонтальные линии, ссылки (открываются в новой вкладке). Заголовки, таблицы, картинки и сырой HTML не поддерживаются — разметка отбрасывается, текст остаётся. Одиночные переносы строк сохраняются.
- Enter — отправить, Shift+Enter — перенос строки. В пустом поле виден плейсхолдер «Сообщение...».
- Кнопка со смайликом открывает эмодзи-пикер с категориями: «Часто используемые», «Смайлики и люди», «Животные и природа», «Еда и напитки», «Путешествия и места», «Активности», «Объекты», «Символы», «Флаги».
- Если связь пропала, сообщение всё равно появляется в ленте и уходит, когда соединение восстановится (переподключение идёт каждые 5 секунд). Очередь неотправленных сообщений хранится только на открытой странице: если связь не восстановилась в течение минуты или страницу перезагрузили, сообщение не отправится, хотя в ленте может остаться, — в таком случае напишите его ещё раз.
Вложения
- Кнопка «Прикрепить файл» в поле ввода добавляет по одному файлу за раз, но к одному сообщению можно приложить несколько — каждый появится отдельным чипом с именем и крестиком «Убрать вложение». Сообщение можно отправить и без текста.
- Тип файла не ограничен, размер — до 10 МБ. Пока файл загружается, в поле видно «Загрузка файла…», а отправка недоступна; при ошибке загрузки появляется «Не удалось загрузить файл».
- В ленте картинки (
png,jpg,gif,webp,bmp,avif) показываются превью; клик открывает полноэкранный просмотр с кнопкой «Закрыть» и закрытием поEsc. Остальные файлы, включая SVG, показываются чипом-ссылкой для скачивания.
Лента
- Ответ-цитата: если оператор ответил на конкретное сообщение, над ответом видна плашка с автором и текстом оригинала; клик по ней прокручивает ленту к исходному сообщению и подсвечивает его. Сам посетитель ответить с цитатой не может.
- Разделители дней: «Сегодня», «Вчера» или дата.
- Умный автоскролл: лента сама уезжает вниз, если посетитель уже внизу или сам написал; если он читает выше и приходит ответ — появляется кнопка «Новые сообщения ↓».
- История догружается порциями при прокрутке вверх — позиция чтения при этом не сбивается.
- Пока устанавливается соединение, показывается «Подключение…», а если оно затянулось — «Не удаётся подключиться, пробуем ещё…».
Подписи в чате
- Все входящие сообщения — ответы оператора, бота и сценария — посетитель видит с подписью «Агент поддержки» и стандартной иконкой; настоящее имя оператора не показывается.
- Свои сообщения анонимный посетитель видит с подписью «Вы», опознанный — с именем из параметров
firstNameиlastName(если сайт их не передал — «Anonymous User»). - Под полем ввода всегда стоит надпись «Fixorix Team».
Параметры firstName и lastName необязательны: их можно передать в адресе сниппета (&firstName=…&lastName=…) или в window.fixorixWidget.init({ ... }). Подписью они не проверяются. Оператор видит анонимного посетителя под этим именем (по умолчанию «Anonymous User»), а опознанного — по переданному email.
Кнопки под сообщением
Сообщение от сценария может содержать ряды кнопок (инлайн-клавиатуры):
- кнопка-ссылка и кнопка Web App помечены 🔗 и открывают адрес в новой вкладке;
- кнопки запроса контакта (📞) и геолокации (📍) в виджете работают как обычные: номер телефона и координаты не запрашиваются и не передаются;
- обычная кнопка отправляет свой текст ответом от лица посетителя. После нажатия такой кнопки все кнопки сообщения становятся неактивными, а переход по ссылке их не блокирует.
Опознанный пользователь
Если посетитель уже авторизован на вашем сайте, его можно опознать — тогда история переписки будет одна и та же на всех его устройствах, а у оператора это будет один и тот же клиент, подписанный переданным email (без email — «Аноним»). Карточка контакта при этом автоматически не создаётся — привяжите клиента к контакту вручную или через OTP-код.
Как это устроено:
- При создании виджета выдаётся HMAC-секрет — строка из 64 шестнадцатеричных символов. Он хранится только на вашем сервере и в браузер не попадает.
- Ваш сервер считает подпись:
userHash = HMAC-SHA256(ключ, userId). Ключ — строка HMAC-секрета как есть, в виде текста (UTF-8): ничего к ней не добавляйте и не декодируйте из hex. Подписывается ровно тотuserId, который передаётся виджету. Результат — шестнадцатеричная строка в нижнем регистре. userIdиuserHash(и при желанииemail) передаются виджету — параметрами в адресе сниппета либо черезwindow.fixorixWidget.init({ ... }).- Fixorix сверяет подпись и открывает чат от имени этого пользователя.
Если подпись не сошлась или переданный email не является корректным адресом, чат всё равно откроется — но анонимно, как для обычного посетителя.
Примеры кода подписи — в руководстве Установка виджета.
Сброс секрета
Кнопка «Сбросить секрет» есть в карточке виджета и на вкладке «Детали». Перед сбросом запрашивается подтверждение: «Текущий HMAC-секрет перестанет работать сразу после сброса. Продолжить?». Новый секрет показывается один раз — «Секрет сброшен. Сохраните новый — он показывается только один раз.».
Новый секрет действует сразу, но и прежний какое-то время продолжает приниматься. Отзыв идёт автоматически раз в час и касается секретов, с выпуска которых прошло больше 7 суток: если прежнему секрету больше недели, он перестанет работать в течение часа после сброса, а если он выпущен недавно — будет действовать, пока с его выпуска не пройдут 7 суток. Не полагайтесь на сброс как на мгновенную блокировку: обновите секрет в интеграции сразу.
HMAC-секретами виджета можно управлять и через REST API — по API-ключу проекта:
| Метод | Что делает | Право ключа |
|---|---|---|
GET /v1/widget/{widgetId}/hmac-secrets | Список секретов виджета | WIDGETS_READ |
POST /v1/widget/{widgetId}/hmac-secrets/rotate | Выпуск нового секрета | WIDGETS_WRITE |
DELETE /v1/widget/{widgetId}/hmac-secrets/{secretId} | Отзыв секрета | WIDGETS_DELETE |
Продолжение диалога
- Анонимный посетитель. Идентификатор диалога сохраняется в браузере отдельно для каждого виджета, поэтому после перезагрузки страницы переписка продолжается. При очистке данных сайта или переходе в другой браузер начнётся новый диалог. Анонимный диалог привязан к адресу сайта: на
shop.example.ruиexample.ruэто будут разные диалоги. - Опознанный пользователь. Диалог один и тот же на любом устройстве и в любом браузере, где посетитель авторизован.
Анонимный и опознанный диалоги — разные чаты. Когда посетитель входит на вашем сайте, открывается его личный диалог, а анонимная переписка в него не переносится: у оператора она остаётся отдельным обращением.
Кто может управлять виджетом
| Действие | Минимальная роль |
|---|---|
| Создать виджет | Редактор |
| Включать и выключать виджет, менять название, описание и оформление, указывать домен — новый или уже добавленный в проект | Редактор — у остальных участников сохранение завершится ошибкой «Не удалось сохранить изменения. Попробуйте ещё раз.» |
| Сбрасывать HMAC-секрет, удалять виджет | Администратор |
Кнопки виджета в строке канала видны всем участникам, но без нужной роли действие завершится ошибкой. Подробнее о ролях — Каналы.
Ограничения
- Шапка чата зашита жёстко — «FXRX / Чат поддержки»; заменить её на свой логотип и название компании нельзя.
- Интерфейс виджета только на русском языке: подписи, даты и время выводятся по-русски, выбрать другой язык нельзя.
- Виджет предлагает только чат: обратного звонка, email-формы и формы «представьтесь перед чатом» в нём нет.
- Настроек рабочего времени и текста вне рабочего времени нет.
- Посетитель не может отредактировать или удалить своё сообщение.
- «Печатает…», реакции и отметки «доставлено» и «прочитано» в виджете не поддерживаются — как и в остальных каналах.
- Размеры и шрифты чата не настраиваются: панель имеет фиксированный размер и на узком экране раскрывается почти на всю ширину.
- Стили виджета нельзя переопределить со стороны сайта — он изолирован от вашего CSS, чтобы оформление страницы его не ломало.
Удаление
Иконка корзины в строке канала открывает подтверждение «Удалить виджет?» с предупреждением: «Это действие необратимо. Будут также удалены все HMAC-секреты виджета — интеграции, использующие их, перестанут идентифицировать пользователей.» После удаления канал исчезает из списка, а вставленный на сайт сниппет перестаёт открывать чат: кнопка может остаться на странице, но по нажатию ничего не произойдёт, поэтому уберите сниппет с сайта. Домен виджета остаётся в списке разрешённых доменов проекта.
→ Каналы · Установка виджета · Поддержка