- Главная
- /
- Статья
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, чтобы позволить операторам совершать и принимать вызовы.
- Перейдите к меню "Настройка Salesforce", найдите и выберите "Настройка телефонии партнера" и переключите кнопку на параметр "Включить голосовую связь в облаке услуг".
Включить Omni-Channel
Если omni-канал уже включен в вашей организации, пропустите этот шаг.
- В разделе настройки введите Omni-Channel Settings в поле быстрого поиска, затем выберите Omni-Channel Settings.


- Выбрать Enable Omni-Channel.
- Щелкнуть 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 по умолчанию. |
Интегрировать
Установка
Прежде чем продолжить установку, см. раздел Предварительные требования и ограничения, чтобы узнать о предварительных требованиях и ограничениях облака Salesforce Service Cloud.
Установка и настройка Webex Contact Center для голосовой связи в облаке
При получении лицензии Service Cloud Voice для партнерской телефонии в меню настройки отображается страница Настройка партнерской телефонии.
Дополнительную информацию можно найти в официальном справочнике Salesforce (прямая ссылка).
| 1 |
В разделе настройки введите
|
| 2 |
Включить Turn on Voice with Partner Telephony. Сообщение об Partner Telephony Contact Centers появится на странице Setup меню.
При планировании развертывания пакета в песочнице Salesforce замените
|
Установить пакет
Установка пакета.
| 1 |
Чтобы начать установку, откройте предоставленную ссылку на пакет. |
| 2 |
Войдите в организацию Salesforce, в которой должен быть установлен пакет. |
| 3 |
В мастере установки выберите параметр безопасности "Установить только для администраторов" (1) и щелкните Установить (2). Определите, какие пользователи получают определенные полномочия для объектов и компонентов, которые поставляются с пакетом Webex Contact Center для голосовой связи в облаке служб. Кроме того, предоставьте им эти полномочия; наборы полномочий, которые поставляются с пакетом Webex Contact Center для Service Cloud Voice, помогают этому процессу. В мастере установки пакетов появится экран приветствия: Пакет установки не доступен непосредственно через Salesforce AppExchange. Клиенты должны использовать кнопку "Получить сейчас" в списке AppExchange, с помощью которой открывается форма контакта для запроса ссылки на установку и активации Cisco. |
| 4 |
Предоставьте как минимум одному пользователю следующие наборы полномочий, чтобы можно было создать контакт-центр:
|
| 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 для голосовой связи в облаке служб.
|
| 12 |
Также можно щелкнуть Настройка | Пользователи | Пользователи.. |
| 13 |
Найдите и выберите пользователя. |
| 14 |
Прокрутите страницу вниз до раздела Managed Packages. |
| 15 |
Щелкнуть Assign Licenses. |
| 16 |
Выбрать Webex Contact Center for Service Cloud Voice из списка. |
| 17 |
Щелкнуть Add. |
| 18 |
Создайте Состояния доступности, чтобы определить, какие каналы службы назначены различным состояниям. Операторы могут входить в омни-канал с различными состояниями в зависимости от типа работы, которую они имеют право получать. |
| 19 |
В разделе настройки введите
|
| 20 |
Щелкнуть New. Создайте хотя бы одно состояние для "Онлайн" и одно для "Занято".
|
Назначить состояния доступности операторам
| 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-адрес для добавления:
|
| 9 |
Для использования оператором Service Cloud Voice в приложении консоли службы Lightning требуется элемент сервисной программы 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 и щелкните кнопку предпросмотра для
Пример. 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 |
Для отображения элементов управления записью во время вызовов операторам необходимо
Чтобы назначить его, добавьте в набор полномочий, созданный на шаге Состояния доступности.
|
Конфигурация
Контакт-центр
Файл определения контакт-центра указывает набор полей и значений, которые используются для определения контакт-центра в Salesforce для определенной системы CTI. Salesforce использует файлы определения контакт-центра для поддержки интеграции с несколькими поставщиками системы CTI.
Дополнительную информацию можно найти в официальной документации Salesforce (прямая ссылка).
Импорт контакт-центра
Скачайте последнюю версию Contact Center здесь.
Модернизация из бета-версии. В этом руководстве описана чистая установка выпуска общей доступности интеграции Webex Contact Center для голосовой связи в облаке службы Salesforce.
При модернизации из бета-версии интеграции не используйте существующую запись партнерского контакт-центра повторно. Вместо этого:
- Импортируйте XML-файл контакт-центра партнера, включенный в выпуск GA.
- Создайте новую запись контакт-центра партнера, используя импортированный XML.
- Обновите конфигурацию, чтобы использовать вновь созданный партнерский контакт-центр.
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 |
Описание |
| 5 |
Щелкнуть Open. Файл импортирован.
|
| 6 |
Проверьте, отображается ли ваш контакт-центр в представлении списка контакт-центров.
|
Настройка контакт-центра
| 1 |
В разделе настройки введите Partner Telephony Contact Centers в Quick Find , затем выберите Partner Telephony Contact Centers. | ||||||||||||||||||||||||||||||
| 2 |
Щелкните ранее импортированный контакт-центр. | ||||||||||||||||||||||||||||||
| 3 |
Щелкнуть Edit.
| ||||||||||||||||||||||||||||||
| 4 |
В нижней части Contact Center страницу, щелкните Add кнопка под Contact Center Users . | ||||||||||||||||||||||||||||||
| 5 |
Щелкните + рядом с пользователями, имеющими доступ к открытому контакт-центру. Только пользователи, имеющие |
Настройка
Внешнее клиентское приложение для интеграции 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, выполните приведенные ниже действия.
- от Setup, перейдите в раздел Apps | External Client Apps | External Client App Manager.
- Щелкните New External Client App.
- 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)

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

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

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

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

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

