В этой статье
dropdown icon
Обзор
    Webex Contact Center для голосовой связи облака службы Salesforce
    Предварительные требования и ограничения
    Лицензии
    Включить Omni-Channel
    Ограничения
dropdown icon
Требования
    Коды простоя
dropdown icon
Интегрировать
    Установка
    Установка и настройка Webex Contact Center для голосовой связи в облаке
    Назначить состояния доступности операторам
dropdown icon
Конфигурация
    Контакт-центр
    Импорт контакт-центра
    Настройка контакт-центра
dropdown icon
Настроить
    Внешнее клиентское приложение для интеграции Webex Contact Center
    Конфигурация и сценарий Webex Contact Center для создания записей голосовых вызовов
Полномочия Salesforce, требуемые функцией пользователя
dropdown icon
Оболочка Service Cloud Voice API
    Предварительные требования
    Использование оболочки Service Cloud Voice API
    Извлечение маркера Access_Token
    Выполнить запросы
    Создать голосовой вызов (раздел)
    Обновить голосовой вызов
    Выполнить Omni-flow
    Очистить маршрутизацию
dropdown icon
Перевод номеров телефона
    Создание правил перевода
dropdown icon
Конфигурация страницы голосового вызова
    Настройка страницы записи VoiceCall
    Отображение компонента причины поствызова
    Отображение проигрывателя записей вызовов
dropdown icon
Администраторы Webex
    Конфигурация потока
Интеграция Webex Contact Center с облачной голосовой службой Salesforce
list-menuВ этой статье
list-menuОтправить обратную связь?

Webex Contact Center для Salesforce Service Cloud Voice интегрирует надежную CCaaS (Contact Center как служба) Cisco с CRM Salesforce, позволяя предприятиям управлять многоканальными взаимодействиями с клиентами (голосовыми, цифровыми) в интерфейсе Salesforce с помощью Webex AI для виртуальных операторов, текста стенограммы и интеллектуальной маршрутизации. Таким образом, операторы превращаются в «супер-операторов» с унифицированными данными для улучшения возможностей клиентов.

Обзор

Webex Contact Center для голосовой связи облака службы Salesforce

Webex Contact Center для голосовой связи в облаке службы – это готовое решение для интеграции, которое обеспечивает доступ Webex Contact Center к многоканальной консоли оператора облачной голосовой связи службы Salesforce.

Прежде чем продолжить установку, см. следующий раздел:

чтобы узнать о предварительных требованиях и ограничениях службы Salesforce Cloud Voice, а также убедиться, что ваша организация Salesforce готова к включению и установке пакета Webex Contact Center для Service Cloud Voice.

Предварительные требования и ограничения

Предварительные требования (подтема)

Пользовательские интерфейсы: Service Cloud Voice доступна только в Salesforce Lightning Experience.

Служба голосовой связи в облаке доступна в этих выпусках.

  • Предприятие
  • Неограниченный
  • Для разработчиков

Лицензии

  • Клиентам необходимо приобрести новую лицензию надстройки A-SF-VOICE для зарегистрированного оператора в дополнение к стандартным или премиум-лицензиям Flex 3 для Webex Contact Center. Дополнительную информацию см. в руководстве по заказу Flex 3.

  • Голос Salesforce для партнерской телефонии

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

  • Перейдите в раздел Информация о компании > Установка полномочий лицензии
    • Проверьте пользователя службы голосовой связи в облаке (партнерская телефония).

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

  • Также можно проверить это, перейдя в раздел "Настройка Salesforce" и выполнив поиск "голос" на левой боковой панели.

    • Если отображается "Партнерские контакт-центры телефонии", у вас есть лицензия SCV.
    • Если параметр Partner Telephony Contact Center (Контакт-центры телефонии партнера) не отображается, то "Включить голосовую связь в облаке услуг", выполнив приведенные ниже действия.
      • Перейдите к меню "Настройка Salesforce", найдите и выберите "Настройка телефонии партнера" и переключите кнопку на параметр "Включить голосовую связь в облаке услуг".

      • Включите Omni-Channel, чтобы позволить операторам совершать и принимать вызовы.

Включить Omni-Channel

Если omni-канал уже включен в вашей организации, пропустите этот шаг.

  1. В разделе настройки введите Omni-Channel Settings в поле быстрого поиска, затем выберите Omni-Channel Settings.

  2. Выбрать Enable Omni-Channel.
  3. Щелкнуть Save.

Ограничения

  • Голосовая связь доступна только в Lightning Experience.
  • Голосовая связь поддерживается в облаке служб и облаке продаж в качестве дополнительной лицензии.
  • Голосовая связь не поддерживается в Salesforce Mobile и Safari на iPad.
  • Голосовая связь поддерживается только в веб-браузерах Google Chrome, Microsoft Edge (Chromium) и Mozilla Firefox. Чтобы разрешить систему единого входа (SSO), необходимо включить файлы cookie.
  • Стандартная навигация не поддерживается.
  • Телефония строго регулируется, поэтому проконсультируйтесь с представителем Salesforce относительно доступности голосовой связи в своем регионе.

Требования

Коды бездействия

Найти коды простоя

Чтобы задать коды простоя, выполните следующие действия.
1

Войдите на портал управления.

2

Перейдите в расположение Contact Center > DESKTOP EXPERIENCE > Idle/Wrap-up Codes.

3

Убедитесь, что коды простоя отображаются. В противном случае щелкните кнопку раскрывающегося списка фильтра и выберите Idle Code в верхней части страницы.

4

Щелкните код простоя, чтобы открыть представление сведений. Здесь можно найти идентификатор кода простоя.

Идентификаторы можно скопировать и использовать для конфигурации сопоставления состояния доступности. Один из идентификаторов должен использоваться как причина неготовности Cisco по умолчанию.

Интегрировать

Установка и настройка Webex Contact Center для голосовой связи в облаке

При получении лицензии Service Cloud Voice для партнерской телефонии в меню настройки отображается страница Настройка партнерской телефонии.

Дополнительную информацию можно найти в официальном справочнике Salesforce (прямая ссылка).

1

В разделе настройки введите Partner Telephony Setup в Quick Find и выберите Partner Telephony Setup.

2

Включить Turn on Voice with Partner Telephony.

Сообщение об Partner Telephony Contact Centers появится на странице Setup меню.

При планировании развертывания пакета в песочнице Salesforce замените login.salesforce.com часть ссылки на установку с test.salesforce.com. Обратите внимание, что этот пакет удаляется из организации песочницы при создании новой копии песочницы.

Установить пакет

Установка пакета.

1

Чтобы начать установку, откройте предоставленную ссылку на пакет.

2

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

3

В мастере установки выберите параметр безопасности "Установить только для администраторов" (1) и щелкните Установить (2).

Определите, какие пользователи получают определенные полномочия для объектов и компонентов, которые поставляются с пакетом Webex Contact Center для голосовой связи в облаке служб. Кроме того, предоставьте им эти полномочия; наборы полномочий, которые поставляются с пакетом Webex Contact Center для Service Cloud Voice, помогают этому процессу.

В мастере установки пакетов появится экран приветствия:

Пакет установки не доступен непосредственно через Salesforce AppExchange. Клиенты должны использовать кнопку "Получить сейчас" в списке AppExchange, с помощью которой открывается форма контакта для запроса ссылки на установку и активации Cisco.

4

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

Contact Center Admin (Partner Telephony).
5

Щелкните Настройка | Пользователи | Пользователи.

6

Выполните поиск и выберите пользователя.

7

Прокрутите страницу вниз до раздела "Полномочия Set Assignments".

8

Щелкните Edit Assignments

9

Для администраторов Contact Center: назначьте набор полномочий администратора Contact Center (телефония партнера).

10

Для операторов Contact Center: назначьте набор полномочий оператора Contact Center (телефония партнера) и набор полномочий оператора Webex Contact Center SCV.

Не рекомендуется выбирать Install for All Users , поскольку этот параметр предоставляет все полномочия (чтение, создание, редактирование и удаление) в компонентах и объектах пакета любому пользователю, использующему настраиваемый профиль пользователя.

11

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

  • Щелкните Настройка | Приложения | Упаковка | Установленные пакеты.
  • Щелкните Управление лицензиями рядом с недавно установленным Webex Contact Center для голосовой связи в облаке служб.
  • Щелкните Добавить пользователей.
  • Выберите пользователей, которым будет назначена муза лицензии, и щелкните Добавить.

