Плагин HelpDesk

Назначение плагина

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

Алгоритм работы

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

Активные темы - темы на которые не было ответов со стороны провайдера.

Закрытые темы - темы, по которым обсуждение уже завершено.

Новые темы - темы , которые не помечены как прочитанные.

Менеджеры могут просматривать сообщения от пользователей и отвечать на них . Менеджер может назначить себя ответственным за конкретную тему.

Информация о новых темах и сообщениях рассылается на почту провайдера . Оповещения о новых сообщениях от менеджеров приходят на почту клиента.

Темы могут автоматически закрываться по прошествии некоторого периода.

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

Установка и настройка плагина

Плагин устанавливается стандартным образом. В настройках плагина (Плагины->HelpDesk->Конфигурация ) задайте конфигурацию :

Конфигурация
# папка для хранения вложенных файлов
file.storage.root.path=/home/bill/BGBillingServer/filestorage/helpdesk
# Список режимов для договоров
mode.list=off:выключено;on:включено;package:пакетный
# Режим по умолчанию
mode.default.id=on
# Проверка на присутствие статуса при закрытии темы (не действует, если у договора пакетный режим): 0 - не проверять, 1 - проверять
state.mode=0
# режим по умолчанию: 0 - отключено; 1 - по телефону; 2 - по e-mail
default.comm.mode=0
# доступность режима оповещения по телефону (true/false)
default.comm.phone.enable=false
# доступность режима оповещения по e-mail (true/false)
default.comm.email.enable=true
# Тема письма с оповещением
default.comm.email.subject=HelpDesk => Опубликован ответ на Ваше сообщение в теме: [{id}] {title}
# Параметр "Закрывать автоматически" по умолчанию при открытии темы (true - да, false - нет)
topic.avto.closed.default=false
# наименование пункта меню в Web-интерфейсе (опционально)
web.menuItem1=HelpDesk
# код расхода, начисляемого пользователю в непакетном режиме
topic.charge.type.id=51
# шаблон комментария для расхода по обращению в непакетном режиме
topic.default.comment=Работы по обращению номер {topicId}
# стоимость обращения по умолчанию в непакетном режиме
topic.default.cost=2000.0

Для рассылки оповещений нужно настроить задачу планировщика "Рассылка уведомлений о приходе новых сообщений" для менеджеров. В параметрах запуска задачи надо указать:

#адрес провайдера
mail.to=billing@zzz.ru
#шаблон номера договоров, если его задать, то будут присылаться только сообщения из договоров, удовлетворяющих этому шаблону
#contract.title.regexp=
#битовая маска группы договоров, если её задать, то будут присылаться только сообщения из договоров, принадлежащих этим группам
#contract.group.mask=
# тема сообщений о приходе новых сообщений в helpdesk
mail.subject=HelpDesk => Не отвеченные сообщений - {countAll}/{countDay}/{countHour} (всего/сегодня/за час)
# текст сообщения о приходе новых сообщений в helpdesk
mail.body={countAll} - всего не отвеченных\n{countDay} - новых сообщений за сегодня\n{countHour} - новых сообщений за последний час

Для автоматического закрытия старых тем, на которые нет ответов менеджеров, нужно настроить задачу "Автозакрытие тем через заданный интервал". Параметры запуска это задачи :

# через сколько дней после последнего сообщения от пользователя закрывать тему в случае отсутствия сообщений от клиента
topic.avto.closed.period=5
#куда слать оповещение о закрытых темах
mail.to=billing@zzz.ru

Для рассылки персональных оповещений надо настроить задачу "Рассылка персональных уведомлений о новых сообщениях", она позволяет настроить для каждого менеджера уведомления на e-mail и/или на jabber о появлении новых ответов в его теме, а также в темах, которые ещё не закреплены за менеджером. Пример конфигурации:

# В конфигурации задачи можно ставить параметры (шаблоны):
mail.body=Ваши темы:\n{youNews}\nНичейные:\n{unmanagedNews}
mail.subject=HelpDesk => {youCountAll} новых сообщений (и {unmanagedCountAll} новых ничейных)
mail.bodypart={title} (ID {id}) - {count} новых\n
 
# В конфигурации задачи нужно ставить параметр - каким пользователям и куда слать.
user.dimon.mail=dimon@mail.ru
user.dimon.jid=dimon@jabber.ru
user.test1.mail=test1@bitel.ru
user.test2.jid=test2@jabber.ru

Для того, чтобы работали оповещения на jabber, в конфигурации СЕРВЕРА должны быть прописаны данные jabber-аккаунта (бота), например:

# Параметры jabber
# логин@сервер/ресурс
jabber.jid=bgbilling@jabber.***.ru/helpdesk
# пароль
jabber.password=***

Также есть "Рассылка персональных уведомлений о новых сообщениях" и у клиентов. При выборе уведомления по e-mail в конфигурации плагина следует добавить url сервера биллинга, чтобы в письмо добавлялась ссылка на топик. Пример конфигурации:

url.reference.topic=http://localhost:9580/bgbilling/webexecuter?

Можно, чтобы при создании темы пользователь выбрал дополнительную информацию которая подставиться к названию темы в квадратные скобки( тогда название темы будет иметь следующий вид - [выбор пользователя] Название темы )

# Описание выбора
topic.additionalTextToSubject.title=Версия биллинга:
# Варианты выбора через запятую
topic.additionalTextToSubject.options=5.1,5.2,6.0,6.1