Статичная страница прохождения скрипта

Продвинутый
PDF

Обычно оператор контакт-центра принимает звонки в интерфейсе телефонии. Чтобы быстро начать разговор, оператору нужно понять от кого поступил звонок, чтобы правильно его поприветствовать.

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

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

Автоматическое открытие страницы возможно в двух случаях:

  • При входящем или исходящем звонке;
  • В телефонии, не имеющей прямой интеграции с BPMSoft, при соответствующей настройке администратора. Подробнее: Настройка статичной страницы.

Содержимое страницы включает:

  • Ключевые данные о клиенте;
  • Стандартную фразу для начала разговора.

Рисунок 1 — Статичная страница с заполненными данными о клиенте

Рисунок 1 — Статичная страница с заполненными данными о клиенте

Статичная страница содержит следующие данные:

  • Контакт — имя клиента, с которым ведется звонок. Имя определяется по номеру телефона клиента, если контакт клиента существует в BPMSoft;
  • Контрагент — название организации, от имени которой обращается клиент или с которой он связан. Определяется по номеру телефона клиента, с которым ведется звонок, даже если контакт клиента не найден, и организация существует в BPMSoft;
  • Номер телефона — номер, с которого поступил звонок или номер, на который совершен звонок;
  • Фраза оператора — текстовое приветствие для начала разговора.

Кнопки «Свернуть»/ «Развернуть» предназначены для гибкого управления видимостью информационного блока и оптимизации рабочего пространства.

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

Рисунок 2 — Статичная страница с открытой страницей «Звонка»

Рисунок 2 — Статичная страница с открытой страницей «Звонка»

Настройка статичной страницы

Настройка аутентификации

Для получения данных из BPMSoft используется протокол OpenID Connect. Для настройки необходимо:

  1. Настроить аутентификацию через внешнего провайдера:
  2. Создать сервисного пользователя и получить для него токен. Подробнее в статье Аутентификация приложений в BPMSoft через Identity-провайдеры. Получение токена доступа.
  3. Внести изменение в файл «staticWindowsConst.js» в корне статичной страницы, указав для параметра «authorizationToken» значение «Bearer значение токена из шага ».

Подключение к телефонии

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

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

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

NET 8:
 ..[Путь до приложения]\BPMSoft.Configuration\Pkg\CCWorkplace\Files\src\res\[Название файла .html
	
.NET Framework:
..[Путь до приложения]\BPMSoft.WebApp\BPMSoft.Configuration\Pkg\CCWorkplace\Files\src\res\[Название файла .html]
	

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

Таблица 1 — Параметры статичной страницы

Параметр Описание
integrationId Идентификатор звонка
phoneNumber Номер абонента
direction Направление звонка:
  • in — входящий звонок;
  • out — исходящий звонок
operator Номер оператора

Изменение статичной страницы

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

Структура решения выглядит следующим образом:

Структура файлов
-CCWorkplace
  -Files
    …
    -res
      …
      index.html
      serviceClient.js
      staticWindowsConst.js
      staticWindowsFunction.js
    -scc
      …
      stylesStaticWindow.css

На стороне BPMSoft реализован сервис получения данных «StaticWindowOperatorCCService».

Для добавления новой функциональности необходимо:

  1. Добавить новое поле в файл «index.html».
  2. Добавить обработку нового поля в «staticWindowsFunction.js».
  3. Добавить логику получения данных для нового поля в «StaticWindowOperatorCCService».

Пример настройки статичной страницы

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

Для решения задачи необходимо:

  1. Добавить поле «Город» в разметку страницы в файле «index.html»:
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>
  1. Добавить заполнение поля «Город» в функцию «setContactValue» в файле «staticWindowsFunction.js»:
JavaScript
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;
    
    // Аналогично для других полей
    ...
  1. Добавить получение значения поля «Город» в метод «GetContactForNumber» сервиса «StaticWindowOperatorCCService»:
C#
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».

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

JavaScript
...
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» с произвольным названием и настроить открытие нужной страницы на уровне телефонии. Ограничений на количество дополнительных статичных страниц нет.

Рекомендуем изучить

Работа в окне прохождения диалога
История прохождения скриптов
Настройка скриптов диалогов
Универсальный модуль скриптов

Материал был полезен для вас?
Приглашаем на вебинар 30 июля
Лиды, клиенты и клиентский сервис в современном мире. Как b2b и b2c повышают конверсию и совершают повторные продажи. Об этом поговорим на совместном вебинаре BPMSoft и Edna.
Регистрация на мероприятие
Оставить заявку
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.
Демонстрационная версия BPMSoft
Заполните заявку для получения бесплатного доступа к демонстрационному стенду на 14 дней.
Типовое внедрение
Внедрите BPMSoft CRM в свою компанию всего за 8 рабочих дней по фиксированной цене! Заполните заявку для уточнения условий.
Заказать презентацию
Наш менеджер свяжется с Вами в ближайшее время.
Рассчитать стоимость
Стоимость одной лицензии BPMSoft Конструктор начинается от 15 400 руб. без НДС. Для корректного расчета заполните форму
Задать вопрос
Запрос исследования
Заполните форму и мы отправим исследование на E-mail
Присоединяйтесь к партнерской сети BPMSoft
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время
Тип партнерства*
Управление полным жизненным циклом клиента: от генерации лидов и продаж до внедрения, поддержки и продления подписки.
Разработка собственного Приложения – производного программного обеспечения, созданного на платформе BPMSoft (Базовое ПО).
Есть вопросы?
Не нашли для себя подходящую вакансию, или остались вопросы?
*
Есть вопросы?
Не нашли для себя подходящую вакансию, или остались вопросы?
*
Стать Вузом-партнером
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.
Заявка на консультацию
Оставьте свои контакты и наш менеджер свяжется с Вами в ближайшее время.
Спасибо!
Ваша заявка принята.
Наш сотрудник свяжется с вами в течение 1-2 рабочих дней.
Внимание!
Обнаружена ошибка.
Вы подписаны на новости BPMSoft
Пожалуйста, подтвердите свой электронный адрес, пройдя по ссылке в письме.
Telegram Подписаться
Уважаемые клиенты! Предупреждаем о случаях недобросовестной конкуренции и мошенничестве в сети Интернет.
Подробнее