12

Также можно щелкнуть Настройка | Пользователи | Пользователи..

13

Найдите и выберите пользователя.

14

Прокрутите страницу вниз до раздела Managed Packages.

15

Щелкнуть Assign Licenses.

16

Выбрать Webex Contact Center for Service Cloud Voice из списка.

17

Щелкнуть Add.

18

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

19

В разделе настройки введите Presence Statuses в поле быстрого поиска, затем выберите Presence Statuses.

20

Щелкнуть New. Создайте хотя бы одно состояние для "Онлайн" и одно для "Занято".

  • Создайте выделенное состояние присутствия "Занято" для RONA. Конфигурация присутствия может использоваться для автоматического установки состояния Omni-Channel на указанное состояние всякий раз, когда RONA происходит на стороне CTI или в Salesforce.
  • Если настроить состояние RONA в Presence Configurationубедитесь, что не используется конфигурация присутствия по умолчанию. В настоящее время Webex Contact Center для голосовой связи в облаке служб не получает состояние RONA, настроенное в конфигурации по умолчанию.

Назначить состояния доступности операторам

1

В разделе "Настройка" введите "Наборы полномочий" в поле "Быстрый поиск" и выберите "Наборы полномочий".

2

Щелкните, чтобы открыть Partner Telephony Permission Set.

3

Щелкнуть Service Presence Statuses Access.

4

Щелкнуть Edit.

5

На вкладке Available Service Presences выберите ранее созданные состояния присутствия и щелкните Add для связывания их с набором полномочий. Операторы, назначенные этому набору полномочий, могут входить в Omni-Channel с любым из доступных им состояний присутствия.

6

Щелкнуть Save.

7

Щелкнуть Manage Assignments на той же странице. Затем щелкните Add Assignment в правом верхнем углу выберите необходимого пользователя, щелкните Next, выберите Expiration Option для назначенных пользователей (необязательно) и щелкните Assign.

Service Cloud Voice использует внешний домен для работы с записью VoiceCall. Следующие URL-адреса должны быть добавлены в раздел "Настройки удаленного объекта" в разделе "Настройки" (щелкните здесь, чтобы открыть официальную документацию):

Пример. Как найти URL экземпляра.

8

После входа проверьте URL-адрес в адресной строке браузера. URL экземпляра представляет собой часть перед ".my.salesforce.com" или ".salesforce.com" или . lightning.force.com". Например, если URL-адрес https://orgfarm-54a38e30ad-dev-ed.develop.my.salesforce-setup.com/, то "orgfarm-54a38e30ad-dev-ed.develop" будет вашим URL-адресом экземпляра.

Пример.

URL-адрес организации: https://cisco.lightning.force.com

Пример. URL-адрес для добавления:

  • https://cisco.my.salesforce-scrt.com

9

Для использования оператором Service Cloud Voice в приложении консоли службы Lightning требуется элемент сервисной программы Omni-Channel.

  • В разделе "Настройка" введите "Приложения" в поле "Быстрый поиск" и выберите "Диспетчер приложений".
  • Щелкните раскрывающийся список рядом с приложением консоли службы или используемым приложением, затем щелкните "Редактировать".
  • В разделе "Настройки приложения" щелкните "Элементы сервисной программы" (только для рабочего стола).
  • Щелкните "Добавить элемент сервисной программы".
  • В модальном окне выполните поиск Omni-Channel.
  • Щелкните Omni-Channel.
  • Щелкните "Сохранить" и выйдите из диспетчера приложений.

Официальную ссылку на Salesforce можно найти, щелкнув Let's Do This с помощью которой открывается страница Настройка возможностей оператора для голосовой связи в облаке служб с телефонией партнера на портале справки Salesforce (прямая ссылка 2}).

10

В разделе настройки введите Partner Telephony Setup в поле быстрого поиска, затем выберите Partner Telephony Setup.

11

Прокрутите вниз до раздела 5 More Voice Settings.

12

Чтобы включить защиту нажатий клавиш для страниц Visualforce с отключенными заголовками во время работы с программным телефоном в Lightning Experience, необходимо добавить домены, загруженные программным телефоном и пользовательские панели инструментов в качестве доверенных доменов, в дополнение к URL экземпляра Salesforce.

Эти настройки и список доверенных доменов можно найти в разделе Настройка | Безопасность | Настройки сеанса.

Чтобы получить правильный домен Visualforce, перейдите к меню Настройка | Пользовательский код | Страницы Visualforce и щелкните кнопку предпросмотра для CiscoScvMainWxCC. В зависимости от конфигурации организации Salesforce может автоматически перенаправляться на другой URL-адрес. Скопируйте URL-адрес и добавьте его в Trusted Domains for Inline Frames выберите "Visualforce Pages" в качестве типа IFrame.

Пример. MyDomainName--cisco_wxcc_scv.vf.force.com

Чтобы получить домен экземпляра Salesforce, скопируйте URL, отображаемый в строке URL браузера, и добавьте его в Trusted Domains for Inline Frames List выбор списка Visualforce Pages как тип IFrame.

Пример. MyDomainName.lightning.force.com

Если в вашей организации не развернут раздел "Мой домен", ваш формат URL будет отличаться. Если у вас развернут раздел "Мой домен", а усовершенствованные домены не включены в вашей организации, ваш формат URL будет отличаться. Если усовершенствованные домены не включены, этот формат также влияет на настройку «Стабилизация URL» в Visualforce, Experience Builder, Site.com Studio и контентных файлах «Мой домен». Подробности см. в разделе Форматы URL-адресов моего домена справки Salesforce.

Настройки защиты Clickjack и доверенных доменов для Lightning Experience

13

Для отображения элементов управления записью во время вызовов операторам необходимо Control Call Recording полномочие приложения.

Чтобы назначить его, добавьте в набор полномочий, созданный на шаге Состояния доступности.

  • Откройте набор полномочий.
  • Щелкните App Permissions .
  • Щелкните Edit .
  • Добавление центра обработки вызовов Control Call Recording полномочие и сохранение.

Конфигурация

Контакт-центр

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

Дополнительную информацию можно найти в официальной документации Salesforce (прямая ссылка).

Импорт контакт-центра

Скачайте последнюю версию Contact Center здесь.

Модернизация из бета-версии. В этом руководстве описана чистая установка выпуска общей доступности интеграции Webex Contact Center для голосовой связи в облаке службы Salesforce.

При модернизации из бета-версии интеграции не используйте существующую запись партнерского контакт-центра повторно. Вместо этого:

  1. Импортируйте XML-файл контакт-центра партнера, включенный в выпуск GA.
  2. Создайте новую запись контакт-центра партнера, используя импортированный XML.
  3. Обновите конфигурацию, чтобы использовать вновь созданный партнерский контакт-центр.

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

1

В разделе настройки введите Partner Telephony Contact Centers в Quick Find , затем выберите Partner Telephony Contact Centers.

Отобразится список существующих (если таковых имеется) контакт-центров.
2

Щелкнуть Create Contact Center в правой части страницы.

3

Выбрать Webex Contact Center в качестве поставщика услуг телефонии. Затем щелкните Next.

Откроется браузер файлов.
4

Описание .xml , содержащий определение контакт-центра.

5

Щелкнуть Open.

Файл импортирован.
6

Проверьте, отображается ли ваш контакт-центр в представлении списка контакт-центров.

Настройка контакт-центра

1

В разделе настройки введите Partner Telephony Contact Centers в Quick Find , затем выберите Partner Telephony Contact Centers.

2

Щелкните ранее импортированный контакт-центр.

3

Щелкнуть Edit.

Table 1. Contact Center details
ПолеОписание
Отображаемое имя Это имя контакт-центра, которое отображается в списке доступных контакт-центров. Один и тот же файл определения контакт-центра (.xml) можно импортировать несколько раз и иметь разные отображаемые имена.
Открытый ключ

Для использования голосовых функций требуется сертификат с открытым и закрытым ключом. Чтобы получить закрытый ключ, можно создать самоподписанный сертификат, создать сертификат, подписанный центром сертификации или напрямую импортировать файлы хранилища ключей Java (JKS) или файлы хранилища ключей Bouncy Castle (BCFKS), используя Import from keystore .

После создания сертификата:

  • Щелкните Certificate метка.
  • Щелкнуть Download Certificate.
  • Откройте скачанный сертификат с помощью текстового редактора.
  • Скопировать его контент в Public key поле контакт-центра.