- Щелкнуть 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 щелкните "Настройка" или "Добавить соединитель".
ВАЖНО! ОБЕСПЕЧЕНИЕ БЕЗОПАСНОСТИ ПУТЕМ ПЕРИОДИЧЕСКОГО ВРАЩЕНИЯ СЕКРЕТОВ Чтобы обеспечить безопасность интеграций, убедитесь, что ваш закрытый ключ и сертификат регулярно вращаются. Обновите закрытый ключ в соединителе Contact Center Connector в Webex Hub и сертификат в внешнем клиентском приложении в Salesforce. Подсказка по устранению неисправностей После нажатия кнопки "Готово" соединитель не сохраняет:
|
Основной поток Webex Contact Center
| Переменная потока | Описание |
|---|---|
| Переменная потока для идентификатора записи голосового вызова | Уникальный идентификатор для идентификации вызова. Требуется для создания записи голосового вызова. Формат: wxcc_<Идентификатор взаимодействия> Пример: wxcc_fc4ec7d8-4c91-49aa-b764-081fbba344a8
|
| Локальная переменная для времени начала вызова |
Используется для создания записи голосового вызова и обновления голосового вызова.
|
| Локальная переменная для имени/идентификатора очереди |
Возвращено пользователем Execute Omni Flow, используемым для маршрутизации вызовов. Эта переменная требуется только при использовании Execute Omni Flow
|
| Локальная переменная для имени/идентификатора оператора |
Возвращено пользователем Execute Omni Flow, используемым для маршрутизации вызовов. Эта переменная требуется только при использовании Execute Omni Flow
|
Обзор основного потока

