13 KiB
Чат с посетителями
Модуль добавляет переписку с менеджером на публичные страницы сайта. Регистрация посетителя не требуется. Если установлены товарный и торговый модули, менеджер видит товар на открытой странице, корзину и заказы покупателя. ИИ, файлы и внешние мессенджеры в эту версию не входят.
Подключение
- Откройте Модули → Управление, установите «Чат с посетителями».
- Откройте Чат с посетителями → Настройки и включите чат.
- Задайте дни, начало и окончание рабочего дня, часовой пояс. По умолчанию: понедельник-пятница, 09:00-16:00, Europe/Moscow.
- Настройте заголовок окна, текст вне сети и быстрые ответы (один на строку).
- В ролях предоставьте менеджерам право Чат: просмотр и ответы. Настройки и работа с чужими диалогами требуют дополнительного права Чат: настройки и управление чужими диалогами.
Публичные шаблоны редактировать не нужно. Модуль подключает окно при штатном рендеринге HTML-страниц. На служебных документах и страницах ошибок окна нет. На автономных HTML-файлах вне движка автоматического подключения нет.
Работа менеджера
- Откройте вкладку Диалоги и включите Принимаю чаты.
- Оставьте эту вкладку открытой. Присутствие подтверждается короткими запросами; через 90 секунд без подтверждения менеджер перестаёт считаться доступным.
- Во Входящих выберите диалог и нажмите Принять. Он закрепится за вами и появится в Моих диалогах. Два менеджера одновременно принять его не смогут.
- Напишите ответ или выберите быстрый ответ. Ссылка на опубликованный товар текущего магазина дополнится карточкой товара; исходный текст сохранится. Внешние ссылки остаются обычными ссылками. Товар можно также найти и отправить кнопкой выбора товара в переписке.
- Режим Внутренняя заметка сохраняет текст только для сотрудников.
- Ожидание оставляет диалог за вами. Новое сообщение посетителя возвращает его в работу. При завершении выберите результат; для «Связаться позже» укажите дату и время. Завершённый диалог попадает в архив.
- Можно передать диалог другому менеджеру, который сейчас принимает чаты.
- Новый вопрос посетителя после завершения создаёт отдельный диалог во входящих. Прежняя переписка остаётся в архиве и не смешивается с новой.
Фильтры: входящие, мои, в работе, ожидание, завершённые, все. По 40 диалогов на страницу. Уведомление о новых диалогах/непрочитанных сообщениях появляется в общем колокольчике. Звук включается отдельно во вкладке диалогов.
Отправлено означает запись в базу. Прочитано появляется после открытия сообщений получателем в видимой активной вкладке. Загрузка списка диалогов сама по себе не отмечает сообщения прочитанными.
Для посетителя
Окно доступно с кнопки «Написать нам». В рабочее время при наличии принимающего менеджера показывается статус «Менеджер на связи». В остальных случаях можно оставить сообщение и контакт для последующего ответа: телефон или email. Имя и контакт не обязательны для отправки; без контакта ответ можно прочитать только при возвращении в тот же браузер. Автоматических SMS/писем модуль не шлёт.
Переписка сохраняется между переходами по сайту в том же браузере. Очистка cookie, другой браузер или истечение cookie лишают посетителя доступа к прежней переписке. Секрет посетителя хранится в HttpOnly cookie до 180 дней, в базе находится только его SHA-256. В localStorage сохраняется лишь признак наличия чата, не текст и не контакты. На общем компьютере нужно учитывать доступ следующего пользователя того же браузера к переписке.
Технические границы
- PHP 7.3, MySQL/MariaDB, обычные AJAX-запросы. WebSocket и внешний сервис не нужны.
- До первого открытия чата не создаются диалоги и не опрашивается очередь.
- После начала переписки открытое окно опрашивает новые сообщения раз в 4 секунды, закрытое раз в 30 секунд; скрытая вкладка приостанавливает этот опрос.
- Административная очередь обновляется раз в 5 секунд в видимой вкладке.
- Текст до 4000 символов, без исполняемого HTML. Отправка защищена CSRF, лимитами по IP и скрытым полем от простых автоматических отправок.
- Повтор запроса с тем же ключом не создаёт дубль сообщения.
- Общие изменения пишутся в аудит без содержимого сообщений и контактов.
- Отключение модуля сохраняет данные. Удаление модуля уничтожает его таблицы диалогов, сообщений и присутствия. Перед удалением сделайте резервную копию.
- Автоматического удаления истории по сроку в этой версии нет.
При установке на рабочий сайт обновите информацию об обработке контактов в соответствии с тем, как ваша организация использует чат.
Дополнения версии 1.1.0
Повторное посещение и контакты (1.2.1)
Переписка и ранее отправленные контакты восстанавливаются в том же браузере по cookie чата, независимо от PHP-сессии. Срок привязки продлевается на 180 дней. Очистка cookie или смена браузера/устройства не позволяет восстановить анонимную историю автоматически. Сообщения хранятся в БД, а не в localStorage.
В настройках есть «Контактные поля раскрыты по умолчанию»: включено — имя и контакт сразу видны, выключено — блок нужно раскрыть. Во время текущего посещения ручное переключение блока и ввод посетителя не сбрасываются опросом.
Архив 1.2.0
Завершённые чаты выводятся отдельным списком с фильтрами по датам завершения, менеджеру, результату, ответам и контактам. Поиск: имя, контакт, источник, точный номер. В каждой строке отдельно указаны сообщения посетителя, ответы менеджера, внутренние заметки и служебные события. Сводка учитывает всю выборку. Нажмите номер/имя для просмотра истории по дням. История не обрезается: длинная переписка имеет страницы по 100 сообщений. «К списку» сохраняет фильтры. Просмотр архива не меняет прочитанность и не включает режим приёма чатов.
В версии 1.1.2 добавлены хлебные крошки и предупреждение при уходе из окна чата. Оно появляется, если включено «Принимаю чаты», идёт отправка или остался черновик. Переход по ссылке можно отменить; при закрытии/обновлении вкладки браузер показывает собственное предупреждение (его текст изменить нельзя). На мобильных устройствах закрытие приложения браузера не всегда вызывает это событие. Без других менеджеров онлайн чат переходит в «Ответим позже» после истечения присутствия (до 90 секунд). Само окно остаётся доступным и сохраняет обращения.
Появились отдельные вкладки «Архив», «Статистика» и «Быстрые ответы». В очереди видны новые чаты, ожидание ответа и назначенный менеджер. Чтение сообщения не снимает ожидание ответа. Завершённые чаты не удаляются автоматически; новое обращение того же посетителя создаётся отдельно.
Публичное имя отвечающего задаётся в настройках. Имена сотрудников видны только в панели. Источники, UTM, реферер, IP и браузер доступны внутри переписки. Архивная статистика отражает отдельные завершённые диалоги. Общая статистика группирует диалоги по дате создания, а ответы менеджеров считает за выбранный период.
Товары и уведомления (1.3.0)
Ссылки на опубликованные товары текущего сайта превращаются в мини-карточки с изображением, названием, артикулом и ценой, если данные есть в каталоге. Модуль не запрашивает OpenGraph у внешних сайтов. Если менеджер отправляет ссылку на рабочий домен с локального или тестового сайта, добавьте этот домен в настройку «Дополнительные домены магазина для превью товаров».
Очередь ставит новые обращения выше уже принятых; видно время ожидания и недоступность назначенного менеджера. По желанию включите уведомления браузера кнопкой во вкладке диалогов. Для браузерных уведомлений нужна открытая вкладка панели и разрешение браузера. Обновление до версии 1.3.0 применяет миграцию 003.
Рядом с плашками заказов и форм отображается число новых/непросмотренных чатов.