Требуется Да

Уникальное имя сертификата

Сообщение об Unique Name самоподписанного сертификата, созданного для открытого ключа.

Требуется Да

Идентификатор состояния "Готов"
  • Откройте Presence Statuses в разделе "Настройка".
  • Щелкните Online и скопируйте идентификатор Salesforce из панели URL.
  • Вставьте идентификатор в это поле.

Требуется Да

Идентификатор состояния "Не готов"
  • Откройте Presence Statuses в разделе "Настройка".
  • Щелкните Busy и скопируйте идентификатор Salesforce из панели URL.
  • Вставьте идентификатор в это поле.

Требуется Да

Причина неготовности Cisco по умолчанию

Идентификатор кода простоя Cisco, который используется в качестве кода простоя по умолчанию в случае отсутствия сопоставления для определенного состояния доступности.

Требуется Да

Чтобы проверить настроенные идентификаторы кода простоя, см. раздел Коды простоя.

Сопоставление состояния доступности

Используется для сопоставления состояний Salesforce Omni Presence с кодами причин «Готов» и «Не готов».

Сообщение об Idle Code необходимо добавить состояния:

  • Откройте Presence Statuses в разделе "Настройка".
  • Щелкните один из Busy состояния и копирует идентификатор Salesforce из панели URL. Идентификаторы состояния доступности начинаются с 0N5. например 0N51X0000000AUT.
  • Вставьте идентификатор в это поле, затем запятую и идентификатор кода простоя Cisco.
  • Один или несколько Busy сопоставления можно добавить с помощью разделителя запятыми.

Чтобы избежать проблем с синхронизацией, Default Not Ready ID также должен быть настроен в сопоставлении.

Если вы настроили состояния для Decline и Push Timeout в области Presence Configuration, а также добавьте их в сопоставление с соответствующим состоянием Cisco Not Ready.

Формат:

  • Сопоставление "Занят": busyPresenceID1,ciscoAuxCodeID1
  • Сопоставление по умолчанию: defaultNotReadyPresenceID,ciscoDefaultNotReadyAuxCodeID
  • Онлайн-сопоставление: onlinePresenceId,0

Разделите каждое полное сопоставление точкой с запятой.

Требуется Да

Ниже приведен пример завершенных кодов простоя для обеда, совещания, перерыва.

Переменная вызова для идентификатора голосового вызова

Переменная вызова, используемая для хранения идентификатора текущего голосового вызова. Он используется для корректного обновления состояния вызова.

Формат: Имя переменной, настроенной в Webex Contact Center Flow. Например SCV_VoiceCallRecordId

Требуется Да

Значение по умолчанию: SCV_VoiceCallRecordId

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

Переменная вызова для ключа вызова поставщика

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

Формат: Имя переменной, настроенной в Webex Contact Center Flow. Например SCV_VendorCallKey

Требуется Да

Значение по умолчанию: SCV_VendorCallKey

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

Перевод набора номера телефона

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

См. Переводы номеров телефона

Требуется Нет

Регион Webex Contact Center

Для определения региона Webex Contact Center арендатор используется. Его можно найти в URL-адресе портала Webex Contact Center, портала разработки или рабочего стола. Например: devportal.wxcc-eu2.cisco.com использует регион eu2.

Формат: eu2

Требуется Да

Регионы Webex Contact Center и соответствующие строки:

  • США: us1
  • Канада: ca1
  • Великобритания: eu1
  • Германия: eu2
  • Австралия: anz1
  • Сингапур: sg1
  • Япония. jp1
Домен WebRTC Webex Contact Center

Домен используется для установления правильного соединения WebRTC. Используйте местоположение клиента Webex Contact Center.

  • США: rtw.prod-us1.rtmsprod.net
  • АВСТРАЛИЯ И НОВАЯ ЗЕЛАНДИЯ: rtw.prod-as1.rtmsprod.net
  • CA: rtw.prod-ca1.rtmsprod.net
  • JP: rtw.prod-ja1.rtmsprod.net
  • ЕС1: rtw.prod-uk1.rtmsprod.net
  • ЕС2: rtw.prod-gm1.rtmsprod.net

Требуется Да для WebRTC

Включить текст стенограммы WCCAI

Используется для включения или отключения текста стенограммы WCCAI.

Формат: True или False

Требуется Нет

Значение по умолчанию: False

Сохранить ссылку на запись

Используется для сохранения ссылки на запись вызова Webex в записи голосового вызова.

Формат: True или False

Требуется Нет

Значение по умолчанию: True

4

В нижней части Contact Center страницу, щелкните Add кнопка под Contact Center Users .

5

Щелкните + рядом с пользователями, имеющими доступ к открытому контакт-центру.

Только пользователи, имеющие Contact Center Agent (Partner Telephony) В этом списке отображаются указанные полномочия и еще не назначены другим контактным центрам.

Настройка

Внешнее клиентское приложение для интеграции Webex Contact Center

Настройка внешнего приложения клиента для соединителя Webex Contact Center Salesforce

Для полноценного использования голосовой связи в облаке службы поток вызовов контакт-центра можно адаптировать для создания записи голосового вызова и выполнения омни-канала Salesforce во время вызова в IVR.

Создать сертификат

Убедитесь, что цифровой сертификат уже создан в соответствии с политикой безопасности вашей организации.

Чтобы создать цифровой сертификат, см. документацию Salesforce по адресу https://developer.salesforce.com/docs/atlas.en-us.voice_pt_developer_guide.meta/voice_pt_developer_guide/voice_pt_generate_certificate.htm.

Пример

openssl genrsa -des3 -passout pass:<password> -out server.pass.key 2048
openssl rsa -passin pass:<password> -in server.pass.key -out server.key
rm server.pass.key
openssl req -new -key server.key -out server.csr

    Country Name (2 letter code) [AU]:CH
    State or Province Name (full name) [Some-State]:
    Locality Name (eg, city) []:
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:
    Organizational Unit Name (eg, section) []:
    Common Name (e.g. server FQDN or YOUR name) []:
    Email Address []: my-api-user@my-example-org.com
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:<password>
    An optional company name []:

openssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crt

server.crt => Сертификат для внешнего приложения клиента Salesforce

server.key => Закрытый ключ для соединителя Salesforce в Webex Control Hub

Набор полномочий для пользователя интеграции SCV

Приведенный ниже набор полномочий предоставляет доступ к классам Apex, используемым службой Connects для SCV для интеграции с потоками IVR контакт-центра и Webex Contact Center для Salesforce для SCV.

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

  • В разделе "Настройка" перейдите к разделу Пользователи | Наборы полномочий.
  • Щелкните New .
    • Введите Метку, например: Доступ IVR к классам Apex SCV
    • Имя API заполняется автоматически
    • Лицензия: Нет
    • Щелкните Save .
  • Откроется новый набор полномочий.
  • Перейдите в расположение Apex Class Access.
  • Щелкните Edit и добавьте следующие классы Apex:
    • cisco_wxcc_scv.ServiceRouting
  • Перейдите в расположение System Permissions.
  • Щелкните Edit и включите следующие полномочия:
    • Службы REST Apex
    • API включен

Минимальный доступ: профиль интеграций только с API

Этот профиль используется для интеграции с Webex Contact Center для Salesforce для SCV для создания записей голосовых вызовов и выполнения Omni-Flow из потока IVR.

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

Это клон профиля "Минимальный доступ: интеграции только API".

  • В разделе "Настройка" перейдите в раздел Пользователи | Профили.
  • В списке профилей выполните поиск профиля Минимальный доступ: интеграции только API.
  • Щелкните имя профиля, чтобы открыть Minimum Access - API Only Integrations профиля.
  • На вкладке Minimum Access - API Only Integrations профиль, щелкните Clone .
  • Введите новое имя профиля, например: Интеграция SCV.
  • Щелкните Save .
  • Откроется новый профиль.
  • Убедитесь, что в профиле "Минимальный доступ: интеграции только API" все полномочия удалены из этого профиля.
  • Перейдите в расположение System Permissions.
  • Убедитесь, что включены следующие полномочия:
    • API включен
    • Только Пользователь Api

Пользователь интеграции SCV