- Создать ключ вызова поставщика
- Задать время начала вызова
- Запрос HTTP: Создать запись голосового вызова
- Оценка ответа HTTP для создания записи голосового вызова
- Ошибка обработки параметра "Создать запись голосового вызова"
- Запрос HTTP: Выполнить Omni Flow
- Вычисление ответа HTTP для выполнения Omni Flow
- Ошибка обработки Execute Omni Flow
- Продолжить с помощью маршрутизации вызовов
| Поток | Описание |
|---|---|
| Создать ключ вызова поставщика |
Каждый вызов, обработанный в службе Service Cloud Voice, создает запись голосового вызова в Salesforce и требует уникального идентификатора, называемого ключом вызова поставщика. Для записей голосовых вызовов, созданных в Webex Contact Center, ключ вызова поставщика должен быть определен в потоке WxCC, а затем передан оператору с помощью переменной потока. Значение vendorCallKey должно соответствовать следующим правилам:
|
| Задать время начала вызова |
Метка времени UTC времени начала вызова. Эта метка времени используется для создания записи голосового вызова и обновления записи голосового вызова, если вызывающий абонент повесит трубку перед маршрутизацией на оператора.
|
| Запрос HTTP: Создать запись голосового вызова |
Этот шаг является обязательным для каждого вызова. После создания записи голосового вызова идентификатор записи голосового вызова должен передаваться вместе с вызовом оператору в переменной вместе с ключом вызова поставщика. Настройте используемую переменную в конфигурации контакт-центра в службе голосовой связи облака. |
| Настройки HTTP-запросов |
|
Запрос 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}} (должно быть задано сразу после принятия вызова в сценарии) |
| атрибуты вызова |
Представляет дополнительные стандартные и пользовательские поля в записи голосового вызова, где каждая пара ключ-значение соответствует стандартному или пользовательскому полю и его значениям. Пример.
|
Параметры анализа
- Тип контента: 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 (пара ключ-значение). Пример.
|
Параметры анализа
Очередь
- Тип контента: 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)
- Отправить обновление голосового вызова, чтобы обновить время начала и завершения записи голосового вызова и изменить состояние с "Новый" на "Завершенный"

