Editing IM Support Service/Wanted

From JaWiki (Jabber/XMPP wiki)
Jump to: navigation, search

Warning: The database has been locked for maintenance, so you will not be able to save your edits right now. You may wish to copy and paste your text into a text file and save it for later.

The administrator who locked it offered this explanation: MediaWiki upgrading

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
Список пожеланий для [[IM Support Service]]. Можно писать в свободной форме, но постарайтесь указать как можно больше деталей.
+
Список пожеланий для [[IM Support Service]].  
 +
 
 +
Если вам лень оформлять в ТЗ или пока не готовы, может оформить свои пожелания здесь. Но попытайтесь указать как можно больше деталей:
  
 
Плохой вариант:  
 
Плохой вариант:  
Line 7: Line 9:
 
* Чтобы в интерфейсе пользователя во время ожидания свободного оператора была кнопка "Грабить корованы", а в результате чтоб была табличка с награбленными ценностями и картинками. Так пользователь весело проведет время в ожидании и полчаса пролетят незаметно :)
 
* Чтобы в интерфейсе пользователя во время ожидания свободного оператора была кнопка "Грабить корованы", а в результате чтоб была табличка с награбленными ценностями и картинками. Так пользователь весело проведет время в ожидании и полчаса пролетят незаметно :)
  
(Не факт, что все ваши запросы будут реализованы, но место под доделку или плагин точно забронируем :)
+
Не факт, что все ваши запросы будут реализованы, но место под доделку или плагин точно забронируем :)
 
+
Вторая просьба: ознакомтесь с терминологией ниже и постарайтесь её придерживаться.
+
 
+
== Общая структура, терминология ==
+
''Черновой вариант. На примере''
+
 
+
Магазин бытовой техники решил оказывать консультации через ICQ, Jabber-у, MSN и др. IM сети. Он поднимает у себя '''сервис поддержки'''. Это компонент к Jabber-серверу с адресом, например, support.example.ru. (адрес магазина -- example.ru)
+
 
+
На этом сервисе, заводится один или несколько '''узлов поддержки'''. Каждый узел имеет свою специализацию. Например: вопросы продаж (sell@support.shop.ru), вопросы доставки (delivery@support.shop.ru), консультанты по оборудованию (consulting@support.shop.ru) и т.д.
+
 
+
Каждый узел получает свой '''контактный адрес''' (тот, что в скобках) в сети Jabber, а также с помощью транспортов или напрямую по одному контактному адресу в других IM сетях. На контактный адрес будет писать '''клиент''' — человек с вопросом.
+
 
+
К каждому узлу привязываются '''операторы''' — сотрудники магазина, которые разбираются в специализации узла и  будут отвечать на вопросы клиентов.
+
 
+
Когда клиент пишет на контактный адрес — это '''прямой контакт''', когда оператор от имени сервиса пишет клиенту — это '''обратный контакт'''
+
 
+
Когда клиент пишет на контактный адрес свой вопрос, он попадает в '''очередь''' — сервис пытается найти свободного оператора. Когда оператор найден, они вместе с клиентом попадают в общий '''чат'''. '''История''' чата сохраняется сервисом и может быть доступна в дальнейшем.
+
  
 
== Пожелания ==
 
== Пожелания ==
  
=== Сервис ===  
+
=== Общая структура ===  
  
* Один оператор в нескольких узлах. При этом, если оператор разговаривает с клиентом через один узел, то он считается занятым и во всех остальных.  
+
* Специализации поддержки. Например, магазин продажи бытовой техники может разделить поддержку по следующим специализациям: вопросы продаж, вопросы доставки, вопросы ремонта, консультанты по технике, кредит. <br/>В каждой специализации свои операторы и своя очередь клиентов, но один оператор может находиться в нескольких специализациях одновременно.
''Комментарий: Люди способны вести больше одного диалога одновременно, поэтому эту настройку нужно либо вводить опционально (даже в рамках одной группы), либо с настройкой количества одновременных сессий.''
+
  
* Группы в пределах одного узла поддержки. Нужно для того, чтобы разделить, например, всех операторов на две группы: первая волна и вторая волна. Вторая волна задействуется только тогда, когда в первой никого нет или все заняты. <br/>Могут быть группы, которые никогда не задействуются автоматически. В них, например, можно переместить специалистов, к которым клиент может только через перенаправление другим оператором. (т.е. нужна возможность перенаправлять не только на определенного оператора, но и на группу)
+
* Группы в пределах одной специализации. Нужно для того, чтобы разделить, например, всех операторов на две группы: первая волна и вторая волна. Вторая волна задействуется только тогда, когда в первой никого нет или все заняты. <br/>Могут быть группы, которые никогда не задействуются автоматически. В них, например, можно переместить специалистов, к которым клиент может только через перенаправление другим оператором. (т.е. нужна возможность перенаправлять не только на определенного оператора, но и на группу)
 