Ниже приведен пример конфигурации и описаны минимальные необходимые полномочия для работы интеграции контакт-центра или IVR. Для пользователя интеграции SCV не требуется лицензия службы Salesforce Cloud Voice или лицензия Webex Contact Center для Salesforce для SCV.

  • В разделе "Настройка" перейдите в раздел Пользователи | Пользователи.
  • Щелкните New User .
    • Введите имя, фамилию и все остальные обязательные поля.
    • Лицензия пользователя: Интеграция Salesforce
    • Профиль: выберите профиль, созданный на предыдущем шаге ("Профиль интеграции SCV", клон "Минимальный доступ: профиль интеграции только API")
  • Щелкните Save .
  • Откройте новую запись пользователя.
  • Назначить Permission Set создано раньше ("IVR Access to SCV Apex Classes").
  • Назначьте лицензию «Набор полномочий» Интеграция API Salesforce.
Создание внешнего приложения клиента Salesforce
Создать новое внешнее приложение клиента

Существует два варианта подключения данных Salesforce к сторонним приложениям. И то, и другое Connected Apps и External Client Apps являются платформами для интеграции данных. Внешние клиентские приложения – это следующее поколение подключенных приложений.

Чтобы настроить внешнее приложение клиента Salesforce, используемое Cisco Webex Contact Center, выполните приведенные ниже действия.

  1. от Setup, перейдите в раздел Apps | External Client Apps | External Client App Manager.
  2. Щелкните New External Client App.
  3. External Client App—Basic Information
    • Название приложения внешнего клиента: WxCC - SCV
    • Имя API: WxCC_SCV
    • Адрес электронной почты контакта: < ваш адрес электронной почты >
    • Состояние распределения: выберите локальный

    Основные сведения

    External Client App—API (Enable OAuth Settings)

    • Выберите: Включить OAuth
    • Настройки приложения
    • URL-адрес обратного вызова: http://localhost:1717/OauthRedirect в качестве примера URL-адреса обратного вызова
    • Области OAuth
    • Выберите области OAuth:
    • Управление данными пользователей с помощью API (api)
    • Выполнять запросы в любое время (refresh_token, offline_access)

    API (включить настройки oAuth)

    Flow Enablement

    • Выберите: Включить поток носителя JWT
    • Щелкните "Загрузить файлы" и загрузите server.crt файл, содержащий ваш цифровой сертификат.

    Возможность плавания

    Security

    Снимите флажок Require secret for the Web Server Flow параметр.

    Безопасность

  4. Щелкните Create .
  5. Изменить на Tab Policies и щелкните Edit .
  6. Политики: политики OAuth
    • Политики подключаемых модулей
      • Разрешенные пользователи: выберите Утвержденные администратором пользователи являются предварительно авторизованными
      • Подтвердите изменение
    • Авторизация приложения
      • Обновить политику токена: выберите Срок действия токена обновления немедленно
      • Релаксация IP-адресов: выберите «Установить ограничения IP-адресов»

    Политики OAuth

  7. Политики: политики приложения
    • Начальная страница: нет
    • Выбор наборов полномочий — назначьте набор полномочий, созданный ранее ("Доступ IVR к классам Apex SCV") 

    Политики приложения

  8. Щелкнуть Save.
  9. Изменить на параметры вкладки.
    • Раздел "Настройки OAuth", щелкните Consumer Key и Secret кнопка; дождитесь сообщения электронной почты и проверьте идентификационные данные. В новой вкладке браузера откроется экран со сведениями о клиенте.

      Настройки OAuth

    • Щелкнуть Copy и сохраните Consumer Key. Ключ потребителя будет использоваться позже для создания соединителя Salesforce в Webex Contact Center Control Hub. 

      Имя Приложения внешнего клиента

Конфигурация и сценарий Webex Contact Center для создания записей голосовых вызовов

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

Для принятия решений о маршрутизации и автоматизации в Salesforce можно выполнить дополнительный Omni-Flow.

Сведения об использованных API см. в разделе Оболочка голосовых API службы в облаке.

Предварительные требования

Чтобы использовать оболочку Service Cloud Voice API, необходимо настроить внешнее клиентское приложение Salesforce для интеграции IVR.

Настройка соединителя Salesforce в Webex Control Hub

Настройте соединители интеграции Salesforce для Webex Contact Center, как описано в статье: https://help.webex.com/en-us/article/7fuy63/Set-Up-Integration-Connectors-for-Webex-Contact-Center#id_133211.

1

Войдите в организацию клиента по адресу https://admin.webex.com и перейдите к меню "Службы" > "Контакт-центр" > "Настройки клиента" > "Интеграции" > "Соединители".

2

На карточке Salesforce щелкните "Настройка" или "Добавить соединитель".

  • Идентификатор клиента: Пользовательский ключ приложения внешнего клиента
  • Идентификатор электронной почты Salesforce: Имя пользователя Salesforce "Интеграция SCV" (см. "Пользователь интеграции SCV")
  • URL-адрес: для использования в рабочем режиме https://login.salesforce.com или при настройке окна разработки или песочницы использовать https://test.salesforce.com
  • Закрытый ключ: контент файла server.key

ВАЖНО! ОБЕСПЕЧЕНИЕ БЕЗОПАСНОСТИ ПУТЕМ ПЕРИОДИЧЕСКОГО ВРАЩЕНИЯ СЕКРЕТОВ

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

Обновите закрытый ключ в соединителе Contact Center Connector в Webex Hub и сертификат в внешнем клиентском приложении в Salesforce.

Подсказка по устранению неисправностей

После нажатия кнопки "Готово" соединитель не сохраняет:

  • Проверьте, есть ли у вас пробелы до и после записей.
  • Убедитесь, что ваш Закрытый ключ (server.key) соответствует вашему server.crt. При настройке нескольких организаций и переключении сертификатов они не будут работать.
  • убедитесь, что Server.key начинается с. ----- Begin RSA Private Key -----

Основной поток Webex Contact Center

Table 2. Flow variale
Переменная потокаОписание
Переменная потока для идентификатора записи голосового вызова Уникальный идентификатор для идентификации вызова. Требуется для создания записи голосового вызова.

Формат: wxcc_<Идентификатор взаимодействия>

Пример: wxcc_fc4ec7d8-4c91-49aa-b764-081fbba344a8

  • Имя: SCV_VendorCallKey
  • Тип: Строки
  • Сделать доступным для просмотра оператором: Enabled
Локальная переменная для времени начала вызова

Используется для создания записи голосового вызова и обновления голосового вызова.

  • Имя: Время начала вызова SCV
  • Тип: Строки
  • Сделать доступным для просмотра оператором: нет
Локальная переменная для имени/идентификатора очереди

Возвращено пользователем Execute Omni Flow, используемым для маршрутизации вызовов.

Эта переменная требуется только при использовании Execute Omni Flow

  • Имя: Очередь SCV_OmniFlow
  • Тип: Строки
  • Сделать доступным для просмотра оператором: нет
Локальная переменная для имени/идентификатора оператора

Возвращено пользователем Execute Omni Flow, используемым для маршрутизации вызовов.

Эта переменная требуется только при использовании Execute Omni Flow

  • Имя: Агент SCV_OmniFlow
  • Тип: Строки
  • Сделать доступным для просмотра оператором: нет

Обзор основного потока

  1. Создать ключ вызова поставщика
  2. Задать время начала вызова
  3. Запрос HTTP: Создать запись голосового вызова
  4. Оценка ответа HTTP для создания записи голосового вызова
  5. Ошибка обработки параметра "Создать запись голосового вызова"
  6. Запрос HTTP: Выполнить Omni Flow
  7. Вычисление ответа HTTP для выполнения Omni Flow
  8. Ошибка обработки Execute Omni Flow
  9. Продолжить с помощью маршрутизации вызовов
Table 3. Main Flow
ПотокОписание
Создать ключ вызова поставщика

Каждый вызов, обработанный в службе Service Cloud Voice, создает запись голосового вызова в Salesforce и требует уникального идентификатора, называемого ключом вызова поставщика. Для записей голосовых вызовов, созданных в Webex Contact Center, ключ вызова поставщика должен быть определен в потоке WxCC, а затем передан оператору с помощью переменной потока.

Значение vendorCallKey должно соответствовать следующим правилам:

  • Значение должно содержать <= 255 симв.
  • Значение может включать буквенно-цифровые символы, а также символ подчеркивания (_), дефис (-) и точка (.).
  • Значение должно начинаться с буквы, не содержать пробелов, не заканчиваться символом подчеркивания и не содержать два символа подчеркивания подряд.

  • Метка активности: Создать_VendorCallKey
  • Имя переменной: SCV_VendorCallKey
  • Тип переменной: Строки
  • Значение переменной – задайте значение: wxcc_{{NewPhoneContact.InteractionId}}

