Кампании - общая информация

Кампании делятся на два основных вида - входящие и исходящие кампании. Рассмотрим каждый из типов кампаний подробнее.

ИСХОДЯЩИЕ КАМПАНИИ

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

Как правило, исходящие кампании делятся на следующие стадии:

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

2) Руководитель проекта получает список клиентов, которых необходимо обзвонить, а также перечень вопросов, ответы на которые необходимо получить.

3) В назначенное время операторы производят обзвон. Операторы не тратят время на дозвон до клиентов. При дозвоне оператору выводится карточка клиента, в которой он отражает результаты переговоров. Оператор также может воспользоваться подсказками (возможными сценариями диалога).

4) Руководитель получает результаты проведения кампаний. Возможны обобщенные и детализированные отчеты с записанными разговорами.

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

- Автоинформатор Kампания без участия операторов, доводит информацию по заранее подготовленному сценарию;

- Кампания с подтверждением (preview). Оператор должен подтвердить, что он готов принять вызов, и только после этого система начнет осуществлять звонок;

- Кампания с резервированием (progressive). При прогрессивном наборе производится последовательный автоматический дозвон до клиента с предварительным резервированием оператора

- Кампания с прогнозированием (predictive). При предиктивном способе набора, как правило, количество операторов меньше, чем количество внешних линий, и дозвон производится "наперед". Система ведет статистику по среднему времени обработки клиентов операторами и начинает дозвон до нового клиента раньше, чем освободится хотя бы один оператор, но с учетом того, что наиболее вероятно, когда дозвон состоится, свободный оператор появится. При данном способе обзвона операторы не тратят время на ожидание процесса дозвона.

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

- Проведение нескольких кампаний одновременно по одним и тем же телефонным линиям. Операторы могут также участвовать в нескольких кампаниях.

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

- Подключение операторов в процессе проведения кампании. Выход оператора из кампании по требованию.

- Настройка карточки клиента, а также сценария диалога в визуальном редакторе с возможность написания дополнительных алгоритмов.

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

- В качестве базы клиентов может выступать как внутренняя база call-центра, так и внешняя БД, например БД CRM, Excel-документ и т.д.

- Возможность добавления столбцов в список клиентов.

- Импорт из Excel, а также из всех известных БД. Работать с базой клиентов возможно также в режиме on-line. Т.е. клиенты не импортируются во внутреннюю БД Call-центра, а наоборот, Call-центр подключается к БД CRM системы, в том числе и к базе «Infinity». Все изменения по клиентам, сделанные в ходе проведения кампании сразу «видны» внешней CRM.

Модуль исходящих кампаний Call-центра Infinity может подойти как корпоративным Заказчикам, так и аутсорсинговым Call-центрам. Уникальность модуля заключается в том, что при большом количестве возможностей, администрирование модуля покажется Вам простой задачей, не требующей содержания дополнительного технического специалиста. Всплывающие подсказки помогут Вам быстро разобраться с тонкостями большого количества настроек.

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

ВХОДЯЩИЕ КАМПАНИИ

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

Часто руководителей интересует такая информация, как:

- Какие рекламные акции наиболее эффективны (какая реклама приносит больше всего клиентов) .

- По каким вопросам больше всего обращаются в компанию.

- Количество проблемных клиентов, динамика по ним.

- Сколько клиентов позвонило по заданному сегменту за указанный период времени

Как правило, входящая кампания в действии выглядит следующим образом:

1) Руководитель производит сегментацию клиентов. Например, есть клиенты, которые интересуются стиральными машинами, есть клиенты, которых интересуют телевизоры. Или проводится акция, в контексте которой работает «горячая» телефонная линия.

2) Руководитель создает входящие кампании в Infinity Call-центре.

·При входящем звонке система может определить, к какой кампании относится данный клиент по номеру, на который он позвонил, либо по АОНу. Если клиент не идентифицирован, то у оператора есть возможность выбрать входящую кампанию вручную.

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

4) Руководитель получает результаты проведения кампаний. Возможны обобщенные и детализированные отчеты с записанными разговорами.

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

По функциональным возможностям, модуль входящих кампаний похож на модуль исходящих кампаний.

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

- Ведение проектов, в которые может входить несколько кампаний.

- Проведение нескольких кампаний одновременно. Операторы могут также участвовать в нескольких кампаниях.

- Возможность редактирования операторами базы клиентов (внесение результатов переговоров, добавление новых контактов, удаление). При этом все изменения, сделанные оператором, автоматически видят другие операторы.

- Настройка карточки клиента, а также сценария диалога в визуальном редакторе с возможность написания дополнительных алгоритмов.

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

- В качестве базы клиентов может выступать как внутренняя база call-центра, так и внешняя БД, например, БД CRM, Excel-документ и т.д.

- Возможность добавления столбцов в список клиентов.

- Импорт из Excel, а также из всех известных БД. Работать с базой клиентов можно также в режиме on-line. Т.е. клиенты не импортируются во внутреннюю БД Call-центра, а наоборот, Call-центр подключается к БД CRM системы, в том числе и к базе Infinity . Все изменения по клиентам, сделанные в ходе проведения кампании сразу «видны» внешней CRM.

Настройка Кампании

Настройка кампаний осуществляется в разделе Управление - Кампании:

Прежде чем приступать к настройке самой кампании необходимо перейти в раздел [Базы данных] - [Таблицы] и создать таблицу для будущей кампании. Именно в ней будет находится информация по всем контрагентам, участвующим в обзвоне.

Указываем [Наименование] таблицы и задаем её структуру в соответствующей вкладке:

Как мы видим, есть 2 служебных поля - ID и State (менять их нельзя!), а также создаются нужные нам поля (как минимум номер телефона).

После нажатия кнопки ОК в базе данных Пользовательская.ДляЗаписи будет автоматически создана необходимая таблица

Далее возвращаемся в [Управление] - [Кампании], создаем кампанию и указываем ранее созданную кампанию:

Выбираем операторов, которые будут работать в рамках кампании и порядок их перебора (актуально при последовательном или циклическом переборе операторов):

Переходим непосредственно к настройке параметров работы кампании. Надо сказать, что в параметрах системы ([Администрирование] - [Параметры системы] можно задать параметры кампании по умолчанию):

Указываем ресурсы для работы кампании:

- Количество линий - максимальное количество линий для обзвона

- Исходящий маршрут Infinity 4 - Возможность указать явно заданный исходящий маршрут из программы Infinity Contact-Center/Cx.Telephony.Admin.exe. Если поле пустое , тогда используются правила маршрутизации.

- Приоритет - вес при распределении ресурсов (пример: Если есть две кампании с одинаковыми приоритетом, то если за минуту совершено 100 звонков, они будут разделены по кампаниям примерно по 50. Если у одной кампании приоритет 50, а у другой 100 - то из сотни звонков будет примерно 33 в рамках первой кампании и примерно 67 в рамках второй.)

