Поділитися через


Інтеграція Twilio Flex з Dynamics 365 Аналітика розмов (підготовча версія)

[Ця стаття стосується інструкції до попередньої версії, і її буде змінено.]

Ця інтеграція дає змогу вашим продавцям здійснювати та отримувати дзвінки Twilio Flex із Dynamics 365 і отримувати транскрипцію в реальному часі під час дзвінка та згенеровану штучним інтелектом аналітику викликів після дзвінка.

Важливо

  • Це функція попереднього перегляду.
  • Підготовчі функції призначені для невиробничого використання. Їх можливості можуть бути обмеженими. Ці функції регулюються додатковими умовами використання та доступні до офіційного випуску, щоб клієнти могли отримати ранній доступ і залишити відгук.

вимоги

  • Обліковий запис Twilio

  • Обліковий запис Twilio Flex – перейдіть за цим пов’язаним додатковим посиланням про те, як налаштувати обліковий запис Flex

  • Середовище Microsoft Dynamics продажів 365 з ліцензією Sales Premium або Sales Enterprise, а також привілеями системного адміністратора

  • Аналітика розмов встановлена та налаштована – Дізнатися більше

  • Інфраструктура інтеграції каналів Dynamics 365 встановлено 1.0. Дізнатися більше

  • Налаштування локального JS-середовища Node

  • Програма create-flex-plugin

Крок 1: Налаштуйте Twilio Flex як постачальника каналів

У Dynamics 365 Channel Integration Framework Інфраструктура інтеграції каналів Dynamics 365 створіть постачальника каналів для Twilio Flex. Дивіться скріншот нижче як приклад:

Скріншот Twilio додано як постачальника каналів.

Введіть такі значення::

  • URL-адреса каналу:https://flex.twilio.com/agent-desktop

  • Увімкнути вихідний зв’язок: Так

  • Версія API: 1.0

  • Порядок каналів: 1

  • Довірений домен:https://flex.twilio.com/

  • Виберіть Єдиний інтерфейс програми для Channel: Центр збуту (або будь-якої іншої програми, для якої ви хотіли б увімкнути інтеграцію)

  • Виберіть ролі безпеки для каналу: Додайте ролі, які будуть використовувати Twilio Flex. Наприклад, Salesperson, Sales Manager і так on.To вбудувати Twilio Flex як iframe всередині Dynamics 365, додати URL-адресу Dynamics 365 org до списку дозволених URL-адрес. Для отримання додаткової інформації дивіться цю статтю.

Крок 2: Встановіть конектор SIPREC і спрямуйте виклики на Dynamics 365

  1. Встановіть додатковий з’єднувач SIPREC.

  2. Відкрийте налаштування Центру адміністрування Twilio та налаштуйте його так, щоб відгалуження медіа перетворилося на рекордер Dynamics 365, як показано на наступному знімку екрана:

    Скріншот налаштувань адмін центру Twilio.

    Важливо звернути увагу на наступні поля:

    • Унікальне ім’я: Вкажіть ім’я та запишіть його. Вам доведеться використовувати його на наступних кроках

    • Сервер запису сеансів: Вкажіть URL-адресу сервера запису медіа Dynamics 365. Список записувачів і підтримуваних регіонів наведено в статті Кінцеві точки та підтримувані регіони реєстратора.

      • Якщо ви хочете розгалужити медіа до найближчого диктофона, використовуйте наступну URL: sip:SRS@media.recording.dynamics.com:5061; secure=true

      • Поля облікових даних можуть залишатися порожніми. Аутентифікація виконується за допомогою сертифіката про налаштування TLS між Twilio та Dynamics.

Крок 3: Налаштуйте потік викликів для розгалуження медіа на Dynamics 365

  1. Перейдіть до розділу Studio Flows у Консолі та виберіть Voice IVR flow.

  2. З правого боку, під розділом «Голос» у бібліотеці віджетів, додайте віджет «Вилковий потік »:

    Скріншот віджета Fork Stream.

  3. Тепер налаштуйте віджет для розгалуження потоку за допомогою конектора SIPREC, який ви визначили раніше:

    Скріншот конфігурації віджета Fork Stream.

  4. Введіть наведені нижче значення.

    - Дія потоку: Початок

    • Тип потоку: Siprec
    • Ім’я з’єднувача: ім’я, яке ви дали з’єднувачу SIPREC. У нашому прикладі це SipRec1.
    • Треки: Обидва треки
    • Параметри потоку:
      • Role: inbound (У нашому прикладі ми збираємося записувати вхідні дзвінки)

      • CallerDisplayName: {{trigger.call.From}}

      • CalleeDisplayName: {{trigger.call.To}}

  5. У вкладці «Переходи » налаштуйте Fork Stream так, щоб він був перед відправкою дзвінка оператору:

    Скріншот вкладки Twilio Transition.

  6. Збережіть ланцюжок і опублікуйте.

Крок 4: Налаштуйте номер телефону Twilio

Вам потрібно вказати номер телефону Twilio на ваш щойно створений Studio Flow.

  1. Виберіть номер, який у вас є, або придбайте новий номер на консолі Twilio Phone Numbers.

  2. Відкрийте номер телефону, вибравши його, а потім прокрутіть униз до розділу «Голос » на сторінці.

  3. Виберіть ланцюжок, який ви визначили раніше в полях «Вхід дзвінка », як показано на наступному знімку екрана:

    Скріншот дзвінка Twilio приходить у полях.

Крок 5: Налаштуйте Dynamics 365 для інтеграції