Задать время начала вызова

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

  • Метка активности: Задать время начала вызова
  • Переменная: Время начала вызова SCV
  • Значение переменной – задайте значение: {{now() | replace({'[UTC]': ''})}}
Запрос HTTP: Создать запись голосового вызова

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

Настройки HTTP-запросов
  • Метка активности: CreateVoiceCall
  • Использовать аутентифицированное оконечное устройство: Enabled
  • Соединитель: Соединитель Salesforce создан на предыдущем этапе
  • Путь запроса: /services/apexrest/cisco_wxcc_scv/voice/v1/createVoiceCall
  • Метод: POST
  • Тип контента запроса: Приложение/JSON

Запрос HTTP: Создать запись голосового вызова

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

Настройки HTTP-запросов

  • Метка активности: CreateVoiceCall
  • Использовать аутентифицированное оконечное устройство: Enabled
  • Соединитель: Соединитель Salesforce создан на предыдущем этапе
  • Путь запроса: /services/apexrest/cisco_wxcc_scv/voice/v1/createVoiceCall
  • Метод: POST
  • Тип контента запроса: Приложение/JSON

Текст запроса

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

Без обновления пользовательских полей в записи голосового вызова.

{
  "callCenterDevName": "<Contact Center API name>",
  "certDevName": "<cert dev name>",
  "vendorCallKey": "{{SCV_VendorCallKey}}",
  "to": "{{NewPhoneContact.DNIS}}",
  "from": "{{NewPhoneContact.ANI}}",
  "initiationMethod": "Inbound",
  "startTime": "{{SCV_CallStartTime}}",
  "participants": [
    {
      "participantKey": "{{NewPhoneContact.ANI}}",
      "type" : "END_USER"
    }
  ]
}

Пример обновления пользовательских полей в записи голосового вызова.

{
  "callCenterDevName": "<Contact Center API name>",
  "certDevName": "<cert dev name>",
  "vendorCallKey": "{{SCV_VendorCallKey}}",
  "to": "{{NewPhoneContact.DNIS}}",
  "from": "{{NewPhoneContact.ANI}}",
  "initiationMethod": "Inbound",
  "startTime": "{{SCV_CallStartTime}}",
  "participants": [
    {
      "participantKey": "{{NewPhoneContact.ANI}}",
      "type" : "END_USER"
    }
  ],
  "callAttributes": "{\"custfield1__c\": \"<value1>\",\"custfield2__c\": \"<value2>\",\"custfield3__c\": \"<value3>\"}"
}

Параметры
Название свойства Значение
callCenterDevName Имя разработчика Contact Center
Разработчик сертификатаName Имя сертификата API (настроено в Contact Center)
ключ вызова поставщика Уникальный идентификатор вызова: {{SCV_VendorCallKey}}
Вызываемый номер/DNIS: {{NewPhoneContact.DNIS}}
с Номер вызывающего абонента/ANI: {{NewPhoneContact.ANI}}
время начала Метка времени UTC {{SCV_CallStartTime}} (должно быть задано сразу после принятия вызова в сценарии)
атрибуты вызова

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

Пример.

custfield1__c, custfield2__c, custfield3__c: Имя API пользовательского поля на объекте голосового вызова

value1, value2, value3: Значение пользовательского поля

Параметры анализа
  • Тип контента: JSON
  • Выходная переменная: SCV_VoiceCallRecordId
  • Выражение пути: $.data.voiceCallId

Идентификатор записи голосового вызова, который будет передан оператору.

Оценка ответа HTTP для создания записи голосового вызова

Проверьте состояние HTTP запроса Create Voice Call HTTP:

  • Метка: statusCodeCreateVoiceCall
  • Переменная: CreateVoiceCall.httpStatusCode

Если код состояния == 200 => успешно выполнен иначе => запрос не выполнен, обработка ошибки

Ошибка обработки параметра "Создать запись голосового вызова"

Только для демо/отладки воспроизводить сообщение в зависимости от кода состояния http.

Если создание голосового вызова прошло успешно, продолжите работу с Execute Omni Flow. В противном случае продолжите маршрутизацию вызовов.

Запрос HTTP: Выполнить Omni Flow (необязательный шаг)

Используйте Execute Omni-Flow, если необходимо:

  • запускать автоматизированные задачи, например поиск или создание записей, и связывать записи с записью голосового вызова
  • поиск записей и отображение всплывающего окна
  • синхронизировать очереди Salesforce и Cisco
  • разрешить службе Service Cloud Voice принимать решение о маршрутизации

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

После выполнения этого запроса убедитесь, что вы отправили сообщение "Очистить маршрутизацию", если вызывающий абонент повесит трубку, прежде чем оператор ответит. См. раздел Поток событий Webex Contact Center.

Настройки HTTP-запросов

  • Метка активности: ExecuteOmniFlow
  • Использовать аутентифицированное оконечное устройство: Enabled
  • Соединитель: Соединитель Salesforce создан на предыдущем этапе
  • Путь запроса: /services/apexrest/cisco_wxcc_scv/voice/v1/executeOmniFlow
  • Метод: POST
  • Тип контента запроса: Приложение/JSON

Текст запроса

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

Пример для параметров Omni-Flow:

{
  "callCenterDevName": "<Contact Center API name>",
  "certDevName": "<cert dev name>",
  "voiceCallId": "{{SCV_VoiceCallRecordId}}",
  "dialedNumber": "{{NewPhoneContact.DNIS}}",
  "flowDevName": "<flow api name>",
  "fallbackQueue": "<fallback queue name>"
}

Пример обновления пользовательских полей в записи голосового вызова.

{
  "callCenterDevName": "<Contact Center API name>",
  "certDevName": "<cert dev name>",
  "voiceCallId": "{{SCV_VoiceCallRecordId}}",
  "dialedNumber": "{{NewPhoneContact.DNIS}}",
  "flowDevName": "<flow api name>",
  "fallbackQueue": "<fallback queue name>",
  "flowInputParameters": 
  {
    "param1": "value1",
    "param2": "value2"
  }
}

Параметры
Название свойства Значение
callCenterDevName Имя разработчика Contact Center
Разработчик сертификатаName Имя сертификата API (настроено в Contact Center)
идентификатор голосового вызова Идентификатор записи голосового вызова, созданный на предыдущем шаге: {{SCV_VoiceCallRecordId}}
набранный номер Вызываемый номер/DNIS: {{NewPhoneContact.DNIS}}
потокDevName Имя разработчика Omni-Flow для выполнения
резервная очередь Идентификатор очереди или название API очереди резервной очереди Salesforce
flowInputParameters

Дополнительные входы в поток Omni-Channel (пара ключ-значение).

Пример.

param1, param2: Имя входного параметра Omni-Flow

value1, value2: Значение параметра

Параметры анализа

Очередь

  • Тип контента: JSON
  • Выходная переменная: Очередь SCV_OmniFlow
  • Выражение пути: $.data.queue

Для маршрутизации может использоваться "Очередь", возвращаемая из Execute Omni-Flow.

Оператор
  • Тип контента: JSON
  • Выходная переменная: Агент SCV_OmniFlow
  • Выражение пути: $.data.agent

"Оператор", возвращаемый из Execute Omni-Flow, может использоваться для маршрутизации.

Вычисление ответа HTTP для выполнения Omni Flow

Проверьте состояние HTTP запроса Execute Omni Flow:

  • Метка: statusCodeExecuteOmniFlow
  • Переменная: ExecuteOmniFlow.httpStatusCode

Если код состояния == 200 => успешно выполнен else => запрос не выполнен, обработка ошибки.

Ошибка обработки Execute Omni Flow

Только для демо/отладки воспроизводить сообщение в зависимости от кода состояния http.

Если выполнение Omni Flow прошло успешно, переменные SCV_OmniFlowQueue и SCV_OmniFlowAgent не заданы. решение о маршрутизации в потоке вызовов.

Продолжить с помощью маршрутизации вызовов

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

Процесс event-совещаний Webex Contact Center

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

  • Если использовался Execute Omni-Flow, отправьте сообщение "Очистить маршрутизацию", чтобы удалить маршрутизацию службы на рассмотрении (PSR)
  • Отправить обновление голосового вызова, чтобы обновить время начала и завершения записи голосового вызова и изменить состояние с "Новый" на "Завершенный"

  1. PhoneContactEnded — это событие запускается при отключении вызова в режиме реального времени и удалении всех участников.
  2. Запрос HTTP: Очистить маршрутизацию
  3. Запрос HTTP: Обновить голосовой вызов