Указываем режим работы:

- способ перебора контрагентов (последовательно - всегда сначала звоним первому контрагенту и, если не дозвонились ему, то затем позвоним по другому его номеру; циклически - звоним сверху вниз, если не дозвонились контрагенту - звоним следующему; случайно);

- Учитывать допустимый процент брака - занимает количество линий в зависимости от количества свободных операторов и вероятности наличия свободного оператора. Указав в качестве процента брака - 0 - мы "заставим" систему звонить только в случае наличия свободного оператора. Чем больше процент брака, тем выше вероятность, что контрагенту придется ждать освобождения оператора.

- Останавливать набор номера при остановке кампании - позволяет обрывать все вызовы, которые еще не были установлены.

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

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

- Автозапуск при старте сервера - Если галочка установлена, тогда после перезагрузки сервера кампания запустится автоматически.

- Автоматически останавливать кампанию - Возможность автоматически остановить кампанию, если весь список телефонов обработан в рамках данной кампании.

- Считать вызов обработанным если было соединение с контрагентом - Если галочка установлена, тогда сразу после получения от провайдера коннекта у контрагента установится статус "Обработан"

Обновление таблицы контрагентов:

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

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

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

- Перечитывать список контрагентов при достижении конца списка - Возможность автоматического обновления используемой таблицы при достижении конца списка контрагентов

- При перечитывании использовать статусы до перечитывания - использовать статусы контрагентов до или после перечитывания

Карточка контрагента:

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

События:

- Момент отображения карточки - После соединения с оператором/После ответа абонента/При выборе оператора

- Действие при отсутствии свободных операторов позволяет при наступлении соответствующего события завершить вызов, поставить его в очередь, либо запустить специальный сценарий IVR.

- В качестве критерия освобождения оператора можно указать: завершение вызова, закрытие карточки, прошло заданное время после вызова, прошло заданное время или закрыта карточка. Это позволяет давать время оператору на поствызывную обработку.

Допустимое время обслуживания:

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

В системе есть возможность указать время дозвона для того или иного типа телефона., а также указывать часовой пояс. Если для контрагента указан часовой пояс +2 часа, а время звонка - с 8 до 20, то для данной записи вызов будет осуществлен с 10 до 22.

При этом очень полезной бывает функция оператором сортировки контрагентов с учетом часового пояса. Это позволяет звонить сначала контрагенту Владивостока (для которого допустимое время заканчивается через час), а уже потом звонить в Москву.

Сценарии:

Очень часто на работу кампании завязано большое число автоматизированных бизнес-задач. В этом случае будет полезно в какой-то момент времени осуществлять выполнение того или иного служебного сценария. Например, на основе этого функционала можно решать задачи квотирования (обзванивать контрагентов до тех пор пока в базе не будет 30 женщин в возрасте от 20 до 40, 30 мужчин или общее число не более 55 анкетируемых).

В зависимости от цели кампании, можно обзванивать, либо не обзванивать контрагента с тем или иным статусом (повторное обслуживание).

Попытки дозвона:

В рамках кампании можно задать настройки попыток дозвонов (продолжительность дозвона, количество попыток, интервалы и прочее).

Продолжительность ожидания ответа, сек - значение в секундах, сколько система будет ожидать поднятия трубки от провайдера. Если трубку за указанное время не подняли , тогда состояние контрагента изменяется на Ожидание повтора нет ответа или нет ответа , если все попытки по дозвону до контрагенту закончились.

Количество повторов, если занято - количество повторных звонков , если от провайдера получен код отбоя занято.(либо анализатор определил занятость абонента)

Интервал между повторами, если занято, сек - значение в секундах , через сколько система осуществит перезвон на номер телефона контрагента, если было занято

Количество повторов, если не берут трубку - количество повторных звонков , если клиент не поднимает трубку(либо от провайдера не получен коннект)

Интервал между повторами, если не берут трубку, сек - значение в секундах , через сколько система осуществит перезвон на номер телефона контрагента, если контрагент не поднял трубку

Суммарное число попыток дозвона - возможность задать максимальное число дозвонов до контрагента.(для работы данного параметра в таблице кампании должно быть поле с типом int и в назначении полей для поля должно быть выбрано назначение "Число попыток дозвона")

Очередь распределения вызовов:

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

Приоритет (от 0 до 10) позволяет указывать приоритет вызовов (например, VIP-клиенты).

Алгоритм указывает алгоритм перебора операторов: последовательно (перебор операторов в соответствии со списком на закладке "Операторы". При этом всегда сначала вызов будет направлен первому в списке оператору, если он занят или недоступен - второму), циклически(перебор операторов в соответствии со списком на закладке "Операторы". При этом сначала вызов будет направлен первому оператору, затем второму (вне зависимости от занятости первого) и т.д.), случайно, наименее занятый (обработавший наименьшее количество вызовов за день), наиболее свободный (простаивающий наибольшее время). Галочка "по возможности задействовать персонального оператора" позволяет переключать на оператора, который последним обрабатывал вызов с участием данного контрагента. Если он недоступен - то вызов обработает любой свободный оператор.

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

Можно включить ожидание при отсутствии свободных операторах, указать время перевода на оператора. Если оператор не ответит за заданный период времени, то можно изменить статус оператора для дальнейшего анализа ситуации (для этого можно задать отдельный статус "Пропуск звонка оператором").

В разделе "Назначение полей" указывается соответствие тем или иным задачам. (например, имя, телефон, часовой пояс, время перезвона, оператор и прочее):

Часовой пояс указывается в виде числа - величины смещения относительно текущего часового пояса на сервере. Например, сервер расположен в Москве. Для Владивостока нужно указать 7, а для Киева -2

После этого необходимо настроить карточку контрагента:

или сценарий диалога:

Настройка кампании "Рассылка E-mail"

Настройка кампаний осуществляется в разделе Управление - Кампании:

Прежде чем приступать к настройке самой кампании необходимо перейти в раздел [Базы данных] - [Таблицы] и создать таблицу для будущей кампании. Именно в ней будет находится информация по всем контрагентам, участвующим в рассылке

Нажимаем кнопку "Добавить", указываем наименование таблицы и задаем её структуру в соответствующей вкладке

Внимание: 2 служебных поля - ID и State менять нельзя!

После нажатия кнопки ОК в базе данных Пользовательская.ДляЗаписи будет автоматически создана необходимая таблица

Далее возвращаемся в [Управление] - [Кампании], создаем кампанию с типом "Рассылка Е-mail" и указываем ранее созданную таблицу

Переходим непосредственно к настройке параметров работы кампании.

Примечание: В параметрах системы ([Администрирование] - [Параметры системы]) можно задать параметры кампании по умолчанию

