Задача по обработке пропущенных — различия между версиями
Строка 36: | Строка 36: | ||
− | Компонент "'''Основные параметры'''" - в компоненте присваиваются | + | *Компонент "'''Основные параметры'''" - в компоненте присваиваются |
− | * сессионная переменная '''calldate''' (дата/время) = функция "'''Текущие дата и время'''" | + | :* сессионная переменная '''calldate''' (дата/время) = функция "'''Текущие дата и время'''" |
− | * сессионная переменная '''calledid''' (строковая) = функция "'''Внешний номер (CalledId)'''" | + | :* сессионная переменная '''calledid''' (строковая) = функция "'''Внешний номер (CalledId)'''" |
− | * сессионная переменная '''callerid''' (строковая) = функция "'''Номер абонента (CallerId)'''" | + | :* сессионная переменная '''callerid''' (строковая) = функция "'''Номер абонента (CallerId)'''" |
− | * сессионная переменная '''reason''' (строковая) = строка "'''Клиент сбросил'''" | + | :* сессионная переменная '''reason''' (строковая) = строка "'''Клиент сбросил'''" |
− | Переменная '''reason''' - это причина, по которой появился пропущенный. По умолчанию, задается значение "'''Клиент сбросил'''". | + | :Переменная '''reason''' - это причина, по которой появился пропущенный. По умолчанию, задается значение "'''Клиент сбросил'''". |
− | Компонент "'''flag=0'''" - сессионной переменной '''flag''' (строковая) присваивается строка "'''0'''". Эта переменная будет индикатором является ли звонок пропущенным. По умолчанию, считается пропущенным (значение '''0'''). | + | *Компонент "'''flag=0'''" - сессионной переменной '''flag''' (строковая) присваивается строка "'''0'''". Эта переменная будет индикатором является ли звонок пропущенным. По умолчанию, считается пропущенным (значение '''0'''). |
− | *Это нужно сделать, так как '''IVR'''-сценарий прекращается как только клиент кладет трубку, поэтому нужно заранее установить значения по умолчанию. | + | :*Это нужно сделать, так как '''IVR'''-сценарий прекращается как только клиент кладет трубку, поэтому нужно заранее установить значения по умолчанию. |
− | Компонент "'''operator'''" - сессионной переменной '''operator''' (строковая) присваивается строка "'''400'''". Переменная обозначает номер оператора или групповой номер, на который клиент не дозвонился. | + | *Компонент "'''operator'''" - сессионной переменной '''operator''' (строковая) присваивается строка "'''400'''". Переменная обозначает номер оператора или групповой номер, на который клиент не дозвонился. |
− | Компонент "'''Переключение'''" - происходит переключение на обозначенный номер '''400'''. | + | *Компонент "'''Переключение'''" - происходит переключение на обозначенный номер '''400'''. |
− | Компонент "'''flag=1'''". Переменной '''flag''' присваивается значение "'''1'''", если соединение прошло удачно. | + | *Компонент "'''flag=1'''". Переменной '''flag''' присваивается значение "'''1'''", если соединение прошло удачно. |
− | *В вашем сценарии входящей маршрутизации может быть довольно сложная система переключений. В этом случае перед каждым переключением нужно установить переменную '''operator''' с номером, а после удачного соединения переменной '''flag''' присвоить значение "'''1'''". | + | :*В вашем сценарии входящей маршрутизации может быть довольно сложная система переключений. В этом случае перед каждым переключением нужно установить переменную '''operator''' с номером, а после удачного соединения переменной '''flag''' присвоить значение "'''1'''". |
− | *Если соединение неудачно, то в каждой ветке переменной reason переприсваивается соответствующая причина пропущенного звонка. Например, по ветке "'''Занято'''" (если все операторы заняты в разговоре, а очередь ожидания не установлена), переменной '''reason''' будет присвоено значение "'''Занято'''". | + | :*Если соединение неудачно, то в каждой ветке переменной reason переприсваивается соответствующая причина пропущенного звонка. Например, по ветке "'''Занято'''" (если все операторы заняты в разговоре, а очередь ожидания не установлена), переменной '''reason''' будет присвоено значение "'''Занято'''". |
Версия 07:04, 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)
Главный сценарий
Ниже приведенный сценарий является упрощенным примером. В сценарии показываются основные моменты, на которые стоит обратить внимание при составлении задачи по перезвону.
Все основные переменные в этом сценарии требуется сделать сессионными для передачи в сценарий обработки контента, в котором они будут добавлены в базу данных.
Вид сценария приведен на рисунке:
- Компонент "Основные параметры" - в компоненте присваиваются
- сессионная переменная calldate (дата/время) = функция "Текущие дата и время"
- сессионная переменная calledid (строковая) = функция "Внешний номер (CalledId)"
- сессионная переменная callerid (строковая) = функция "Номер абонента (CallerId)"
- сессионная переменная reason (строковая) = строка "Клиент сбросил"
- Переменная reason - это причина, по которой появился пропущенный. По умолчанию, задается значение "Клиент сбросил".
- Компонент "flag=0" - сессионной переменной flag (строковая) присваивается строка "0". Эта переменная будет индикатором является ли звонок пропущенным. По умолчанию, считается пропущенным (значение 0).
- Это нужно сделать, так как IVR-сценарий прекращается как только клиент кладет трубку, поэтому нужно заранее установить значения по умолчанию.
- Компонент "operator" - сессионной переменной operator (строковая) присваивается строка "400". Переменная обозначает номер оператора или групповой номер, на который клиент не дозвонился.
- Компонент "Переключение" - происходит переключение на обозначенный номер 400.
- Компонент "flag=1". Переменной flag присваивается значение "1", если соединение прошло удачно.
- В вашем сценарии входящей маршрутизации может быть довольно сложная система переключений. В этом случае перед каждым переключением нужно установить переменную operator с номером, а после удачного соединения переменной flag присвоить значение "1".
- Если соединение неудачно, то в каждой ветке переменной reason переприсваивается соответствующая причина пропущенного звонка. Например, по ветке "Занято" (если все операторы заняты в разговоре, а очередь ожидания не установлена), переменной reason будет присвоено значение "Занято".