Обычно оператор контакт-центра принимает звонки в интерфейсе телефонии. Чтобы быстро начать разговор, оператору нужно понять от кого поступил звонок, чтобы правильно его поприветствовать.
Когда поступает новый звонок, система телефонии передает параметры звонка в BPMSoft и автоматически открывает статичную веб-страницу, где оператор видит данные клиента и приветственную фразу для начала диалога. Так оператор может сразу начать диалог без дополнительных поисков информации.
После приветствия клиента оператор контакт-центра может продолжить диалог используя возможности работы в интерфейсе BPMSoft, в том числе скрипты для диалога.
Автоматическое открытие страницы возможно в двух случаях:
Содержимое страницы включает:
Рисунок 1 — Статичная страница с заполненными данными о клиенте
Статичная страница содержит следующие данные:
Кнопки «Свернуть»/ «Развернуть» предназначены для гибкого управления видимостью информационного блока и оптимизации рабочего пространства.
При открытии статичной страницы в ней автоматически отображается BPMSoft со страницей текущего звонка, на которой уже заполнена информация о клиенте, и пользователь может совершать необходимые действия в системе во время диалога с клиентом.
Рисунок 2 — Статичная страница с открытой страницей «Звонка»
Для получения данных из BPMSoft используется протокол OpenID Connect. Для настройки необходимо:
Для корректной работы статичной страницы требуется предварительная настройка сервиса телефонии на автоматическое открытие страницы во встроенном или внешнем браузере в момент начала звонка.
Статичная страница реализована как файловый контент пакета, ссылка на страницу определяется ее расположением (путь до папки определяется шаблоном, описанным в статье Хранение файлового контента.
Таким образом, ссылка на страницу может выглядеть следующим образом:
..[Путь до приложения]\BPMSoft.Configuration\Pkg\CCWorkplace\Files\src\res\[Название файла .html
..[Путь до приложения]\BPMSoft.WebApp\BPMSoft.Configuration\Pkg\CCWorkplace\Files\src\res\[Название файла .html]
Информация о звонке должна передаваться в виде GET-параметров. Параметры, доступные по умолчанию, представлены в таблице ниже.
Таблица 1 — Параметры статичной страницы
Статичная страница реализована как файловый контент пакета. Для настройки необходимо открыть папку по пути, который определяется шаблоном, описанным в статье Хранение файлового контента, и внести изменения в соответствующие файлы.
Структура решения выглядит следующим образом:
-CCWorkplace -Files … -res … index.html serviceClient.js staticWindowsConst.js staticWindowsFunction.js -scc … stylesStaticWindow.css
На стороне BPMSoft реализован сервис получения данных «StaticWindowOperatorCCService».
Для добавления новой функциональности необходимо:
Пример. Добавить поле «Город», которое должно заполняться на статичной странице при открытии из найденного контакта.
Для решения задачи необходимо:
<div class="form-group"> <table style="width: 100%;"> ... <tr class="tr-row"> <td class="td-label"> <label for="city">Город</label> </td> <td> <input type="text" id="city" name="city" value="" readonly="readonly" /> </td> </tr> ... </table> </div>
function setContactValue(contacts) { let values = []; if (contacts.length == 1) { let contact = contacts[0]; document.getElementById("contact").value = contact.contactId !== guid_empty ? contact.contactName : staticWindowsConst.notDefined; document.getElementById("account").value = contact.accountId !== guid_empty ? contact.accountName : staticWindowsConst.notDefined; // Заполнение поля "Город". document.getElementById("city").value = contact.contactId ? contact.cityName: staticWindowsConst.notDefined; // Аналогично для других полей ...
private List<ContactData> GetContactForNumber(string numberPhone) { var listContact = new List<ContactData>(); var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, nameof(ContactCommunication)) { PrimaryQueryColumn = { IsAlwaysSelect = true } }; var accountId = esq.AddColumn("Contact.Account.Id").Name; var accountName = esq.AddColumn("Contact.Account.Name").Name; var nameType = esq.AddColumn("CommunicationType.Name").Name; var contactName = esq.AddColumn("Contact.Name").Name; var contactId = esq.AddColumn("Contact.Id").Name; esq.AddColumn("Number"); // Добавление в запрос колонки "Город". var cityName = esq.AddColumn("City.Name").Name; esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "[ComTypebyCommunication:CommunicationType:CommunicationType].Communication.Code", "Phone")); var searchNumber = PreprocessPhone(numberPhone); esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "SearchNumber", searchNumber)); esq.Filters.Add(esq.CreateIsNotNullFilter("Contact")); var collection = esq.GetEntityCollection(UserConnection); if (collection.Any()) { listContact.AddRange(collection.Select(contactCommunication => new ContactData() { Id = contactCommunication.PrimaryColumnValue, AccountId = contactCommunication.GetTypedColumnValue<Guid>(accountId), AccountName = contactCommunication.GetTypedColumnValue<string>(accountName), CommunicationTypeName = contactCommunication.GetTypedColumnValue<string>(nameType), ContactId = contactCommunication.GetTypedColumnValue<Guid>(contactId), ContactName = contactCommunication.GetTypedColumnValue<string>(contactName), Number = contactCommunication.GetTypedColumnValue<string>("Number"), // Добавление в ответ сервиса поля "Город". CityName = contactCommunication.GetTypedColumnValue<string>(cityName) })); } return listContact; }
По умолчанию статичная страница настроена на открытие страницы звонка в окне с приложением BPMSoft и передачу в нее параметров, полученных из телефонии. При необходимости данное поведение можно изменить.
Для изменения поведения статичной страницы необходимо внести изменения в переменную «callPage.src» в файле «staticWindowsFunction.js».
Пример открытия страницы контакта:
... function updateCallPageUrl(contactId, accountId) { const callPage = document.getElementById("bpmsoft"); callPage.src = `${urlSite}/Nui/ViewModule.aspx#CardModuleV2/ContactPageV2/edit/${contactId}`; } ...
Если требуется открывать разные страницы в BPMSoft в зависимости от параметров звонка, можно добавить новую статичную страницу в папку «[Путь до приложения]\BPMSoft.Configuration\Pkg\CCWorkplace\Files\res» с произвольным названием и настроить открытие нужной страницы на уровне телефонии. Ограничений на количество дополнительных статичных страниц нет.
Работа в окне прохождения диалога История прохождения скриптов Настройка скриптов диалогов Универсальный модуль скриптов