Статичная страница прохождения
скрипта
Обычно оператор контакт-центра принимает звонки в интерфейсе телефонии. Чтобы быстро начать разговор, оператору нужно понять от кого поступил звонок, чтобы правильно его поприветствовать.
Когда поступает новый звонок, система телефонии передает параметры звонка в BPMSoft и автоматически открывает статичную веб-страницу, где оператор видит данные клиента и приветственную фразу для начала диалога. Так оператор может сразу начать диалог без дополнительных поисков информации.
После приветствия клиента оператор контакт-центра может продолжить диалог используя возможности работы в интерфейсе BPMSoft, в том числе скрипты для диалога.
Автоматическое открытие страницы возможно в двух случаях:
- При входящем или исходящем звонке;
- В телефонии, не имеющей прямой интеграции с BPMSoft, при соответствующей настройке администратора. Подробнее: Настройка статичной страницы.
Содержимое страницы включает:
- Ключевые данные о клиенте;
- Стандартную фразу для начала разговора.
Рисунок 1 — Статичная страница с заполненными данными о клиенте

Статичная страница содержит следующие данные:
- Контакт — имя клиента, с которым ведется звонок. Имя определяется по номеру телефона клиента, если контакт клиента существует в BPMSoft;
- Контрагент — название организации, от имени которой обращается клиент или с которой он связан. Определяется по номеру телефона клиента, с которым ведется звонок, даже если контакт клиента не найден, и организация существует в BPMSoft;
- Номер телефона — номер, с которого поступил звонок или номер, на который совершен звонок;
- Фраза оператора — текстовое приветствие для начала разговора.
Кнопки «Свернуть»/ «Развернуть» предназначены для гибкого управления видимостью информационного блока и оптимизации рабочего пространства.
При открытии статичной страницы в ней автоматически отображается BPMSoft со страницей текущего звонка, на которой уже заполнена информация о клиенте, и пользователь может совершать необходимые действия в системе во время диалога с клиентом.
Рисунок 2 — Статичная страница с открытой страницей «Звонка»

Настройка статичной страницы
Настройка аутентификации
Для получения данных из BPMSoft используется протокол OpenID Connect. Для настройки необходимо:
- Настроить аутентификацию через внешнего провайдера:
- Если система развернута на собственном сервере, необходимо воспользоваться инструкцией в статье Аутентификация приложений в BPMSoft через Identity-провайдеры;
- Если система развернута в облаке BPMSoft, необходимо обраться в техническую поддержку BPMSoft.
- Создать сервисного пользователя и получить для него токен. Подробнее в статье Аутентификация приложений в BPMSoft через Identity-провайдеры. Получение токена доступа.
- Внести изменение в файл «staticWindowsConst.js» в корне статичной страницы, указав для параметра «authorizationToken» значение «Bearer значение токена из шага ».
Подключение к телефонии
Для корректной работы статичной страницы требуется предварительная настройка сервиса телефонии на автоматическое открытие страницы во встроенном или внешнем браузере в момент начала звонка.
Статичная страница реализована как файловый контент пакета, ссылка на страницу определяется ее расположением (путь до папки определяется шаблоном, описанным в статье Хранение файлового контента.
Таким образом, ссылка на страницу может выглядеть следующим образом:
..[Путь до приложения]\BPMSoft.Configuration\Pkg\CCWorkplace\Files\src\res\[Название файла.html
..[Путь до приложения]\BPMSoft.WebApp\BPMSoft.Configuration\Pkg\CCWorkplace\Files\src\res\[Название файла.html]
Информация о звонке должна передаваться в виде GET-параметров. Параметры, доступные по умолчанию, представлены в таблице ниже.
Таблица 1 — Параметры статичной страницы
| Параметр | Описание |
| integrationId | Идентификатор звонка |
| phoneNumber | Номер абонента |
| direction |
Направление звонка:
|
| operator | Номер оператора |
Изменение статичной страницы
Статичная страница реализована как файловый контент пакета. Для настройки необходимо открыть папку по пути, который определяется шаблоном, описанным в статье Хранение файлового контента, и внести изменения в соответствующие файлы.
Структура решения выглядит следующим образом:
-CCWorkplace
-Files
…
-res
…
index.html
serviceClient.js
staticWindowsConst.js
staticWindowsFunction.js
-scc
…
stylesStaticWindow.css
На стороне BPMSoft реализован сервис получения данных «StaticWindowOperatorCCService».
Для добавления новой функциональности необходимо:
- Добавить новое поле в файл «index.html».
- Добавить обработку нового поля в «staticWindowsFunction.js».
- Добавить логику получения данных для нового поля в «StaticWindowOperatorCCService».
Пример настройки статичной страницы
Пример. Добавить поле «Город», которое должно заполняться на статичной странице при открытии из найденного контакта.
Для решения задачи необходимо:
- Добавить поле «Город» в разметку страницы в файле «index.html»:
<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>
- Добавить заполнение поля «Город» в функцию «setContactValue» в файле «staticWindowsFunction.js»:
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;
// Аналогично для других полей
...
- Добавить получение значения поля «Город» в метод «GetContactForNumber» сервиса «StaticWindowOperatorCCService»:
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
По умолчанию статичная страница настроена на открытие страницы звонка в окне с приложением 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» с произвольным названием и настроить открытие нужной страницы на уровне телефонии. Ограничений на количество дополнительных статичных страниц нет.
Рекомендуем изучить
Работа в окне прохождения диалога
История прохождения скриптов
Настройка скриптов диалогов
Универсальный модуль скриптов