+
* Возможность обратного контакта клиента службой поддержки. Это может понадобится в случае, когда моментальное решение проблемы не возможно и требуется сообщение о результате решения (для ранее обращавшихся клиентов). Либо для срочного уведомления клиентов (обращавшихся или не обращавшихся ранее в службу поддержки). Клиенту сообщения должны приходить с контактного адреса сервиса, а не от JID-а оператора.
+
 
+
* Временные узлы поддержки. см соотвествующий [[IM Support Service/UseCases#Использование временных узлов поддержки|юзекейс]]
+
 
+
* Расписание работы узла поддержки. Чтобы можно было указать дни недели и время работы узла поддержки. В остальное время узел может быть выключен или отвечать стандартным сообщением "обратитесь в рабочее время ...". Выключение узла по расписанию лучше производить в "мягком режиме" — не затрагивая активные чаты с клиентами.
+
  
 
=== Интерфейсы, роли, возможности ===
 
=== Интерфейсы, роли, возможности ===
Line 46: Line 24:
 
''Те, у кого проблемы''
 
''Те, у кого проблемы''
  
* Возможность отправить файл оператору. Файл должен быть сохранен в истории чата, и доступен позже, при разборе полетов (если вдруг понадобится).  
+
* Возможность отправить файл оператору. Файл должен быть сохранен в истории чата, и доступен позже, при разборе полетов (если вдруг понадобиться).  
  
* Чтобы статус контактного адреса узла (JID, UIN, и т.д.), на которой клиент пишет свой вопрос и через который происходит общение, отображал текущее состояние сервиса:  
+
* Чтобы статус сервиса (JID, UIN, ссылка на web-странице), на которой клиент пишет свой вопрос и через который происходит общение, отображал текущее состояние сервиса:  
 
** online -- есть свободные операторы
 
** online -- есть свободные операторы
 
** away -- есть свободные операторы, но они AFK
 
** away -- есть свободные операторы, но они AFK
Line 58: Line 36:
  
 
===== Клиентское ПО =====
 
===== Клиентское ПО =====
У клиента не должно быть ограничений по выбору средства связи с техподдержкой.
+
Если чуть-чуть допилить какой-нибудь джаббер клиент, сделать автоматическую регистрацию (userXXXXXXXX@clients.example.com), добавить туда пару функций, то получится замечательное ПО для обращения в техподдержку.
 
+
* Любая IM сеть и любой IM клиент, вплоть до самого дубового, который поддерживает только текстовый интерфейс (пересылка файлов в этом случае будет через web-сервер сервиса).
+
 
+
* Форма с чатом на сайте сервиса поддержки.
+
 
+
====== Собственный клиент ======
+
Если чуть-чуть допилить какой-нибудь джаббер клиент, сделать автоматическую регистрацию (userXXXXXXXX@clients.shop.ru), добавить туда пару функций, выкинуть все лишнее, то получится замечательное ПО для обращения в техподдержку, которое можно прикладывать к дистрибутивам программ.
+
  
 
* Упрощенный интерфейс для отправки скриншота. Кнопочка, которая сразу же или по истечении N секунд сделает скриншот экрана, сохранит в читаемый, хорошо сжатый формат и отправит оператору.  
 
* Упрощенный интерфейс для отправки скриншота. Кнопочка, которая сразу же или по истечении N секунд сделает скриншот экрана, сохранит в читаемый, хорошо сжатый формат и отправит оператору.  
Line 74: Line 45:
 
''Те, кто решает проблемы''
 
''Те, кто решает проблемы''
  
* AFK -- возможность с помощью статуса (away, n/a, dnd и т.д.) или чего-то другого указать, что оператора нет за компом и не надо перенаправлять на него клиентов.
+
* AFK -- возможность с помощью статуса или чего-то другого указать, что меня нет за компом и не надо перенаправлять на меня клиентов.
  
* Возможность прямо из чата перенаправить клиента другому оператору, в другую группу, в другой узел. Но не покидать чат, пока не войдет другой оператор. (чтобы клиенту не было скучно)
+
* Возможность прямо из чата перенаправить клиента другому оператору, в другую группу, в другую специализацию. Не покидать чат, пока не войдет другой оператор. (чтобы клиенту не было скучно)
  
* Пригласить другого оператора в чат. (чат на три человека)
+
* Пригласить другого оператора в общий чат
  
 
* Если оператор входит не в новый чат, а по перенаправлению или приглашению, то должна выдаться вся история этого чата.  
 
* Если оператор входит не в новый чат, а по перенаправлению или приглашению, то должна выдаться вся история этого чата.  
Line 93: Line 64:
 
Команды оператора, которые не видит клиент, но распознает сервис поддержки. Могут начинаться с особого символа, но здесь это "!". С такими командами оператор может не покидая чата быстро выполнить рутинные действия.
 
Команды оператора, которые не видит клиент, но распознает сервис поддержки. Могут начинаться с особого символа, но здесь это "!". С такими командами оператор может не покидая чата быстро выполнить рутинные действия.
  
* !mute. Все дальнейшие сообщения не транслируются клиенту, но остаются в истории и видны другим операторам (если есть). !mute еще раз и сообщения опять пойдут к клиенту. Нужно для внутренних разговоров между операторами, которые хорошо бы сохранить в истории этого чата.  
+
* !mute. Все дальнейшие сообщения не транслируются клиенту, но остаются в истории и видны другим операторам (если есть). !mute еще раз и сообщения опять пойдут к клиенту. Нужно для внутренних разговоров между операторами, которые хорошо бы сохранить в логе этого чата.  
  
 
* !history. Подтянуть историю прошлых разговоров с этим клиентом
 
* !history. Подтянуть историю прошлых разговоров с этим клиентом
  
* !faq <ID>. Выдать клиенту заранее заготовленный ответ из базы часто задаваемых вопросов. С !mute сообщение будет только оператору (операторам)
+
* !faq <ID>. Выдать клиенту (и себе) заранее заготовленный ответ из базы часто задаваемых вопросов. С !mute сообщение будет только оператору (операторам)
  
* !sfaq <keyword> Искать в базе вопросов, ответ выдаётся только операторам. Найденную запись потом можно показать клиенту с помощью !faq
+
* !sfaq <keyword> Искать в базе вопросов, ответ выдаётся только операторам. Найденную запись потом можно выдать с помощью !faq
  
 
* !file [ID]. Отправить файл клиенту. Так как прямая отправка не сохранится на сервере и в логах, то файл предварительно надо загрузить на web-сервер, а потом вставить публичную ссылку на него в чат. Примерное использование см  в [[IM Support Service/UseCases|юзекейсах]].
 
* !file [ID]. Отправить файл клиенту. Так как прямая отправка не сохранится на сервере и в логах, то файл предварительно надо загрузить на web-сервер, а потом вставить публичную ссылку на него в чат. Примерное использование см  в [[IM Support Service/UseCases|юзекейсах]].
Line 115: Line 86:
 
''Хотят все знать.''
 
''Хотят все знать.''
  
* Cтатистика по узлу (по всем узлам сервиса). Параметры: количество клиентов, средняя продолжительность разговора, сколько не дождалось оператора, среднее время ожидания в очереди.
+
* Общая статистика. Параметры: количество клиентов, продолжительность разговора, сколько не дождалось оператора, среднее время ожидания в очереди.
  
 
* Статистика по оператору. Параметры: количество клиентов, средняя продолжительность разговора, сколько времени провел в AFK, сколько времени провел в онлайне.  
 
* Статистика по оператору. Параметры: количество клиентов, средняя продолжительность разговора, сколько времени провел в AFK, сколько времени провел в онлайне.  
Line 121: Line 92:
 
* Статистика по клиенту. Параметры: сколько раз обращался, сколько времени провел в очереди/в разговоре.  
 
* Статистика по клиенту. Параметры: сколько раз обращался, сколько времени провел в очереди/в разговоре.  
  
* Текущее состояние узла. Количество операторов всего/онлайн/afk/свободны/в разговоре. Количество клиентов в очереди/в разговоре. Время проведенное текущими клиентами в очереди/в разговоре.
+
* Текущее состояние специализации. Количество операторов всего/онлайн/afk/свободны/в разговоре. Количество клиентов в очереди/в разговоре.
  
 
=== Алгоритмы ===
 
=== Алгоритмы ===
  
 
==== Поиск свободного оператора ====
 
==== Поиск свободного оператора ====
Когда клиент оформил вопрос, нужно найти оператора, который сможет ему помочь. Самый простой вариант: отправляется приглашение в чат первому свободному, если он не ответил, то следующему свободному и т.д. Но тут можно расширить:
+
Когда клиент оформил вопрос, нужно найти оператора, который сможет ему помочь. Самый простой вариант: первый свободный, если не ответил, то следующий свободный и т.д. Но тут можно расширить:
  
 
* Чтобы можно было в алгоритм определения свободности оператора вставить свои проверки. Например, чтобы учитывать занятость оператора в других алогичных системах (голосовая поддержка).  
 
* Чтобы можно было в алгоритм определения свободности оператора вставить свои проверки. Например, чтобы учитывать занятость оператора в других алогичных системах (голосовая поддержка).  
  
* Порядок опроса с учетом внутренних групп. В каких группах искать в первую очередь, в каких во вторую и т.п. Условия перехода к следующей группе: в этой все заняты, никто в этой не открыл чат в течении N минут, все отказались по N раз и т.д.
+
* Поиск с учетом внутренних групп. В каких группах искать в первую очередь, в каких во вторую и т.п. Условия перехода к следующей группе: все заняты, никто не открыл чат в течении N минут, все отказались по N раз и т.п.
  
* Если клиент уже обращался, то лучше попытаться связать его с тем оператором, с которым он говорил в последний раз.
+
* Если клиент уже обращался, то лучше попытаться связать его с тем оператором, с которым он говорил впоследний раз.
  
* Учитывать языки, которыми владеет клиент. Учитывать их приоритеты. Сначала проверить тех операторов, которые владеют языком с наивысшим приоритетом, затем тех, которые владеют языком с меньшим приоритетом и т.д. Операторов, которые не смогут общаться  с клиентом, не трогать.
+
* Учитывать языки, которыми владеет клиент, учитывая приоритеты. Сначала проверить тех операторов, которые владеют языком с наивысшим приоритетом, затем тех, которые владеют языком с меньшим приоритетом и т.д. Операторов, которые не смог общаться  с клиентом, не трогать.  
 
+
* Если разрешено несколько чатов у одного оператора одновременно, то те, кто уже разговаривают, должны опрашиваться в последнюю очередь.
+
 
+
* Расписание работы оператора. (Часы, дни недели, и т.п., сменный график). Если оператор в сети, свободен, но по расписанию он должен отдыхать, то не трогать его.
+
  
 
=== Программные интерфейсы ===
 
=== Программные интерфейсы ===
Line 150: Line 117:
 
* Оператор перенаправил клиента другому оператору.  
 
* Оператор перенаправил клиента другому оператору.  
  
* Оператор вышел в онлай, ушел в оффлай/afk и т.д.
+
* Оператор вышел в онлай, ушел в оффлай/afk.
 
+
* Клиент обратился с вопросом и встал в очередь
+
 
+
* Клиент вошел в чат с оператором.
+
 
+
* Клиент закрыл чат с оператором.
+
  
 
==== Запросы информации ====
 
==== Запросы информации ====
Line 163: Line 124:
 
* Вытянуть историю чата по времени, ID чата, по оператору и клиенту.
 
* Вытянуть историю чата по времени, ID чата, по оператору и клиенту.
  
* Получить текущее состояние всего сервиса (как её видит аналитик), определенного узла, оператора или клиента.
+
* Узнать текущее состояние всей системы, как её видит аналитик, определенного оператора или клиента.
 
+
* Получить статистику (ту же, которая доступна аналитикам).
+
 
+
==== Управление ====
+
Для автоматизации рутинных задач по управлению сервисом нужны веревочки которые можно дергать из вне.
+
 
+
* Временное отключение, включение операторов в узлах, групп в узлах, самих узлов, всего сервиса. (все это с разрывом текущих чатов и без). Например для настройки гибкой системы расписаний прямо из внутреннего табельного учета, где учитываются все праздники выходные, отпуска, сокращенные рабочие дни и т.п.
+
 
+
* Перемещение операторов из одной группы в другую (в пределах узла, между узлами и т.д.)
+
 
+
* Добавление оператора (его JID-а), удаление.
+
  
* Отправка сообщений операторам группы, в чаты с клиентам, в чат с определенным клиентом, в чат с определенным оператором. Для всяких широковещательных автоматических объявлений.
+
* Узнать статистику, которая доступна аналитикам.

Please note that all contributions to JaWiki (Jabber/XMPP wiki) may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see JaWiki (Jabber/XMPP wiki):Copyrights for details). Do not submit copyrighted work without permission!

Cancel | Editing help (opens in new window)