Задача по обработке пропущенных — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
Строка 1: Строка 1:
 
[[Практики|Наверх]]
 
[[Практики|Наверх]]
 +
 +
__TOC__
 +
  
 
'''Задача:''' Создать задачу по автоматическому перезвону клиентам, от которых был пропущенный звонок.  
 
'''Задача:''' Создать задачу по автоматическому перезвону клиентам, от которых был пропущенный звонок.  
  
Задача становится актуальной при большом потоке клиентов. В компании получается следующая ситуация: часть клиентов не хочет дожидаться ответа оператора и вешает трубку спустя минуту ожидания на линии. Как правило, это происходит в, так называемый, "час пик". Однако, терять клиентов из-за недостатка операторов многим не хочется. Возникает проблема - как перезвонить клиентам, от которых был пропущенный звонок.  
+
Задача становится актуальной при большом потоке клиентов. В компании получается следующая ситуация: часть клиентов не хочет дожидаться ответа оператора и вешает трубку спустя минуту ожидания на линии. Как правило, это происходит в, так называемый, "'''час пик'''". Однако, терять клиентов из-за недостатка операторов многим не хочется. Возникает проблема - как перезвонить клиентам, от которых был пропущенный звонок.  
  
Oktell позволяет решить эту задачу. Если клиент не дожидается ответа или переходит по веткам "занято", "нет ответа", система фиксирует это в базе данных. Затем, при освобождении оператора система резервирует его и дозванивается до клиента, от которого был пропущенный звонок. Оператор перед своими глазами видит всю информацию по предыдущему звонку от клиента: сколько времени тот ждал на линии, почему соединение прервалось и любые другие параметры.  
+
'''Oktell''' позволяет решить эту задачу. Если клиент не дожидается ответа или переходит по веткам "'''занято'''", "'''нет ответа'''", система фиксирует это в базе данных. Затем, при освобождении оператора система резервирует его и дозванивается до клиента, от которого был пропущенный звонок. Оператор перед своими глазами видит всю информацию по предыдущему звонку от клиента: сколько времени тот ждал на линии, почему соединение прервалось и любые другие параметры.  
  
 
Рассмотрим процедуру создания такой задачи.  
 
Рассмотрим процедуру создания такой задачи.  
Строка 73: Строка 76:
 
:Выражение определяет разницу в секундах между временем начала звонка и текущим временем. Вы можете вычислять это выражение в минутах или в другой величине, изменив первый параметр "'''ss'''", например на "'''mi'''". Подробнее в статье [[Выражения]].
 
:Выражение определяет разницу в секундах между временем начала звонка и текущим временем. Вы можете вычислять это выражение в минутах или в другой величине, изменив первый параметр "'''ss'''", например на "'''mi'''". Подробнее в статье [[Выражения]].
  
* Компонент "'''Запись в missed'''" - совершается следующий '''SQL'''-запрос:
+
* Компонент "'''Запись в missed'''" - записывает в таблицу missed детализированную информацию о пропущенном. Текст SQL запроса:
  
 
  insert into missed (phone, calldate, calledid, timewait, reason, operator)
 
  insert into missed (phone, calldate, calledid, timewait, reason, operator)
Строка 87: Строка 90:
 
:*@operator - переменная '''operator'''
 
:*@operator - переменная '''operator'''
  
 +
* Компонент "'''Запись в missed2'''" - записывает в таблицу missed2 информацию о первом пропущенном, а также подсчитывает количество пропущенных от конкретного номера. Если это первая запись, то добавляет ее полностью. Текст SQL запроса:
 +
 +
update missed2 set [count] = cast([count] as int)+1, calldate = @calldate,
 +
calledid = @calledid, timewait = @timewait, reason = @reason, operator = @operator
 +
where phone=@phone and recalldate is null
 +
if (@@rowcount = 0)
 +
insert into missed2 (phone, calldate, calledid, timewait, reason, operator, [count])
 +
values (@phone, @calldate, @calledid, @timewait, @reason, @operator, '0')
 +
 +
После создания сценария не забудьте назначить его в '''Администрирование.Общие настройки.Сценарии АТС''' в качестве служебного сценария обработки контента.
 +
 +
 +
=== Диалоговый сценарий обработки пропущенных ===
 +
 +
Диалоговый сценарий обработки пропущенных нужен для вывода информации оператору по предыдущему звонку от клиента. Вид сценария показан на рисунке:
 +
 +
