Модификация JWChat для обеспечения сервиса онлайн-консультации

22 декабря 2009 г.

Мотивация

Для многих организаций всё более актуальным становится вопрос упрощения и ускорения двустороннего взаимодействия с клиентами посредством ИТ. На корпоративных сайтах, как правило, можно встретить номера телефонов, адреса электронной почты, контакты менеджеров в различных системах сообщений, какую-либо разновидность гостевой книги (что то вроде «задать вопрос») и, в лучшем случае, форум.

Перед нами вопрос: каким образом можно обеспечить клиенту, зашедшему на сайт, удобную форму отправки вопроса и получение ответа «не отходя от кассы».

Предоставление контактов в популярных системах мгновенных сообщений не является для нас решением задачи, так как для ответа может потребоваться несколько людей (менеджеров, технических специалистов, экономистов). Да и внешний вид странички с «аськами» менеджеров идёт не на пользу представительскому имиджу организации. Большинство обычных пользователей не захотят ничего слышать о регистрации на форуме или в корпоративной системе сообщений, так как не рассчитывают на долгосрочное партнёрство или просто им легче набрать номер телефона.

Существует замечательная система онлайн-поддержки LiveZilla, которая однако предполагает наличие специального софта у операторов исключительно под ОС Windows. Внутренняя система сообщений в нашем предприятии организована с помощью XMPP, и не хотелось что то менять или нагружать менеджеров дополнительным программным средством. Внешние пользователи тоже могут подключаться и задавать вопросы в отдельной конференции, но это не пользуется популярностью (что не удивительно).

Таким образом, было принято решение разместить на сайте XMPP-клиент на Javascript. После прочтения нескольких обзоров (в том числе на Хабре) и практического изучения таких клиентов, я решил использовть для этой цели JWChat.

Реализация

Вновь установленный JWChat на начальной странице предлагает авторизоваться, либо зарегистрироваться.

JWChat

Как я уже писал выше, обязательная регистрация отобьёт желание к общению у большинства посетителей сайта. В JWChat на этот случай предусмотрена возможность гостевого входа. Прописываем в файле config.js нужные нам параметры:

var GUEST_ACC = "client";
var GUEST_PWD = "pass";

Так как учётная запись гостевая, то ничего страшного, что пароль будет в открытом виде. Возможность подключения нескольких клиентов сохраняется, так как к ресурсу добавляется случайное число в диапазоне от 0 до 999.

После авторизации открывается отдельное окно браузера, содержащее ростер. Понятно, что в нашем случае оно совершенно ни к чему. После присоединения к конференции открывается ещё одно окно для отображения чата, в свою очередь состоящее из четырёх фреймов. Это, собственно, и будет полезной областью, которая нужна пользователю.

JWChat
Очевидно, что удобство и эстетичность интерфейса в данном случае никуда не годны. Кроме того, если настроить для гостевой записи автовход в нужную конференцию, второе всплывающее окно будет заблокировано большинством браузеров с настройками по умолчанию.

В результате, нужно было представить только полезную часть (конференцию) без необходимости авторизации и сразу же при переходе пользователя на соответствующую страничку.

Таким образом, на странице онлайн-консультации я расположил все необходимые элементы с помощью фреймов и объединил скрипты, выполняемые в трёх отдельных окнах в один код, устранив конфликты некоторых переменных и функций. Ссылки на отдельные окна были заменены ссылками на фреймы нового окна.

Процедура авторизации под гостевой записью выполнялась сразу при событии onload в уже существующей функции init(). Я решил не переделывать кардинально HTML-код (так как это повлекло бы значительные изменения и кода Javascript), а лишь настроить CSS и убрать все ненужные элементы с помощью свойства display:none и нулевой ширины одного из фреймов.

После авторизации происходит автоматическое подключение к нужной конференции (можно настроить на сервере или в закладках гостевого пользователя с помощью полноценного XMPP-клиента). С помощью диалога prompt у пользователя запрашивается имя. Если имя по какой-либо причине не было введено, то вместо него присваивается номер от 0 до 999. Дополнительно к имени я добавляю префикс и постфикс, одинаковые для всех пользователей.

Использование

Учитывая невысокую посещаемость и специфику нашего сайта, было удивительно наблюдать достаточно большое количество вопросов, заданных с помощью нового сервиса (в том числе даже от иностранцев). Пока все клиенты остались довольны нововведением, что не стеснялись с помощью него же и сообщать. Кроме того, пользователи теперь не только задают вопросы, а сразу договариваются с сотрудниками обо всём и даже знакомятся с коллегами по профессии.

Стоит отметить, что в конференции для клиентов в рабочие часы постоянно находятся несколько наших сотрудников (подключенных через полноценный XMPP-клиент): менеджеры и специалисты для быстрого ответа, начальство — для контроля, а некоторые — просто из интереса. Таким образом, пользователь получает удобный и быстрый способ взаимодействия с нами прямо через свой браузер, менеджеры — новый источник потенциальных покупателей, а начальство и служба безопасности — прозрачность диалога с клиентом.

JWChat

Специально созданная тестовая страничка.

  • Похожие статьи
  • Предыдущие из рубрики