Указываем режим работы:

- способ перебора контрагентов (последовательно - всегда сначала отправляем первому контрагенту и, если не получилось, то отправляем по другому его адресу циклически - отправляем сверху вниз, если не получилось отправить контрагенту - отправляем следующему; случайно);

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

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

- Автоматически останавливать кампанию - если галочка активна, то система автоматически остановит кампанию, после выполнения всех заданных действий.

В системе есть возможность указать "Допустимое время обслуживания" , а также указывать часовой пояс. Если для контрагента указан часовой пояс +2 часа, а время отправки письма - с 10 до 18, то для данной записи отправка будет осуществлена с 12 до 20. Для того, чтобы задать данную поправку нам необходимо в изначальную таблицу добавить еще один столбец "Часовой пояс". При этом очень полезной бывает функция сортировки контрагентов с учетом часового пояса.

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

В зависимости от цели кампании, можно повторно обслуживать, либо не обслуживать контрагента с тем или иным статусом

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

В разделе "Назначение полей" указывается соответствие тем или иным задачам. (например, имя, часовой пояс, E-mail и прочее):

Примечание: Часовой пояс указывается в виде числа - величины смещения относительно текущего часового пояса на сервере. Например, сервер расположен в Москве. Для Владивостока нужно указать 7, а для Киева -2

Нажимаем "Ок", кампания создана и мы можем запустить ее прямо сейчас. Осталось только заполнить наш список рассылки

Переходим в раздел[Кампании] и выбираем созданный нами проект. Видим структуру таблицы, которую необходимо заполнить.

Для этого у нас есть несколько массовых споообов и вариант заполнения вручную, с помощью кнопки "Добавить".

Далее возвращаемся в [Управление] - [Кампании] и нажимаем кнопку "Запустить"

Входящая кампания в Infinity

Настройка входящей кампании идентична исходящей кампании за одним исключением - необходимо изменить переключение в активном сценарии IVR

Базовый сценарий IVR выглядит примерно следующим образом

Нам необходимо заменить компонент "переключение на очередь", на "входящая кампания" и сохранить это изменение.

Таблицы в карточках и сценариях диалога, база адресов

Таблицы в карточках и сценариях диалога, база адресов

1. Отображение произвольных таблиц

1.1. Отображение окна со списком строк, в качестве источника данных – простой провайдер. Задаем обработчик клика на кнопке в сценарии карточки

void Button1_Execute(object sender, EventArgs e)

{

Cx.Client.Campaigns.Misc.MiscUtils.ShowSelectDialog("Выберите слово", "WorkProvider_Table_6003650012", null, 0, null);

}

1.2. В качестве источника – отфильтрованный (параметризованный) провайдер, при этом при открытии окна выбрана конкретная строка

void Button1_Execute(object sender, EventArgs e)

{

var parameters = new System.Collections.Generic.Dictionary();

parameters["IDLanguage"] = 6003650023;

Cx.Client.Campaigns.Misc.MiscUtils.ShowSelectDialog("Выберите слово", "xWords.ByIDLanguage", parameters, 6003650028, null);

}

1.3. Заданный список столбцов и редакторов

void Button1_Execute(object sender, EventArgs e)

{

var parameters = new System.Collections.Generic.Dictionary();

parameters["IDLanguage"] = 6003650023;

var fields = new System.Collections.Generic.Dictionary();

fields["IDLanguage"] = "Cx.Client.Custom.xLanguage";

fields["Name"] = "";

Cx.Client.Campaigns.Misc.MiscUtils.ShowSelectDialog("Выберите слово", "xWords.ByIDLanguage", parameters, 6003650028, fields);

}

1.4. Работа с результатом (выбранной строкой). Можно использовать все поля, которые есть в провайдере (а не только те, которые видны в таблице)

void Button1_Execute(object sender, EventArgs e)

{

var parameters = new System.Collections.Generic.Dictionary();

parameters["IDLanguage"] = 6003650023;

var fields = new System.Collections.Generic.Dictionary();

fields["IDLanguage"] = "Cx.Client.Custom.xLanguage";

fields["Name"] = "";

var result = Cx.Client.Campaigns.Misc.MiscUtils.ShowSelectDialog("Выберите слово", "xWords.ByIDLanguage", parameters, 6003650028, fields);

if (result == null || result.Count == 0)

System.Windows.Forms.MessageBox.Show("Ничего не выбрано");

else

System.Windows.Forms.MessageBox.Show("Выбрано: "+Convert.ToString(result["ID"])+" "+Convert.ToString(result["Name"]));

}

1.5. Располагаем аналогичную таблицу в виде вкладки карточки (при необходимости вкладку можно перенести в настройке внешнего вида карточки). Настройка внешнего вида – Настройка карточек:

[

{

"Kind": "Table",

"Name": "Words",

"Caption": "Слова",

"TableParams": {

"ProviderName": "xWords.ByIDLanguage",

"Parameters": {

"IDLanguage": 6003650023

},

"CurrentRowID": 6003650028,

"Editors": {

"IDLanguage": "Cx.Client.Custom.xLanguage",

"Name": ""

}

}

}

]

1.6. Изменить источник данных в таблице на лету (например, при изменении значения поля). Дописываем сценарий карточки:

public override void ColumnChanged(DataColumnChangeEventArgs e)

{

if (e.Column.ColumnName == "IDLanguage")

{

var idLanguage = Convert.ToInt64(e.Row[e.Column]);

var parameters = new System.Collections.Generic.Dictionary();

parameters["IDLanguage"] = idLanguage;

var ae = _card.GetAdvancedEditor("Words");

ae.ReloadData("xWords.ByIDLanguage", parameters, 6003650028);

}

}

1.7. Обработать клик на строке таблицы и получить все значения полей строки

public override void OnShow()

{

var ae = _card.GetAdvancedEditor("Words");

ae.AssignFocusedRowChangedEvent(WordsFocusedRowChanged);

}

private void WordsFocusedRowChanged(System.Collections.Generic.IDictionary data_)

{

if (data_ == null || data_.Count == 0)

System.Windows.Forms.MessageBox.Show("Ничего не выбрано");

else

System.Windows.Forms.MessageBox.Show("Выбрано: "+Convert.ToString(data_["ID"])+" "+Convert.ToString(data_["Name"]));

}

1.8. То же самое в качестве шага сценария диалога – используем компонент «Таблица»

1.9. Приятный бонус для упрощения жизни: в настройке кнопок теперь можно вместо XML использовать JSON.

Два примера ниже идентичны:

<?xml version="1.0"?>

<ArrayOfButtonInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:xsd="http://www.w3.org/2001/XMLSchema&quot;&gt;

<ButtonInfo>

<Caption>Address</Caption>

<Action></Action>

</ButtonInfo>

<ButtonInfo>