Чтобы получить информацию, а также записать данные по перезвону (какой оператор и когда перезвонил) нужно ввести все переменные таблицы в сценарий (имя такое же как у столбца, тип '''поле таблицы''').  Данный сценарий будет работать фактически с таблицей missed2 (конкретнее по тем полям, которые не были обзвонены).
 +
 +
*Компонент "'''Форма оператора'''" - настройте вид формы удобным образом, чтобы оператор получил всю необходимую информацию. В примере создана следующая диалоговая форма:
 +
 +
*Компонент "'''Запись в Missed2'''". Компонент записывает в таблицу '''Missed2''' информацию о перезвоне.
 +
:*Переменной '''recalldate''' (поле таблицы) присваивается значение функции "'''Текущие дата и время'''"
 +
:*Переменной '''recalloperator''' (поле таблицы) присваивается значение функции "'''Имя оператора'''".
 +
 +
*Компонент "UPDATE MISSED" - заносит информацию в детализированную таблицу Missed. Проставляется отметка всем пропущенным от клиента, которые были не обработаны.
 +
 +
update missed
 +
set recalloperator=@recalloperator, recalldate=@recalldate
 +
where phone=@phone and recalldate is null
 +
 +
 +
=== Создание таблицы абонентов для задачи ===
 +
 +
=== Создание исходящей задачи ===
 +
 +
*Параметры:
 +
:* Тип: Исходящая с уведомлением
 +
:* Сценарий диалога
 +
:* Расписание задачи - установите время действия задачи
 +
:* Остановить задачу - Никогда не останавливать задачу
 +
 +
*Ресурсы:
 +
:* Выберите операторов, супервизоров и внешние линии
 +
 +
*Абоненты:
 +
:* Таблица абонентов - missed3
  
=== Создание задачи ===
+
*Дополнительно:
 +
:* Поведение сценария диалога после разрыва коммутации - Довести сценарий до конца
 +
:* Момент запуска сценария диалога - (рекомендуется) Сразу после поступления вызова

Версия 12:19, 11 февраля 2014

Наверх


Задача: Создать задачу по автоматическому перезвону клиентам, от которых был пропущенный звонок.

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

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

Рассмотрим процедуру создания такой задачи.

Таблица абонентов

В модуле Таблицы абонентов создаем таблицу "missed" со следующими полями:

  • Id - номер абонента в списке. Тип Int, назначение Идентификатор создается автоматически.
  • phone - телефон клиента. Тип Nvarchar (auto), назначение Телефон
  • calldate - время звонка. Тип Datetime
  • calledid - набранный номер. Тип Nvarchar (auto)
  • timewait - время ожидания в секундах. Тип Nvarchar (auto)
  • reason - причина потери соединения. Тип Nvarchar (auto)
  • operator - номер, на который происходило соединение. Тип Nvarchar (auto)
  • recalldate - дата перезвона. Тип Datetime
  • recalloperator - причина перезвона. Тип Nvarchar (auto)


Главный сценарий

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

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

Вид сценария приведен на рисунке:


Задач пропущенные 001.png


  • Компонент "Основные параметры" - в компоненте присваиваются
  • сессионная переменная calldate (дата/время) = функция "Текущие дата и время"
  • сессионная переменная calledid (строковая) = функция "Внешний номер (CalledId)"
  • сессионная переменная callerid (строковая) = функция "Номер абонента (CallerId)"
  • сессионная переменная reason (строковая) = строка "Клиент сбросил"
Переменная reason - это причина, по которой появился пропущенный. По умолчанию, задается значение "Клиент сбросил".
  • Компонент "flag=0" - сессионной переменной flag (строковая) присваивается строка "0". Эта переменная будет индикатором является ли звонок пропущенным. По умолчанию, считается пропущенным (значение 0).
  • Это нужно сделать, так как IVR-сценарий прекращается как только клиент кладет трубку, поэтому нужно заранее установить значения по умолчанию.
  • Компонент "operator" - сессионной переменной operator (строковая) присваивается строка "400". Переменная обозначает номер оператора или групповой номер, на который клиент не дозвонился.
  • Компонент "Переключение 1" - происходит переключение на обозначенный номер 400.
  • Компонент "flag=1". Переменной flag присваивается значение "1", если соединение прошло удачно.
  • В вашем сценарии входящей маршрутизации может быть довольно сложная система переключений. В этом случае перед каждым переключением нужно установить переменную operator с номером, а после удачного соединения переменной flag присвоить значение "1".
  • Если соединение неудачно, то в каждой ветке переменной reason переприсваивается соответствующая причина пропущенного звонка. Например, по ветке "Занято" (если все операторы заняты в разговоре, а очередь ожидания не установлена), переменной reason будет присвоено значение "Заня