Давайте налаштуємо Twilio як постачальника дзвінків і налаштуємо політику запису, щоб визначити, хто може записувати дзвінки та іншу інформацію, яка використовується для аналізу розмов.

  1. У програмі Центр збуту перейдіть в область «Змінити» та виберіть «Параметри статистики продажу».

  2. ВиберітьАналітика розмов.

    Скріншот сторінки налаштувань Аналітика розмов

  3. Виберіть Twilio в розділі Оператори дзвінків і вкажіть SID облікового запису Twilio.

  4. Збережіть зміни.

  5. Налаштуйте політику запису за допомогою оператора дзвінків Twilio.

    1. Виберіть пункт Створити політику записування та налаштуйте політику. Докладніше.

    2. Виберіть Створити , а потім опублікуйте налаштування.

Крок 6: Підготуйте плагін Flex для інтеграції досвіду в реальному часі

Flex — це проект на React, і налаштування, які ви вносите в інтерфейс користувача, створюються як компоненти плагінів.

Підготовка середовища Node та налаштування порожнього плагіна Flex виходять за рамки цієї документації. Зверніться до документації Twilio, щоб отримати покрокову інструкцію зі створення вашого першого плагіна Flex.

Створіть свіжий плагін, який готовий для того, щоб ви могли додати код налаштування для Dynamics.

На цьому етапі JS-файл вашого плагіна буде виглядати так:

Скріншот файлу plugin.js.

Додайте до свого плагіна бібліотеку клієнта Microsoft CIF. Клієнтська бібліотека має завантажуватися асинхронно під час запуску Flex, тому додайте наступний код до функції ініціалізації Flex.

import React from 'react';
import \* as Flex from '@twilio/flex-ui';
import { FlexPlugin } from '@twilio/flex-plugin';
import reducers, { namespace } from './states';
const PLUGIN\_NAME = 'SamplePlugin';
export interface CallStartedEvent {
  callId: string;
  startTime: Date;
  isIncomingCall: boolean;
  contactNumber: string;
  contactName: string;
}

export interface CallEndedEvent {
  callId: string;
  callDurationInSeconds: number;
  callTerminationReason: string; // \['success', 'error'\]
  callEndTime: Date;
  isCallStarted: boolean;
}

export default class SamplePlugin extends FlexPlugin {
  constructor() {
    super(PLUGIN\_NAME);
  }
  /\*\*
   \* This code is run when your plugin is being started
   \* Use this to modify any UI components or attach to the actions framework
   \*
   \* @param flex { typeof Flex }
   \* @param manager { Flex.Manager }
   \*/
  async init(flex: typeof Flex, manager: Flex.Manager): Promise<void> {
    this.registerReducers(manager);
    this.loadCIF();
    flex.Actions.addListener('afterAcceptTask', (payload) => {
      const callStartedEvent : CallStartedEvent = {
        callId: payload.task.\_task.attributes.call\_sid,
        startTime: new Date(),
        isIncomingCall: true,
        contactName: payload.task.\_task.attributes.caller,
        contactNumber: payload.task.\_task.attributes.caller
      };
      // @ts-ignore
      Microsoft.CIFramework.raiseEvent('WIDGET\_CALL\_STARTED', callStartedEvent);
    });

    flex.Actions.addListener('afterCompleteTask', (payload) => {
      // @ts-ignore
      Microsoft.CIFramework.raiseEvent('WIDGET\_CALL\_ENDED', {
        callId: payload.task.\_task.attributes.call\_sid,
        callTerminationReason: 'success',
        callEndTime: new Date(),
        isCallStarted: true
      });
      const callEndedEvent : CallEndedEvent = {
        callId: payload.task.\_task.attributes.call\_sid,
        callEndTime: new Date(),
        callTerminationReason: 'success',
        isCallStarted: true
      };
 

      // @ts-ignore
      Microsoft.CIFramework.raiseEvent('WIDGET\_CALL\_ENDED', callEndedEvent);
    });

    const options: Flex.ContentFragmentProps = { sortOrder: -1 };
    flex.AgentDesktopView.Panel1.Content.add(<div key="SamplePlugin-component" >Hello Partner!</div>, options);
  }

  loadCIF = () => {
    const script = document.createElement("script");
    script.src = \`${window.location.ancestorOrigins\[0\]}/webresources/Widget/msdyn\_ciLibrary.js\`;
    script.setAttribute('data-crmurl', window.location.ancestorOrigins\[0\]);
    script.setAttribute('data-cifid', 'CIFMainLibrary');
    document.body.appendChild(script);
  }

  /\*\*

   \* Registers the plugin reducers
   \*
   \* @param manager { Flex.Manager }
   \*/
  private registerReducers(manager: Flex.Manager) {
    if (!manager.store.addReducer) {
      // eslint-disable-next-line
      console.error(\`You need FlexUI > 1.9.0 to use built-in redux; you are currently on ${Flex.VERSION}\`);
      return;
    }
    manager.store.addReducer(namespace, reducers);
  }
}

Опублікуйте плагін.
Тепер у нас є плагін Flex, який готовий для тестування!

крок 7: Інтеграція з тестовими Dynamics 365 Аналітика розмов та Flex

Увійдіть у програму Центр збуту, виберіть піктограму дзвінка . Ви побачите Twilio Flex, вбудований у праву панель.

Скріншот вбудованого автообдзвону Twilio у додатку Центр збуту.

Переконайтеся, що ви встановили свій статус як Доступний у Twilio, і зателефонуйте на номер телефону Twilio, який ви налаштували на Крок 4: Налаштуйте номер телефону Twilio.

Скріншот сповіщення про дзвінок на вбудований автообдзвін

Відповівши на дзвінок і почнувши запис, перейдіть на вкладку « Стенограма », щоб переглянути транскрипцію в реальному часі, а потім перегляньте аналітику викликів на сторінці «Зведення виклику» після завершення дзвінка.

Перегляньте та зрозумійте сторінку зведення виклику