Запрос HTTP: Очистить маршрутизацию

  • Метка: Очистить маршрутизацию
  • Использовать аутентифицированное оконечное устройство: Enabled
  • Соединитель: Соединитель Salesforce создан на предыдущем этапе
  • Путь запроса: /services/apexrest/cisco_wxcc_scv/voice/v1/clearRouting
  • Метод: POST

Тип контента запроса: Приложение/JSON

Текст запроса

{
  "callCenterDevName": "<Contact Center API name>",
  "certDevName": "<cert dev name>",
  "voiceCallId": "{{SCV_VoiceCallRecordId}}"
}

Параметры

Название свойстваЗначение
callCenterDevName Имя разработчика Contact Center
Разработчик сертификатаName Имя сертификата API (настроено в Contact Center)
идентификатор голосового вызова Идентификатор записи голосового вызова, созданный на предыдущем шаге: SCV_VoiceCallRecordId

Параметры анализа

Нет.

Запрос HTTP: Обновить голосовой вызов

  • Метка: Обновить голосовой вызов
  • Использовать аутентифицированное оконечное устройство: Enabled
  • Соединитель: Соединитель Salesforce создан на предыдущем этапе
  • Путь запроса: /services/apexrest/cisco_wxcc_scv/voice/v1/updateVoiceCall
  • Метод: POST
  • Тип контента запроса: Приложение/JSON

Текст запроса

{
  "callCenterDevName": "<Contact Center API name>",
  "certDevName": "<cert dev name>",
  "voiceCallId": "{{SCV_VoiceCallRecordId}}",
  "startTime": "{{SCV_CallStartTime}}",
  "endTime": "{{now() | replace({'[UTC]': ''})}}",
  "disconnectReason": { "value": "Abandoned in queue", "isError": true }
}

Параметры

