01 · ОПЕРАТОРАМ
Диалоги и статусы
Новые — обращения без ответа. Первый ответ переводит диалог в работу и назначает оператора. В работе — активные разговоры. Закрытые нельзя дополнять ответом, пока их не вернуть в работу.
Список, история, online-статус и счётчик непрочитанных обновляются автоматически.
02 · КОНТАКТЫ
Форма внутри истории
Форму можно выключить, показать до первого сообщения или после заданного количества сообщений посетителя. Для имени, email и телефона отдельно задаются видимость и обязательность.
После отправки контакты сохраняются в карточке посетителя, а подтверждение остаётся системным фрагментом диалога. Телефон хранится как +79999999999.
03 · НАСТРОЙКА
Внешний вид виджета
В разделе настроек выбираются тексты, цвет, сторона экрана, скругление, шрифт и аватар. Предпросмотр справа показывает сохранённую конфигурацию того же Site.
Каждый Site имеет собственный публичный ключ и независимые настройки.
04 · ИНТЕГРАТОРАМ
Подключение к странице
Добавьте код перед закрывающим тегом </body>. Публичный ключ берётся из блока «Код подключения» в настройках.
<script src="https://chat.example.ru/widget.js"
data-site-id="PUBLIC_KEY"></script>
Loader создаёт изолированный iframe и не переносит стили чата в страницу сайта.
05 · ПУБЛИКАЦИЯ
Домен и reverse proxy
Рекомендуется отдельное имя, например chat.example.ru. DNS-запись направляется на сервер, HTTPS завершается во внешнем Nginx, а запросы передаются на порт приложения.
Прокси должен поддерживать HTTP/1.1 и заголовки Upgrade/Connection для Socket.IO. Текущая сборка рассчитана на корень отдельного домена; размещение в папке требует поддержки base path.
06 · ТРЕБОВАНИЯ
Запуск и данные
- Docker и Docker Compose v2.
- Постоянный volume PostgreSQL.
- Случайный
JWT_SECRET и COOKIE_SECURE=true в интернете. - Публичный HTTPS origin и открытый WebSocket-прокси.
Идентификатор посетителя хранится в localStorage браузера. Диалоги, сообщения и контакты хранятся в PostgreSQL.
07 · АККАУНТЫ
Роли и назначения
Администратор видит все сайты и диалоги, создаёт операторов и задаёт им доступ. Оператор получает список и realtime-события только назначенных сайтов.
Изменение назначения применяется к открытому соединению. Отключённый аккаунт теряет доступ и не может войти снова.
08 · УСТАНОВКА
Проверка кода на сайте
При добавлении Site сервис открывает указанный публичный URL и ищет тег widget.js с public key этого Site. Проверку можно повторить после публикации страницы.
Проверяются только публичные HTTP/HTTPS-адреса; локальная сеть сервера недоступна для этой функции.
09 · УВЕДОМЛЕНИЯ
Звук и push на телефоне
Нажмите значок колокольчика в боковой панели и включите уведомления. В открытой операторской новые сообщения сопровождаются звуком, а в фоне приходят системные push.
На iPhone сначала откройте операторскую в Safari, выберите «Поделиться» → «На экран Домой», затем запустите RelayDesk с иконки и включите уведомления. Громкость push регулируется в настройках iOS.
10 · ИИ-БОТЫ
Suvvy Personal Channel
Администратор создаёт аккаунт типа «ИИ-бот», назначает ему сайты и получает webhook URL с одноразово показанным секретом. Их нужно перенести в канал Suvvy, а токен канала Suvvy — сохранить в карточке бота.
Каждое сообщение посетителя получают все включённые боты, назначенные этому сайту. Люди-операторы продолжают видеть и вести тот же диалог.
11 · ДИАГНОСТИКА
Если сообщения не приходят
- Откройте
/health и проверьте ответ сервиса. - Убедитесь, что Site включён и в embed-коде указан его public key.
- Проверьте HTTPS-сертификат и проксирование
/socket.io/. - Откройте виджет и операторскую в разных окнах и отправьте тестовое сообщение.