Сценарий обработки контента

В сценарии обработки контента записывается информация о пропущенном звонке в таблицу missed. Вид сценария приведен на рисунке:

Задач пропущенные 002.png
  • Компонент "flag=0?" - определяет равна ли переменная flag значению "0", т.е. является ли звонок пропущенным. Если нет, то сценарий завершается (или переходит к дальнейшей обработке в вашем случае).
  • Компонент "timewait" - если звонок определен как пропущенный, то происходит присвоение переменной timewait (строковая) времени ожидания клиента с помощью следующего выражения:
DateDiff( ss , [calldate] , now ) 
Выражение определяет разницу в секундах между временем начала звонка и текущим временем. Вы можете вычислять это выражение в минутах или в другой величине, изменив первый параметр "ss", например на "mi". Подробнее в статье Выражения.
  • Компонент "Запись в missed" - записывает в таблицу missed детализированную информацию о пропущенном. Текст SQL запроса:
insert into missed (phone, calldate, calledid, timewait, reason, operator)
values (@phone, @calldate, @calledid, @timewait, @reason, @operator)
где
  • @phone - переменная callerid,
  • @calldate - переменная calldate,
  • @calledid - переменная calledid,
  • @timewait - переменная timewait,
  • @reason - переменная reason,
  • @operator - переменная operator
  • Компонент "Запись в missed2" - записывает в таблицу missed2 информацию о первом пропущенном, а также подсчитывает количество пропущенных от конкретного номера. Если это первая запись, то добавляет ее полностью. Текст SQL запроса:
update missed2 set [count] = cast([count] as int)+1, calldate = @calldate, 
calledid = @calledid, timewait = @timewait, reason = @reason, operator = @operator
where phone=@phone and recalldate is null
if (@@rowcount = 0) 
insert into missed2 (phone, calldate, calledid, timewait, reason, operator, [count])
values (@phone, @calldate, @calledid, @timewait, @reason, @operator, '0')

После создания сценария не забудьте назначить его в Администрирование.Общие настройки.Сценарии АТС в качестве служебного сценария обработки контента.


Диалоговый сценарий обработки пропущенных

Диалоговый сценарий обработки пропущенных нужен для вывода информации оператору по предыдущему звонку от клиента. Вид сценария показан на рисунке:

Чтобы получить информацию, а также записать данные по перезвону (какой оператор и когда перезвонил) нужно ввести все переменные таблицы в сценарий (имя такое же как у столбца, тип поле таблицы). Данный сценарий будет работать фактически с таблицей missed2 (конкретнее по тем полям, которые не были обзвонены).

  • Компонент "Форма оператора" - настройте вид формы удобным образом, чтобы оператор получил всю необходимую информацию. В примере создана следующая диалоговая форма:
  • Компонент "Запись в Missed2". Компонент записывает в таблицу Missed2 информацию о перезвоне.
  • Переменной recalldate (поле таблицы) присваивается значение функции "Текущие дата и время"
  • Переменной recalloperator (поле таблицы) присваивается значение функции "Имя оператора".
  • Компонент "UPDATE MISSED" - заносит информацию в детализированную таблицу Missed. Проставляется отметка всем пропущенным от клиента, которые были не обработаны.
update missed 
set recalloperator=@recalloperator, recalldate=@recalldate
where phone=@phone and recalldate is null


Создание таблицы абонентов для задачи

Создание исходящей задачи

  • Параметры:
  • Тип: Исходящая с уведомлением
  • Сценарий диалога
  • Расписание задачи - установите время действия задачи
  • Остановить задачу - Никогда не останавливать задачу
  • Ресурсы:
  • Выберите операторов, супервизоров и внешние линии
  • Абоненты:
  • Таблица абонентов - missed3
  • Дополнительно:
  • Поведение сценария диалога после разрыва коммутации - Довести сценарий до конца
  • Момент запуска сценария диалога - (рекомендуется) Сразу после поступления вызова