Название свойстваЗначение
callCenterDevName Имя разработчика Contact Center
Разработчик сертификатаName Имя сертификата API (настроено в Contact Center)
идентификатор голосового вызова Идентификатор записи голосового вызова, созданный на предыдущем шаге: SCV_VoiceCallRecordId
время начала Метка времени начала вызова UTC {{SCV_CallStartTime}} (используется для создания записи голосового вызова)
Время окончания Текущая метка времени UTC `{{now()
disconnectПричина Причина отключения вызова. Свойство isError необходимо установить значение true для правильного отображения.

Параметры анализа

Нет.

Ссылки

Перевод языка

(Необязательно) Включить рабочий стол перевода

Эта настройка применима только в случае использования настроек языка перевода.

1

Перейдите к меню "Настройка" → Перевод Workbench → Настройки языка перевода.

2

Щелкнуть Enable чтобы выбрать язык перевода.

(Необязательно) Включить языки, используемые только для платформы

Эта настройка применима только к языкам, отличным от EN-US.

1

Перейдите к меню "Настройка" → "Настройки компании" → "Настройки языка".

2

Выберите необходимые языки.

3

Установите следующие флажки:

  • Включить языки конечного пользователя: справка и настройка не будут переведены на языки конечного пользователя
  • Включить языки, используемые только для платформы: для языков, использующих только для платформы, не предоставляются переводы по умолчанию
4

Сохраните внесенные изменения.

Активируйте язык и выберите пользователя (задачу)
1

Перейдите к меню "Настройка" → Перевод Workbench → Настройки языка перевода.

2

Выберите язык и выберите пользователя, который будет его переводить.

3

Сохраните внесенные изменения.

Настройки нескольких языков
Перевод пользовательских меток
1

Перейдите к меню "Настройка" → "Пользовательские метки".

2

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

3

В соответствующем списке переводов щелкните New для ввода нового перевода или редактирования (рядом с языком) для редактирования перевода.

4

Выберите язык, на который вы переводите.

5

Введите переведенное значение в поле «Текст перевода». Этот текст переопределяет значение, указанное в поле «Значение» метки, если языком перевода по умолчанию является язык перевода пользователя.

6

Сохраните внесенные изменения.

Полномочия Salesforce, требуемые функцией пользователя

Набор полномочий оператора Webex Contact Center SCV содержит все полномочия, необходимые для работы с гаджетом Webex Contact Center и интеграциями, разработанными для операторов.

Доступ к классу Apex (раздел)

  • cisco_wxcc_scv.CiscoScvWxcc
  • cisco_wxcc_scv.ServiceResponseHandler
  • cisco_wxcc_scv.ServiceRouting
  • cisco_wxcc_scv.TelephonyIntegrationHandler

Доступ к пользовательскому типу метаданных (раздел)

  • cisco_wxcc_scv.WxCC Connection

Доступ к странице Visualforce (раздел)

  • cisco_wxcc_scv.CiscoScvLoginWxCC
  • cisco_wxcc_scv.CiscoScvMainWxCC
  • cisco_wxcc_scv.CiscoScvOAuthRedirect
  • cisco_wxcc_scv.CiscoScvSwLoader

Оболочка Service Cloud Voice API

Предварительные требования

Чтобы использовать оболочку Service Cloud Voice API, необходимо настроить внешнее клиентское приложение Salesforce для интеграции IVR.

Использование оболочки Service Cloud Voice API

Service Cloud Voice (SCV) для Salesforce использует REST API интеграции телефонии для создания и обновления VoiceCalls, выполнения Omni-Channel потоков и удаления записей PendingServiceRouting, связанных с VoiceCall. Для этой службы требуется авторизация JWT и использование метода PATCH HTTP, который в настоящее время не поддерживается интерактивным голосовым ответом Cisco IP (IVR).

Чтобы упростить использование REST API интеграции телефонии для SCV в (а не только) системе IVR, был доступен новый набор API, в которых используется существующий API Salesforce и доступны непосредственно из организации Salesforce, где установлен пакет Webex Contact Center для голосовой связи в облаке служб.

Оболочка Service Cloud Voice API устраняет необходимость аутентификации токена JWT, выполняет дополнительные проверки данных, необходимых API Salesforce, и улучшает объекты ответов.

Извлечение маркера Access_Token

Выполните запрос POST на https://<your-domain-name>.my.salesforce.com/services/oauth2/token

Отправка в теле следующих параметров:

{
 "grant_type": "client_credentials",
 "client_id": "<consumer key of the connected app>",
 "client_secret": "<consumer secret of the connected app>"
 }
If the request is successful, the following JSON response will be returned:
{
 "access_token": "<your-access-token>",
 "instance_url": "<your-org-base-url>",
 "id": "https://login.salesforce.com/id/<id>/<id>",
 "token_type": "Bearer",
 "issued_at": "<timestamp>",
 "signature": "<unique-signature-code>"
 }

Выполнить запросы

URL экземпляра должен содержать my.salesforce.com.

Пример правильного URL-адреса экземпляра: https://abc-123.my.salesforce.com

Использование любого другого домена в качестве URL-адреса экземпляра (например, https://abc-123.lightning.force.com ) приводит к отображению состояния "Не авторизовано" 401 с возвращенным кодом ошибки INVALID_SESSION_ID.

Создать голосовой вызов (раздел)

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

URI терминального устройства

<instance_url>/services/apexrest/cisco_wxcc_scv/voice/v1/createVoiceCall

Метод HTTP

POST

Заголовки

Авторизация: Носитель <access_token>

Тип контента: приложение/json

Параметры

{
 "callCenterDevName": "contactCenterDevName123",
 "certDevName": "certDevName123",
 "vendorCallKey": "5324881f-1e84-4367-8930-f69a74b30ca6",
 "to": "8002345678",
 "from": "4081456688",
 "initiationMethod": "Inbound",
 "startTime": "2019-07-02T17:32:28Z",
 "participants": [
 {
 "participantKey": "4081456688",
 "type" : "END_USER"
 }
 ],
 "callAttributes": "{\"devscv24__AAA_Test__c\":\"field value\",\"Other_Field__c\":\"other value\"}",
 "parentVoiceCallId": "fsdfzuhsdfsa-43556fgef3-56g44gv4ew",
 "callOrigin": "Preview",
 "queue": "queue123"
 }

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

Ответ (успешно)

{
 "data": {
 "voiceCallId": "00X000012345abc"
 },
 "errors": null,
 "success": true
 }

Ответ (с ошибками)

 
{
 "data": null,
 "errors": ["Error message 1", "Error message 2"],
 "success": false
 }

Обновить голосовой вызов

Обновляет голосовой вызов после завершения вызова. Используйте этот API для обновления параметров, связанных с вызовами, которые недоступны на этапе создания VoiceCall. Обновление API VoiceCall — это асинхронная операция. Запрос состояния вызова API невозможен.

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

URI терминального устройства

<instance_url>/services/apexrest/cisco_wxcc_scv/voice/v1/updateVoiceCall

Метод HTTP

POST

Заголовки

Авторизация: Носитель <access_token>

Тип контента: приложение/json

Параметры

{
 "callCenterDevName": "contactCenterDevName123",
 "certDevName": "certDevName123",
 "voiceCallId": "00X000012345abc",
 "startTime": "2020-08-26T21:21:14Z",
 "endTime": "2019-08-26T21:21:34Z",
 "isActiveCall": true,
 "fromNumber": "1234",
 "callOrigin": "Preview",
 "enqueueTime": "2019-08-26T21:21:34Z",
 "acceptTime": "2019-08-26T21:21:24Z",
 "numberOfHolds": 20,
 "queue": "queue123",
 "agent": "agent123",
 "agentInteractionDuration": 12,
 "longestHoldDuration": 10,
 "totalHoldDuration": 21,
 "recordingLocation": "Bern",
 "totalRecordingDuration": 55,
 "callAttributes": "{\"devscv24__AAA_Test__c\":\"field value\",\"Other_Field__c\":\"other value\"}",
 "disconnectReason": {
 "value": "TELECOM_PROBLEM",
 "isError": true
 }
 }

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

Ответ (успешно)

{
 "data": {
 "status": "pending"
 },
 "errors": null,
 "success": true
 }

Обновление API VoiceCall — это асинхронная операция. Запрос состояния вызова API невозможен.

Ответ (с ошибками)

{
 "data": null,
 "errors": ["Error message 1", "Error message 2"],
 "success": false
 }

Выполнить Omni-flow

Выполнение потока Omni-Channel для маршрутизации вызовов. Он передает идентификатор вызова (Salesforce VoiceCallId или ContactId поставщика телефонии) в качестве параметров в поток и возвращает инструкции по маршрутизации оператора или очереди в поток контактов. По умолчанию служба Cloud Voice использует поток Omni-Channel (или резервная очередь), указанный для телефонного канала, соответствующего набранному номеру. Если набранный номер не соответствует существующему телефонному каналу, можно дополнительно задать новый набранный номер, поток Omni-Channel и резервную очередь в качестве входных параметров для этого вызова API.

Service Cloud Voice использует этот порядок приоритета для маршрутизации вызовов:

  1. Использует настройки Omni-Channel Flow и Fallback Queue для канала телефона, соответствующего набранному номеру. Приоритет отдается потоку. В случае сбоя процесса используется резервная очередь.
  2. Использует параметры flowDevName и fallbackQueue, указанные в вызове Execute Omniflow API.

URI терминального устройства

<instance_url>/services/apexrest/cisco_wxcc_scv/voice/v1/executeOmniFlow

Метод HTTP

POST

Заголовки

Авторизация: Носитель <access_token>

Тип контента: приложение/json

Параметры

{
  "callCenterDevName": "contactCenterDevName123",
  "certDevName": "certDevName123",
  "voiceCallId": "00X000012345abc",
  "dialedNumber": "+18445791189",
  "flowDevName": "Route_VoiceCall",
  "fallbackQueue": "00G111222333444",
  "flowInputParameters":
  {
    "Input1": "one",
    "Input2": "two"
  }
}

  • Параметр voiceCallId является Salesforce voiceCallId или идентификатором контакта поставщика телефонии.
  • Подробное описание параметров, принятых этим запросом, можно найти в официальной документации в разделе "Параметры" Salesforce.

Ответ (успешно)

{
  "data": {
    "queue": "queue info",
    "agent": "agent info"
  },
  "errors": null,
  "success": true
}

AGENT_INFO и QUEUE_INFO соответствуют полю ExternalId в карте CallCenterRoutingMap

Ответ (с ошибками)

{
 "data": null,
 "errors": ["Error message 1", "Error message 2"],
 "success": false
 }

Очистить маршрутизацию

Удаляет запись PendingServiceRouting (PSR) для голосового вызова. Этот API не требуется вызывать в большинстве сценариев; запись PSR удаляется автоматически, если вызов больше не маршрутизируется. Однако существуют некоторые сценарии, например для пропущенных или прерванных вызовов при использовании систем телефонии партнера, где для очистки записи PSR необходимо явным образом позвонить этому API.

URI терминального устройства

<instance_url>/services/apexrest/cisco_wxcc_scv/voice/v1/clearRouting

Метод HTTP

POST

Заголовки

Авторизация: Носитель <access_token>

Тип контента: приложение/json

Параметры

{
 "callCenterDevName": "contactCenterDevName123",
 "certDevName": "certDevName123",
 "voiceCallId": "00X000012345abc"
 }

  • Параметр voiceCallId является Salesforce voiceCallId или идентификатором контакта поставщика телефонии.
  • Подробное описание параметров, принятых этим запросом, можно найти в официальной документации в разделе "Параметры" Salesforce.

Ответ (успешно)

{
 "data": {
 "status": "Success"
 },
 "errors": null,
 "success": true
 }

Ответ (с ошибками)

{
 "data": null,
 "errors": ["Error message 1", "Error message 2"],
 "success": false
 }

Перевод номеров телефона

Различные взаимодействия между службой голосовой связи в облаке и Webex Contact Center зависят от перевода номеров телефона. Из-за международных различий и пользовательских приложений для переноса номеров телефона из формата A в формат B требуется настраиваемый инструмент.

Решение Webex Contact Center для голосовой связи в облаке служб автоматически удаляет все символы, кроме цифр, хэштегов (#), звездочек (*), запятых (,) и начальных знаков плюса (+). Также удаляется первое повторение (0). Это будет выполнено ДО применения перевода Номеров Телефона.

В этом руководстве описывается настройка перевода номеров телефона.

Поля

Переводы номеров телефона хранятся в полях "Значение имени". Это позволяет настроить неограниченное количество правил для каждой функции.

Конфигурация хранится как строка JSON.

Обратите внимание, что обратные косая черта должны быть скрыты, например, \d+ становится \\d+.

{"Remove all characters but digits":"[1,17]->[^\\d]+","To internal number":"[7,17]->(\\d{7})(\\d{4})->$2"}

Имя поля технически не используется. Для того, чтобы быстро определить цель этого правила, необходимо добавить человеческую строку. Например, хорошие имена: Удалить все начальные нули, Добавить начальные нули и т. д.

Создание правил перевода

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

Хорошим началом является чтение документа RegExp из веб-документации MDN.

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

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

Предикат

Предикат используется для указания интервала, определяющего длину совпадающего числа.

Приведённый выше предикат указывает на то, что все числа, длина которых составляет от 7 до 11 символов (включая края и пробелы), совпадают.

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

Шаблон

Шаблон определяет формат номера, который необходимо сопоставить.

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

Селектор

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

Селектор — это последний шаг при построении числа. На основе вывода шаблона селектор строит новый номер.

Пример 1

В следующем примере показано, как перенести номер, полученный из контакт-центра в формате 0319175200, в швейцарский формат E164 +41 31 917 52 00.

В этом примере используются два правила перевода (1. и 2.)

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

Второе правило применяется к номерам, длина которых составляет ровно 10 символов (первоначально). 0319175200 совпадает, и поэтому применяется правило. Шаблон указывает, что номер должен начинаться с группы из одной цифры (\d{1}), затем с группой из двух цифр (\d{2}), затем с группой из трех цифр (\d{3}) и т. д.

Затем селектор обращается к группам шаблонов для определения новой строки числа. Это означает, что $2 ссылается на первую (\d{2}) и поэтому содержит 31.

Пример 2

В следующем примере показано, как перенести номер, полученный из Contact Center в формате +14693150217 в формат E164 США +1 469 315 0217.

В этом примере используются два правила перевода (1. и 2.)

  1. Длина этого номера составляет в точности 12 символов, поэтому применяется правило "Добавить пространства в номера в США".
  2. (\+1) говорит, что номер должен начинаться с +1. Если длина номера составляет 12 символов, но не начинается с +1, правило будет отменено и ничего не будет изменено.
  3. (\d{3}) говорит, что за +1 следует 3 цифры.
  4. (\d{3}) говорит, что за последними цифрами (3) должны следовать другие цифры (3).
  5. (\d{4}) говорит, что за последними цифрами (3) должны следовать 4 цифр.

Если какой-либо из этих параметров не совпадает, номер не будет изменен.

Таким образом, все правила применяются к "+14693150217". Поэтому номер будет изменен на "$1 $2 $3 $4":

  1. $1 относится к группе (\+1). Номер для отправки в службу голосовой связи в облаке службы выглядит как +1.
  2. $2 относится к первому из двух (\d{3}). Номер для отправки в службу голосовой связи в облаке службы выглядит как +1 469.
  3. $3 относится ко второй из двух (\d{3}). Номер для отправки в службу голосовой связи в облаке службы выглядит как +1 469 315.
  4. $4 относится к последней группе (\d{4}). Номер для отправки в службу голосовой связи в облаке службы выглядит как +1 469 315 0217.

Пространства в заменяющей части правила "$1 $2 $3 $4" используются напрямую. Таким образом, при использовании "$1-$2-$3-$4" номер будет переведен на: +1-469-315-0217

Также вам разрешено удалять группы: [12, 12]->(\+1)(\d{3})(\d{3})(\d{4})->$2 $3 $4 будет переведено в: 469 315 0217. [12, 12]->(\+1)(\d{3})(\d{3})(\d{4})-> $3 $4 будет переведено в: 315 0217.

Международный номер в США также можно преобразовать в местный номер, например: [12, 12]->(\+1)(\d{3})(\d{3})(\d{4})->($2) $3-$4.

Затем входящий номер "+14693150217" будет переведен на: (469) 315-0217.

Пример 3

В следующем примере показано, как перенести номер, полученный из Contact Center в формате +491515555531, в немецкий формат E164 +49 151 5555 531.

В этом примере используются два правила перевода (1. и 2.)

  1. Длина этого номера составляет в точности 13 символов, поэтому применяется правило "Добавить пробелы в номера на немецком языке".
  2. (\+49) говорит, что номер должен начинаться с +49. Если длина номера составляет 13 символов, но не начинается с +49, правило будет отменено и ничего не будет изменено.
  3. (\d{3}) говорит, что за +49 следует 3 цифры.
  4. (\d{4}) говорит, что за последними цифрами (3) должны следовать 4 цифр.
  5. (\d{3}) говорит, что за последними цифрами (4) должны следовать 3 цифр.

Если какой-либо из этих параметров не совпадает, номер не будет изменен.

Поэтому все правила применяются к "+491515555531". Поэтому номер будет изменен на "$1 $2 $3 $4":

  1. $1 относится к группе (\+49). Номер для отправки в службу голосовой связи в облаке службы выглядит как +49.
  2. $2 относится к первому из двух (\d{3}). Номер для отправки в службу голосовой связи в облаке службы выглядит как +49 151.
  3. $3 относится ко второй из двух (\d{4}). Номер для отправки в службу голосовой связи в облаке службы выглядит как +49 151 5555.
  4. $4 относится к последней группе (\d{3}). Номер для отправки в службу голосовой связи в облаке службы выглядит как +49 151 5555 531.

То же самое относится и к правилу. Чтобы выбрать, что использовать из номера, можно использовать замену $1 $2 $3 $4.

Другие примеры Translation Regex

Описание Регекс перевода
Удалить все символы, кроме цифр [1,17]->[^\d]+
Удалить все символы, кроме цифр и + [1,17]->[^+\d]+
Описание Регекс перевода
Удалить +1 [12,12]->(.{1})(\d{1})(\d{10})->$3
Удалить +1 [10,12]->(^\+1+)(\d+)->$2
Удалить +49 [10,15]->(^\+49+)(\d+)->$2
Удалить +49 [10,15]->(.{1})(\d{2})(\d{9})->$3
Удалить +41 [10,13]->(^\+41+)(\d+)->$2
Удалить +41 [10,13]->(.{1})(\d{2})(\d{9})->$3
Удалить +XX [10,14]->(^\++)(\d{2})(\d+)->$3
Описание Регекс перевода
Удалить + и заменить его нулями US E164 [10,12]->(.{1})(\d{1})(\d{10})-> 001 $3
Удалить +1 и заменить его нулями (US E)164 [10,12]->(^\+1+)(\d+)-> 001$2
Удалить + и заменить его нулями DE E164 [12,15]->(.{1})(\d{2})(\d{10})-> 0049 $3
Удалить +49 и заменить его нулями DE E164 [10,12]->(^\+49+)(\d+)-> 0049$2
Удалить + и заменить его нулями CH E164 [10,13]->(.{1})(\d{2})(\d{9})-> 0041 $3
Удалить +41 и заменить его нулями CH E164 [10,12]->(^\+41+)(\d+)-> 0041$2
Описание Регекс перевода
Номер в США с пробелом [12,17]->(\d{1})(\d{3})(\d{3})(\d{4})->+1 $2 $3 $4
Номер в США с пробелом [12,17]->(\+1)(\d{3})(\d{3})(\d{4})->$1 $2 $3 $4
Номер DE с пробелом [12,17]->(\d{2})(\d{3})(\d{4})(\d{3})->+49 $2 $3 $4
Номер DE с пробелом [12,17]->(\+49)(\d{3})(\d{4})(\d{3})->$1 $2 $3 $4
Номер CH с пробелом [12,17]->(\d{2})(\d{2})(\d{3})(\d{2})(\d{2})->+41 $2 $3 $4
Номер CH с пробелом [12,17]->(\+41)(\d{2})(\d{3})(\d{2})(\d{2})->$1 $2 $3 $4

Конфигурация страницы голосового вызова

Настройка страницы записи VoiceCall

Страница записи VoiceCall поставляется предварительно настроенной по умолчанию с макетом столбца 3 и следующими компонентами:

  • Действия и рекомендации
  • Примечания к вызову
  • Сведения о вызове
  • Записи

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

Отображение компонента причины поствызова

Компонент причины поствызова должен отображаться во время вызова и во время поствызова.

Добавьте компонент причины поствызова Cisco на страницу записи VoiceCall.

  1. Перетащите Cisco Wrap-Up Reason Веб-компонент Lightning из пользовательской области списка компонентов Lightning на страницу записи VoiceCall.
  2. Щелкнуть Save.
  3. Щелкнуть Activate.
  4. Щелкнуть Assign as Org Default.
  5. Щелкнуть Save.
  6. Щелкнуть Save еще раз, затем щелкните Back arrow , чтобы вернуться на страницу.

Сообщение об Cisco Wrap-Up Reason компонент будет автоматически отображаться во время вызова и во время завершения:

При добавлении на страницу компонент причины поствызова Cisco отображается для каждого вызова, также если в Cisco Contact Center не настроена поствызова.

Отображение проигрывателя записей вызовов

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

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

  1. Перетащите веб-компонент Lightning проигрывателя записей вызовов на страницу записи голосового вызова
  2. Щелкнуть Save.
  3. Щелкнуть Activate.
  4. Щелкнуть Assign as Org Default.
  5. Щелкнуть Save.
  6. Щелкнуть Save и снова щелкните стрелку "Назад", чтобы вернуться на страницу.

Администраторы Webex

Конфигурация потока

Всплывающее окно

Узел всплывающего окна доступен в потоке Webex Contact Center. Его можно использовать для инициирования всплывающего окна в облаке службы голосовой связи или в отдельном окне.

Дополнительную информацию об этой функции можно найти в документации Flow Designer .

Всплывающее окно в отдельном окне

Чтобы открыть всплывающее окно в отдельном окне, в узле "Всплывающее окно" должен быть предоставлен абсолютный URL-адрес. QueryParameters будут добавлены в качестве параметров поиска в URL.

Поддерживаются следующие режимы:

  • Новая вкладка браузера: всегда открывается новая вкладка браузера.
  • Вкладка "Существующий браузер" – на первом всплывающем окне вкладки "Существующий браузер" открыта новая вкладка браузера. Эта вкладка будет выделена для последующих всплывающих окон Существующих вкладок браузера, и URL будет обновлен на этой конкретной вкладке браузера.
  • Внутри рабочего стола – обрабатывается так же, как и Новая вкладка браузера.

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

Была ли статья полезной?
Была ли статья полезной?