<Caption>HyperLinksList</Caption>

<Action>HyperLinksList</Action>

<Params></Params>

<ImageIndex>-1</ImageIndex>

</ButtonInfo>

</ArrayOfButtonInfo>

[

{

"Caption": "Address",

},

{

"Caption": "HyperLinksList",

"Action": "HyperLinksList",

},

]

2. Отображение отчета

2.1. Отчет из сценария карточки в виде отдельного окна

void Button1_Execute(object sender, EventArgs e)

{

var parameters = new System.Collections.Generic.Dictionary();

parameters["Abonent"] = "6411010";

parameters["TimeStartTo"] = new DateTime(2020, 01, 01);

Cx.Client.Campaigns.Misc.MiscUtils.ShowReport("Отчет из карточки", 30100284, parameters);

}

2.2. Отчет в качестве вкладки карточки. Настройка внешнего вида – Настройка карточек:

[

{

"Kind": "Report",

"Name": "Calls",

"Caption": "Отчет-вкладка",

"ReportParams": {

"IDReport": 30100284,

"Parameters": {

"Abonent": "6411010",

"TimeStartTo": "2020-01-01",

}

}

}

]

2.3. Отчет в сценарии диалога. Кроме заданных явно в качестве параметров передаются все поля текущего контрагента.

3. Отображение вложенной кампании

3.1. Отображение полной кампании из кода сценария карточки

void Button1_Execute(object sender, EventArgs e)

{

Cx.Client.Campaigns.Misc.MiscUtils.ShowCampaign("Вложенная кампания", 6004935333);

}

3.2. Фильтрация кампании – указываем провайдера и параметры

void Button1_Execute(object sender, EventArgs e)

{

var parameters = new System.Collections.Generic.Dictionary();

parameters["IDLanguage"] = 6003650023;

Cx.Client.Campaigns.Misc.MiscUtils.ShowCampaign(

"Вложенная кампания", // Заголовок

6004935333, // ID кампании

"xWords.ByIDLanguage", // Имя провайдера

parameters // Параметры

);

}

3.3. Скрытие лишних кнопок

void Button1_Execute(object sender, EventArgs e)

{

var parameters = new System.Collections.Generic.Dictionary();

parameters["IDLanguage"] = 6003650023;

Cx.Client.Campaigns.Misc.MiscUtils.ShowCampaign(

"Вложенная кампания", // Заголовок

6004935333, // ID кампании

"xWords.ByIDLanguage", // Имя провайдера

parameters, // Параметры

false, // Добавить

false, // Изменить (карточка)

false, // Удалить

false, // Копировать

true // Сценарий диалога

);

}

3.4. Вложенная кампания на вкладке карточки. Настройка внешнего вида – Настройка карточек:

[

{

"Kind": "Campaign",

"Name": "Words",

"Caption": "Слова",

"CampaignParams": {

"IDCampaign": 6004935333,

"ProviderName": "xWords.ByIDLanguage",

"Parameters": {

"IDLanguage": 6003650023

},

CanAdd: false,

CanEdit: false,

CanDelete: false,

CanCopy: false,

CanRunDialogScenario: true

}

}

]

3.5. Замена источника данных при изменении значения поля основной карточки

public override void ColumnChanged(DataColumnChangeEventArgs e)

{

if (e.Column.ColumnName == "IDLanguage")

{

var idLanguage = Convert.ToInt64(e.Row[e.Column]);

var parameters = new System.Collections.Generic.Dictionary();

parameters["IDLanguage"] = idLanguage;

var ae = _card.GetAdvancedEditor("Words");

ae.ReloadData("xWords.ByIDLanguage", parameters, 6003650028);

}

}

3.6. Отображение вложенной карточки

На основной карточке создаем пустой элемент и группу вокруг него. После этого в коде сценария карточки можно разместить в этой группе карточку любого контрагента любой кампании. Например, это можно сделать по клику на таблице:

private void WordsFocusedRowChanged(System.Collections.Generic.IDictionary data_)

{

if (data_ != null)

{

var id = Convert.ToInt64(data_["ID"]);

if (id > 0)

_card.ShowCardToGroup("Вложенная карточка", 6004935333, id);

}

}

4. База адресов

Цель – отобразить в карточке кампании взаимосвязанные редакторы регион – район – город - улица, которые обеспечат удобную работу с адресами России.