- PhoneContactEnded — это событие запускается при отключении вызова в режиме реального времени и удалении всех участников.
- Запрос HTTP: Очистить маршрутизацию
- Запрос 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 для правильного отображения. |
Параметры анализа
Нет.
Ссылки
- Создание закрытого ключа и самоподписанного цифрового сертификата
- Настройка подключенного приложения для соединителя Webex Contact Center Salesforce
- Настройка соединителей интеграции для Webex Contact Center – Salesforce
- Руководство по настройке и администрированию Cisco Webex Contact Center > Конструктор потоков
- REST API интеграции телефонии
Перевод языка
(Необязательно) Включить рабочий стол перевода
Эта настройка применима только в случае использования настроек языка перевода.
| 1 |
Перейдите к меню "Настройка" → Перевод Workbench → Настройки языка перевода. |
| 2 |
Щелкнуть Enable чтобы выбрать язык перевода.
|
(Необязательно) Включить языки, используемые только для платформы
Эта настройка применима только к языкам, отличным от EN-US.
| 1 |
Перейдите к меню "Настройка" → "Настройки компании" → "Настройки языка". |
| 2 |
Выберите необходимые языки. |
| 3 |
Установите следующие флажки:
|
| 4 |
Сохраните внесенные изменения.
|
Активируйте язык и выберите пользователя (задачу)
| 1 |
Перейдите к меню "Настройка" → Перевод Workbench → Настройки языка перевода. |
| 2 |
Выберите язык и выберите пользователя, который будет его переводить. |
| 3 |
Сохраните внесенные изменения.
|
Настройки нескольких языков
Перевод пользовательских меток
| 1 |
Перейдите к меню "Настройка" → "Пользовательские метки". |
| 2 |
Выберите имя пользовательской метки, которую необходимо открыть.
|
| 3 |
В соответствующем списке переводов щелкните |
| 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"
}
Ответ (успешно)
{
"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 использует этот порядок приоритета для маршрутизации вызовов:
- Использует настройки Omni-Channel Flow и Fallback Queue для канала телефона, соответствующего набранному номеру. Приоритет отдается потоку. В случае сбоя процесса используется резервная очередь.
- Использует параметры 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.)
- Длина этого номера составляет в точности 12 символов, поэтому применяется правило "Добавить пространства в номера в США".
- (\+1) говорит, что номер должен начинаться с +1. Если длина номера составляет 12 символов, но не начинается с +1, правило будет отменено и ничего не будет изменено.
- (\d{3}) говорит, что за +1 следует 3 цифры.
- (\d{3}) говорит, что за последними цифрами (3) должны следовать другие цифры (3).
- (\d{4}) говорит, что за последними цифрами (3) должны следовать 4 цифр.
Если какой-либо из этих параметров не совпадает, номер не будет изменен.
Таким образом, все правила применяются к "+14693150217". Поэтому номер будет изменен на "$1 $2 $3 $4":
- $1 относится к группе (\+1). Номер для отправки в службу голосовой связи в облаке службы выглядит как +1.
- $2 относится к первому из двух (\d{3}). Номер для отправки в службу голосовой связи в облаке службы выглядит как +1 469.
- $3 относится ко второй из двух (\d{3}). Номер для отправки в службу голосовой связи в облаке службы выглядит как +1 469 315.
- $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.)
- Длина этого номера составляет в точности 13 символов, поэтому применяется правило "Добавить пробелы в номера на немецком языке".
- (\+49) говорит, что номер должен начинаться с +49. Если длина номера составляет 13 символов, но не начинается с +49, правило будет отменено и ничего не будет изменено.
- (\d{3}) говорит, что за +49 следует 3 цифры.
- (\d{4}) говорит, что за последними цифрами (3) должны следовать 4 цифр.
- (\d{3}) говорит, что за последними цифрами (4) должны следовать 3 цифр.
Если какой-либо из этих параметров не совпадает, номер не будет изменен.
Поэтому все правила применяются к "+491515555531". Поэтому номер будет изменен на "$1 $2 $3 $4":
- $1 относится к группе (\+49). Номер для отправки в службу голосовой связи в облаке службы выглядит как +49.
- $2 относится к первому из двух (\d{3}). Номер для отправки в службу голосовой связи в облаке службы выглядит как +49 151.
- $3 относится ко второй из двух (\d{4}). Номер для отправки в службу голосовой связи в облаке службы выглядит как +49 151 5555.
- $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.
- Перетащите Cisco Wrap-Up Reason Веб-компонент Lightning из пользовательской области списка компонентов Lightning на страницу записи VoiceCall.
- Щелкнуть Save.
- Щелкнуть Activate.
- Щелкнуть Assign as Org Default.
- Щелкнуть Save.
- Щелкнуть Save еще раз, затем щелкните Back arrow , чтобы вернуться на страницу.
Сообщение об Cisco Wrap-Up Reason компонент будет автоматически отображаться во время вызова и во время завершения:
При добавлении на страницу компонент причины поствызова Cisco отображается для каждого вызова, также если в Cisco Contact Center не настроена поствызова.
Отображение проигрывателя записей вызовов
Если ссылка на запись сохранена для соответствующего голосового вызова, будет отображена проигрыватель записей вызовов.
Чтобы добавить компонент проигрывателя записей вызовов на страницу записи голосовых вызовов, выполните следующие действия.
- Перетащите веб-компонент Lightning проигрывателя записей вызовов на страницу записи голосового вызова
- Щелкнуть Save.
- Щелкнуть Activate.
- Щелкнуть Assign as Org Default.
- Щелкнуть Save.
- Щелкнуть Save и снова щелкните стрелку "Назад", чтобы вернуться на страницу.
Администраторы Webex
Конфигурация потока
Всплывающее окно
Узел всплывающего окна доступен в потоке Webex Contact Center. Его можно использовать для инициирования всплывающего окна в облаке службы голосовой связи или в отдельном окне.
Дополнительную информацию об этой функции можно найти в документации Flow Designer .
Всплывающее окно в отдельном окне
Чтобы открыть всплывающее окно в отдельном окне, в узле "Всплывающее окно" должен быть предоставлен абсолютный URL-адрес. QueryParameters будут добавлены в качестве параметров поиска в URL.
Поддерживаются следующие режимы:
- Новая вкладка браузера: всегда открывается новая вкладка браузера.
- Вкладка "Существующий браузер" – на первом всплывающем окне вкладки "Существующий браузер" открыта новая вкладка браузера. Эта вкладка будет выделена для последующих всплывающих окон Существующих вкладок браузера, и URL будет обновлен на этой конкретной вкладке браузера.
- Внутри рабочего стола – обрабатывается так же, как и Новая вкладка браузера.
Открытая в данный момент страница может предотвратить перенаправление. В этом случае в новой вкладке браузера откроется всплывающее окно Существующей вкладки браузера.