1. Скачиваем актуальную БД ФИАС в формате XML (около 4 ГБ, https://fias.nalog.ru/Updates.aspx)

2. Запускаем утилиту FIAS_Parser. Указываем актуальные имена файлов и отключаем импорт домов:

3. Запускаем полученный sql-скрипт (примерный объем, поэтому используем командную строку: psql.exe -h localhost -p 10000 -f Cx_FIAS.sql postgres cxdbuser). В результате получаем созданную и заполненную БД Cx_FIAS

4. Подключаем базу данных:

5. Создаем четыре провайдера:

Fias.Regions: sel ect distinct aoguid, offname || ' ' || shortname as name fr om "FIAS_Objects" where parentguid = '' and actstatus=1 order by offname || ' ' || shortname

Fias.Districts: sel ect aoguid, offname || ' ' || shortname as name fr om "FIAS_Objects" where parentguid=:parentguid and actstatus=1 and aolevel=3 order by offname || ' ' || shortname

Fias.Cities: select aoguid, offname || ' ' || shortname as name fr om "FIAS_Objects" wh ere parentguid=:parentguid and actstatus=1 and (aolevel between 4 and 6) order by offname || ' ' || shortname

Fias.Streets: select aoguid, offname || ' ' || shortname as name fr om "FIAS_Objects" wh ere parentguid=:parentguid and actstatus=1 and aolevel = 7 order by offname || ' ' || shortname

6. Для каждого провайдера создаем по таблице и пользовательскому редактору:

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

8. Назначение полей – выбираем пользовательские редакторы:

9. Сценарий карточки на удивление прост:

public override void OnInit()

{

_card.InitializeFiasEditors("IDRegion", "IDDistrict", "IDCity", "IDStreet", "HouseNum", "FullAddress");

}

10. Если поля названы по другому – указываем здесь их правильные имена. Если адресов несколько – вызываем эту функцию несколько раз.

11. Результат

Использование глобальных параметров в сценарии после вызова

Программа Infinity позволяет получить глобальные параметры кампании, которые можно использовать для решения своих задач.

Для просмотра всех глобальных параметров в логе CxServer.log или IVR.log необходимо в параметрах кампании добавить служебный сценарий "После вызова".

Например: служебный сценарий «Старт – Стоп».

После добавления сценария при завершении звонка в кампании, начнут отображаться глобальные параметры. Поиск в логе по словам(GlobalParams или Старт-Стоп(название сценария)):

GlobalParams:

"$ReleaseCode" - код отбоя полученный от провайдера. (используется только в исходящих кампаниях с анализатором ответов)

"$CallResult" - Состояние контрагента. Коды состояний описаны на wiki: https://www.inteltelecom.ru/wiki/rasshifrovka-kodov-sostoyaniya-zvonka-v-kampanii/

"$IDCallStat" - Сгенерированый ID для таблицы очередей «S_ACDCalls»

"$CalledNumber" – номер телефона звонившего

"$IDLaunch" – ИД запуска кампании

"$IDContragent" – ИД Контрагента. (Поле ID из таблицы входящей/исходящей кампании)

"$IDSeance" - ИД Звонка

"$TryCount" – Количество попыток дозвона на телефон контрагента в рамках одного запуска кампании. (Используется в исходящих кампаниях)

"$IDCampaign" – ИД Кампании

"$CampaignName" – Название кампании

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

Пример получения глобального параметра в сценарии после вызова (задача получить статус завершения звонка в кампании "$CallResult):

Объявляем числовую переменную Статус звонка. Присваиваем ей значение.

В аргументе X выбираем Функцию – ПараметрСценарияГлобальный(Строка ИмяПараметра) // Вариант. В значении указываем имя Глобального параметра(в нашем случае это "$CallResult) и нажимаем «Ок»

Далее В Аргументе Y преобразуем полученный глобальный параметр в число32 бит.

В конечном итоге получаем следующее:

Принцип работы предиктивного алгоритма, а также способы его адаптации

- Коэффициент К (предиктивный коэффициент) – это количество линий на одного активного оператора. Если К=1.5, активных операторов 10, то кампания будет использовать 15 линий.

- Начальный коэффициент К можно задать в настройках. «Администрирование – Параметры системы – Кампания – Режим работы – Начальный предиктивный коэффициент». Этот параметр начинает отрабатывать после перезапуска сервера Infinity X.

- Пересчет коэффициента К осуществляется каждые 100 попыток звонка(по умолчанию) с любым статусом. Этот параметр можно задать в настройках «Администрирование – Параметры системы – Кампания – Режим работы – Количество звонков до пересчета предиктивного коэффициента», но не чаще 1 раза в 3 минуты.(по умолчанию) Этот параметр также можно настроить «Минимальный интервал пересчета предиктивного коэффициента»

- Если результативных звонков("Обработан" и "Потерян")с момента последнего пересчета нет - умножаем К на 1.25. Настраивается параметром «Администрирование – Параметры системы – Кампания – Режим работы – Коэффициент при отсутствии результативных звонков».

- Если результативных звонков ("Обработан" и "Потерян") с момента последнего пересчета 30 или более - изменяем К для достижения заданного процента брака.

- На скорость адаптации коэффициента К можно повлиять настройкой параметра Администрирование – Параметры системы – Кампания – Режим работы - «Поправка к скорости адаптации».

- Если результативных звонков("Обработан" и "Потерян") с момента последнего пересчета менее 30 - применяем сумму двух граничных вариантов с весами (1.25х(30-cnt)/30 + Ratio*cnt/30), где cnt - кол-во результативных звонков

- Коэффициентом К можно управлять программно из любых сценариев. Например, в служебном сценарии «Перед вызовом» можно проанализировать текущую загрузку операторов, текущее значение коэффициента, и изменить его. Компонент «Вызов метода», метод «УстановитьПредиктивныйКоэффициентКампании» и компонент «Присвоить значение», функция «ПредиктивныйКоэффициентКампании». На входе ID кампании. Тип данных – дробное число.

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

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

! Изменения глобальных параметров вступают в силу после перезагрузки сервера Infinity Call-Center X через утилиту Infinity Guardian

Анализатор Автоответов

Назначение модуля

· повышение производительности исходящих кампаний

· снижение «холостой» нагрузки на операторов

Принцип работы

· распознавание ответов операторов мобильной связи до ответа абонента

· распознавание сигнала факс-машины после ответа абонента

· распознавание ответов операторов мобильной связи после получения connect от провайдера

Важно: распознавание сигнала факс-машины приведет к задержке соединения с оператором (по умолчанию 1 секунда, можно изменить в сценарии)

Настройка Infinity 4

· Минимальная версия: 4.10.7.1

· Воспринимать как Alerting: Набран номер, Действие при Alerting: Коммутация с абонентом для маршрута, через который идут звонки кампанииНастройка Infinity X

· Минимальная версия: 1.16.9.8519

· Указать адрес и порт сервера, на котором развернута служба. Администрирование –Параметры системы: Интеграция – Анализатор автоответов – Адрес и порт сервера

· Выбрать сценарий «Анализатор ответов операторов связи» в параметрах кампании в качестве сценария «Во время дозвона»

Развертывание службы

· Для работы необходимо наличие Microsoft.NET Framework версии 4.5

· Скопировать папку InfinityCPD на сервер Infinity X либо на любой другой сервер, доступный с сервера Infinity X по порту 9999

· Консольное приложение InfinityCallProgressDetector.exe запускается после запуска процесса Cx.BusinessServer – ПО УМОЛЧАНИЮ. Либо зарегистрировать и запустить службу (однократный запуск register.bat, затем старт службы через панель управления) –НЕОБХОДИМО ТОЛЬКО ЕСЛИ АНАЛИЗАТОР НА ДРУГОМ СЕРВЕРЕ.

Настройка службы

В файле InfinityCallProgressDetector.exe.config можно изменить следующие параметры (вступают в силу после перезапуска службы):

· LogLevel – уровень логирования: 1 – минимальный, 2 – статистика распознавания, 3 – отладочная информация

· SaveFiles – сохранение wav-файлов: 0 – никогда, 1 – только нераспознанные, 2 – все

· Port – порт для подключения к Infinity X: 9999 – по умолчанию

Анализатор запускается совместно с сервером бизнес-логики (Cx.BusinessServer).

Изменения в конфиге начнут действовать после перезапуска сервера Infinity Call-Center X через утилиту Infinity Guardian (или после убивания процесса Cx.BusinessServer – чтобы не ребутать весь сервер).

Если мы хотим проигрывать клиенту сообщение до соединения с оператором, его нужно записать и сохранить, как cpd.wav. Его длина должна быть 7-8 секунд. Формат файла соответствует стандартным параметрам аудио-файлов Инфинити: файл формата Microsoft Wave, PCM (без компрессии), 8000Hz, 16 Бит, Моно. Важно, чтобы в файле cpd.wav было в начале 2-3 секунды тишины. Если этого не будет – есть вероятность, что абонент не скажет «алло» в ожидании соединения с оператором и анализатор его отобьет, услышав тишину.

Для работы анализатора автоответов данный файлик необходим – можно записать тишину.

Его необходимо поместить в сценарий «анализатор ответов операторов связи».

Файл – выбираем звуковой файл, который необходимо воспроизвести клиенту после получения от провайдера события о поднятии трубки (до коннекта файл не воспроизводится).

Продолжительность – продолжительность ожидания ответа(до коннекта)/продолжительность анализа (после коннекта). – Меньше 7 секунд работать не будет.

Стоп по кнопке – активирует выход из компонента, если клиент нажал кнопку на телефоне.

Стоп по ответу – активирует выход из компонента, если от провайдера пришло событие о поднятии трубки клиентом.

Поиск шаблона – активирует/деактивирует поиск загруженных шаблонов.

Поиск факс машины – активирует/деактивирует поиск факсов.

Поиск тишины – активирует/деактивирует анализ тишины. Очень часто провайдеры передают тишину после коннекта, когда включается голосовая почта.

Поиск голосового меню - активирует/деактивирует анализ IVR меню.

ВАЖНО! Версия 1.19.11 будет работать только с анализатором 1.19.11 (несовместимость версий будет отбиваться, т.е. анализатор просто не будет работать).

Новый режим работы анализатора ответов после коннекта: штатный компонент анализатора вместо сетевого подключения будет запускать анализатор через командную строку с параметрами. Детали происходящего будут логироваться в логе IVR. Шаблоны игнорируются - только тишина, факс и голосовое меню в соответствии с галочками компонента. Временные файлы будут размещаться в дереве папок по датам рядом с ехешником сервера. Икс сам будет удалять файлы. Анализатор по своим настройкам будет их сохранять в папке commandLine если запросили.

Управлять соотношением голоса/шума нет возможности.

Cpd.new нужен для работы нового алгоритма, который запускает сам файл. Располагаться должен рядом с ехешником CxServer.exe. При работе нового алгоритма, когда есть сервер анализатора и сервер Инфинити, процесс будет на сервере Инфинити

Получение данных через http при нажатии на кнопку в карточке

Таблица:

Кнопка:

В редакторе сценария карточки имеем следующий код:

public override void OnInit()

{

var action = _card.GetAction("HTTP");

action.Execute += HTTP_Execute;

}

void HTTP_Execute(object sender, EventArgs e)

{

int resultCode;

string resultData;

var Row = _card.CurrentRow;

string url="http://192.168.99.90:10080/data/getdata/?ProviderName=WorkProvider_Table_5019852410&amp;Param1=5...;

if (Cx.Client.HTTPUtils.HTTPUtils.ExecHTTPQuery(

url,

"GET",

Cx.Client.HTTPUtils.HTTPEncoding.UTF8,

null,

null,

100000,

null,

null,

out resultCode,

out resultData

))

{

try

{

var jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();

dynamic parsedData = jsonSerializer.DeserializeObject(resultData);

var array = parsedData["result"]["Data"] as System.Collections.Generic.IEnumerable<object>;

if (array != null)

{

foreach (var recObj in array)

{

var rec = recObj as System.Collections.Generic.IDictionary<string, object>;

string phone = Convert.ToString(rec["phone1"]);

string id = Convert.ToString(rec["ID"]);

Row["one"] = phone;

Row["two"] = id;

System.Windows.Forms.MessageBox.Show(phone);

System.Windows.Forms.MessageBox.Show(id);

}

}

}

catch (Exception exception)

{

System.Windows.Forms.MessageBox.Show(exception.Message);

Cx.Client.Utils.ExceptionManager.HandleException("Dialog scenario parsing error", exception, true);

}

}

}

Полученный Json , который вернул запрос :http://192.168.99.90:10080/data/getdata/?ProviderName=WorkProvider_Table_5019852410&Param1=5019852414

{

"result": {

"ProviderName": "WorkProvider_Table_5019852410",

"RecordCount": 1,

"Parameters": {

"Param1": "5019852414"

},

"Fields": [

{

"FieldName": "ID",

"DataType": "System.Int64"

},

{

"FieldName": "State",

"DataType": "System.Int32"

},

{

"FieldName": "phone1",

"DataType": "System.String"

}

],

"Data": [

{

"ID": "5019852414",

"State": "null",

"phone1": "84955555555"

}

],

"Result": "1"

}

}

В результате при нажатии на кнопку HTTP в карточке кампании получим:

Добавление кнопок на карточку кампании

1. Заходим в Инструменты – Управление – Кампании

2. Выбираем кампанию, на карточку которой хотим добавить кнопку

3. Нажимаем на кнопку Настройка внешнего вида

4. Нажимаем «Настройка кнопок».(Если данной кнопки нет , тогда нужно зайти в Инструмент Администрирование – Параметры системы - Кампания – Клиент – Включить настройку доп. кнопок в карточке . Поставить галочку)

5. По умолчанию добавится кнопка , которая будет открывать web-форму с сайтом inteltelecom.ru

Варианты настройки кнопки в формате JSON :

[

{

"Caption": "Инфинити",

"Action": "OpenBrowserInTab",

"Params": "https://inteltelelom.ru"

},

{

"Caption": "Wiki",

"Action": "OpenBrowser",

"Params": "https://inteltelecom.ru/wiki"

},

{

"Caption": "Перевод на оператора",

"Action": "StartTransferToOperator"

},

{

"Caption": "Таблица звонков",

"Action": "ShowReport",

"Params": "30100190"

},

{

"Caption": "Перевод в СТП",

"Action": "TransferToACD",

"Params": ""

},

{

"Caption": "Перевод",

"Action": "StartTransfer"

},

{

"Caption": "Выберите слово",

}

]

6. После того как кнопки добавлены можно настроить их расположение.

Нажимаем кнопку «Изменить» - Настройка – Настройка расположения

7. После того как настройка внешнего вида проведено нажимаем на кнопку «Настройка » - Применить - Нажимаем «Ок» на карточке - «Ок» в таблице внешнего вида. После этого внешний вид карточки будет сохранен.

8. Дополнительные функции кнопок можно задать в инструменте «Редактор сценария карточки» на языке C#

Запуск и остановка кампании контрольным событием

1. Создаем сценарий запуска кампании, в нем мы будем проверять день недели (также можно проверить какой-либо праздничный день 1 января и т.д)

Управление – Сценарии – Добавить сценарий – Служебный сценарий

Добавляем условие - Нажимаем на три точки - выбираем Оператор – Тип оператора X==Y(равенство) – Аргумент X выбираем Функция - День недели() – Нажимаем OK

Указываем Аргумент Y – Оператор – Константа – Число32бит – Значение 7(воскресенье) – OK - OK

Открываем вкладу Дополнительно в настройке сценария , выбираем Запустить кампанию – Указываем нашу кампанию

Из условия делаем переход на запустить кампанию в случае если условие не верно ( т.е. у нас любой день кроме воскресенья)

Переходим на вкладку Основное в сценарии и выбираем компонент Стоп

2. Создаем сценарий для остановки кампании - Служебный сценарий - Выбираем компонент Остановка кампании - указываем нашу кампанию – Добавляем компонент Стоп как на скриншоте ниже

3. Создаем контрольное событие для Запуска кампании - Тип Периодическое контрольное событие

Задаем наименование – Запуск кампании – Можем поставить уведомление если это нужно и выбрать кто будет получать это уведомление когда событие произойдет

Далее в параметрах указываем Тип события – Ежедневно в указанное время ( т.к. мы запускаем кампанию каждый день с 9:00) – Время 9:00 – Сценарий указываем созданный нами выше сценарий Запуска кампании, где есть проверка по дням недели.

4 Создаем контрольное событие для остановки кампании

Контрольные события – Добавить – Тип события Периодическое контрольное событие – Наименование Остановка кампании – Параметры Тип события Ежедневно – Время 20:00 – Сценарий Остановка кампании

( созданный нами ранее).

Настройка кампании Рассылка СМС

Пример создания кампании СМС-рассылка в программе Infinity Call-Center X

Создаем таблицу , которая будет использоваться в кампании по рассылке СМС.

Переходим в Инструменты – База данных – Таблицы . Добавляем новую таблицу

Вводим имя таблицы

На вкладке Структура добавляем два поля Телефон и Сообщение . Нажимаем кнопку Ок.

Внимание!!! Служебные поля ID и State изменять нельзя!

Теперь создадим саму кампанию для рассылки.

Переходим в Инструменты – Кампании. Нажимаем кнопку добавить – выбираем тип кампании=Рассылка СМС , нажимаем Ок

Вводим название кампании рассылки и выбираем ранее созданную таблицу СМС

На вкладке параметры можно выбрать следующие настройки:

- способ перебора контрагентов (последовательно - всегда сначала отправляем первому контрагенту в таблице ,если не получилось , тогда отправляем по другому его адресу; циклически - отправляем сверху вниз, если не получилось отправить контрагенту - отправляем следующему; случайно);

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

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

- Автоматически останавливать кампанию - если галочка активна, то система автоматически остановит кампанию, после выполнения всех заданных действий.

В системе есть возможность указать "Допустимое время обслуживания" , а также указывать часовой пояс. Если для контрагента указан часовой пояс +2 часа, а время отправки письма - с 10 до 18, то для данной записи отправка будет осуществлена с 8 до 16. Для того, чтобы задать данную поправку нам необходимо в изначальную таблицу добавить еще один столбец "Часовой пояс". При этом очень полезной бывает функция сортировки контрагентов с учетом часового пояса, чтобы обработать сперва тех контрагентов , у которых часовой пояс больше.

Внимание!!! Часовой пояс задается не по Гринвичу, а по времени сервера Infinity

Пример : если сервер находится в Москве, тогда часовой пояс у контрагента , который находится в Москве будет равен 0 , а у контрагента , который находится в Екатеринбурге часовой пояс будет +2

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

В зависимости от цели кампании, можно повторно обслуживать, либо не обслуживать контрагента с тем или иным статусом

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

Переходим на вкладку «Назначение полей» и указываем соответствие поля с его назначением.

В нашем примере достаточно указать для поля Телефон – назначение Телефон. Настройка кампании на этом завершена.

Теперь нам осталось загрузить список телефонов с сообщениями для рассылки СМС.

Переходим в раздел Инструменты – Кампании . Находим нашу кампанию – Рассылка SMS .

Есть возможность импортировать список телефонов несколькими способами, либо добавить телефон и сообщение вручную с помощью кнопки «Добавить»

После добавления телефонов , можно запускать кампанию.

Переходим в Инструменты - Управление – Кампании. Выбираем кампанию Рассылка SMS –нажимаем кнопку запустить

Если выделить кампанию и нажать кнопку «Открыть в новой вкладке», тогда можно увидеть состояние отправки СМС.

Состояния могут быть следующие: Отправка, Отправлено, Доставлено и Ошибка

Кампании для обработки писем и сообщения мессенджеров

Назначение кампании:

При поступлении сообщения по email или мессенджеру открыть карточку оператору для заполнения дополнительной информации по обращению. (Например: тема обращения)

1. Создание кампании:

1.1 Создаем таблицу (База данных – Таблицы)

1.2 Создаем кампанию с типом «Кампания обработки почты и мессенджеров» (Управление - кампании)

1.3 Назначаем операторов и указываем необходимые параметры кампании (принцип работы аналогичен приему входящих звонков через «Входящую кампанию»)

1.4 В назначении полей оставляем настройки по умолчанию

2. Как переключить сообщение email на кампанию:

2.1 Создаем сценарий обработки писем (Электронная почта – Сценарий обработки писем)

2.2 В сценарии обработки писем добавляем компонент «Очередь» и выбираем созданную кампанию «Кампания обработки почты и мессенджеров». Базовый сценарий будет выглядеть так:

2.3 Сохраняем сценарий и назначаем текущим

2.4 В настройках учетной записи email для папки входящие выбираем ранее созданный сценарий

2.5 На этом настройка завершена. При поступлении email на учетную запись электронной почты в папку входящие сообщение поступит оператору КЦ и откроется карточка кампании «Кампания обработки почты и мессенджеров»

3. Как переключить сообщение мессенджера на кампанию:

3.1 Создаем сценарий обработки сообщений (Чаты и мессенджеры – Сценарий обработки сообщений)

3.2 В сценарии обработки сообщений добавляем компонент «Очередь» и выбираем созданную кампанию «Кампания обработки почты и мессенджеров». (пример см.2.2)

3.3 Сохраняем сценарий и назначаем текущим

3.4 В настройках учетной записи чата или мессенджера выбираем ранее созданный сценарий

3.5 На этом настройка завершена. При поступлении сообщения на учетную запись мессенджера или чата оно поступит оператору КЦ и откроется карточка кампании «Кампания обработки почты и мессенджеров»

4. Расширенные настройки кампании:

4.1 Создаем и запускаем кампанию с типом «Обработка писем и мессенджеров»

4.2 В сценарии обработки писем/мессенджеров переключаем сообщение электронной почты или мессенджера на эту кампанию

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

4.4 Пример сценария диалога:

4.5 Результат:

4.6 Пример сценария карточки:

4.7 Результат:

4.8 Формат объекта, доступного через GetContent() для сообщений электронной почты:

{

"ID":6011460984,

"NativeID":"<059901d3954c$b9366800$2ba33800$@infinity.ru>",

"Subject":"Тестовое письмо",

"To":"qqq@yandex.ru",

"From":"i.p@infinity.ru",

"DateTime":"2018-01-24T22:51:42",

"Size":21020,

"References":"",

"Copy":"",

"BlindCopy":null,

"ReplyTo":"",

"StorageRef":"EMail/2018/01/24/22/2018_01_24_22_52_00_ID6011460984_Body_.html",

"BodyText":"Письмо",

"ErrorText":null,

"IDUser":20000000012,

"IDACD":6011460387,

"Comments":null,

"ACDMessageState":"Processing",

"CommandLine":null,

"DurationWait":0.0,

"DurationProcessing":null,

"ACDTime":"2018-01-24T22:52:00.52",

"IDContragent":null,

"IDAccount":6011461025,

"Account":

{

"ID":6011461025,

"Name":"qqq@yandex.ru",

"Address":"qqq@yandex.ru",

"FromDisplayName":"qqq@yandex.ru",

"ReplyTo":"qqq@yandex.ru",

"Login":"qqq",

"Password":"xxx",

"SyncState":"OK [24.01.2018 22:52:00]: Папок: 6 Писем: 3 (2,236 сек.)",

"IDProfile":6003350209,

"Profile":

{

"ID":6003350209,

"Name":"ya",

"IMAPServer":"imap.yandex.ru",

"IMAPPort":993,

"SMTPServer":"smtp.yandex.ru",

"SMTPPort":465,

"IMAPSSLMode":null,

"IMAPSSLProtocol":null,

"SMTPSSLMode":null,

"SMTPSSLProtocol":nul

},

},

"IDFolder":6011460975,

"Folder":

{

"ID":6011460975,

"Name":"Входящие",

"OrderView":null,

"Visible":true,

"Sync":true,

"IDScenario":6000080884,

"DeleteOnServer":null,

}

}

4.9 Формат объекта, доступного через GetContent() для сообщений мессенджеров:

{

"Dialog":

{

"ID":6011480018,

"InternalID":"e1215d57-759d-4224-854c-93978886bbb0",

"FirstMessageDateTime":"2018-01-24T23:22:53.927",

"LastMessageDateTime":"2018-01-24T23:22:54.015",

"MessageCount":1,

"InternalName":"Клиент веб-чата",

"IDUser":20000000012,

"IDUserExpires":5,

"IDUserLastMessageTime":"2018-01-24T23:22:54.227",

"CommandLine":null,

"IDACD":6011460387,

"ShowDialog":true,

"IDAccount":6010052666,

"Account":

{

"ID":6010052666,

"Name":"Web1",

"Channel":"WebChat",

"IDObjectType":41100,

"IsEnabled":true,

"StatusText":"ОК [24.01.2018 23:19:21]",

}

},

"Messages":

[

{

"ID":6011480019,

"DateTime":"2018-01-24T23:22:54.028",

"Direction":"In",

"IDUser":null,

"MessageType":"Service",

"Text":"Клиент открыл окно чата",

"StatusText":"Получено",

"Media":null,

"IDDialog":6011480018

},

{

"ID":6011480020,

"DateTime":"2018-01-24T23:22:54.25",

"Direction":"Out",

"IDUser":null,

"MessageType":"Service",

"Text":"Назначен оператор 201",

"StatusText":null,

"Media":null,

"IDDialog":6011480018

}

]

}

Примечание: на момент открытия карточки реального сообщения от пользователя может еще не быть. Из сценария в любой момент можно обратиться к БД и получить последнее сообщение.

Ручная исходящая кампания

Настройка кампании осуществляется в разделе Управление – Кампании.

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

Этот вид кампании нужен для открытия у оператора карточки клиента или сценария диалога при ручном исходящем звонке.

Если в параметрах кампании поставить галочку «Оператор управляет свои участием», то оператор сможет выходить из кампании и совершать обычные исходящие звонки (без карточки/сценария диалога).

Если кампания запущена, она появится у оператора в инструменте «Очередь».

Операторы в инструменте «Ручные кампании» могут открыть список контрагентов, которым были совершены звонки операторов.

При каждом новом звонке оператора в списке появится соответствующая строка

Под ролью Администратора есть возможность изначально загрузить определенный список контрагентов в данную кампанию, чтобы операторы могли видеть контрагентов, выбирать, и совершать звонок, нажав «Позвонить». Если загружать контрагентов вручную, с помощью кнопки «Добавить», то откроется карточка, либо сценарий диалога в зависимости от настроек кампании

Ручные исходящие кампании можно настроить так, что оператор в инструменте «Ручные кампании» будет видеть строки только по своим звонкам (Пользователи и права—Права—Кампании—Просмотр всех строк). В поле «Запрещено» добавляем тех операторов, которые должны видеть строки только по своим звонкам.

Также здесь можно настроить возможность для оператора просматривать сценарий диалога в «оффлайн» режиме. (Пользователи и права—Права—Кампании—Ручные кампании—Запуск сценария, добавить операторов в поле «Разрешено»)

Инструмент «Ручные кампании» можно переименовать в более удобный (Администрирование--Параметры систем--Кампания--Клиент)

Настройка автоинформатора

Настройка Автоинформатора с озвучиванием суммы из поля таблицы. Добавляем в таблицу Автоинформатора поле сумма

Для упрощения заполняем поле сумма и телефон вручную (можно провести импорт)

Создаем сценарий для автоинформатора в инструменте Управление – Сценарии.

Для начала в сценарии автоинформатора необходимо создать переменную с типом данных строка

Чтобы достать из таблицы автоинформатора необходимое значение, выполним ряд действий:

Добавляем компонент Проиграть значение.

В поле «Значение» указываем ранее созданную переменную «Сумма»

Выбираем голосовой пакет «Мария»

Получится сценарий такого вида:

Сохраняем сценарий автоинформатора, компилируем и активируем.

Далее создаем кампанию с типом Автоинформатор, и указываем в параметрах «Главный сценарий автоинформатора» ранее созданный сценарий.

На этом настройка автоинформатора завершена, и теперь можно запускать кампанию

Важный момент при использовании WEB-форм в Кампаниях

Для обеспечения большей производительности данного функционала крайне рекомендуется внести изменения в две ветки реестра на рабочих местах операторов (это заставит Windows использовать новую версию встроенного браузера IE)

Запуск кампании

Кампанию можно запустить из раздела [Управление] - [Кампании].

Кнопка "Запустить" запускает кампанию и предлагает операторам участвовать в данной кампании.

Кнопка "Остановить" останавливает прекращает обзвон контрагентов. При этом полностью остановлена кампания будет когда прекратятся все текущие вызовы (в том числе те, по которым был только начат обзвон).

Кнопка "Остановить принудительно" позволяет немедленно прервать все разговоры и вызовы по кампании и прекратить её работу

После запуска кампании можно перейти в раздел [Кампании] - запущенная кампания. Из этого раздела можно произвести импорт контрагентов, осуществить экспорт полученных данных, позвонить конкретному контрагенту, либо запустить сценарий диалога:

В процессе работы кампании меняется состояние контрагентов: