Udostępnij za pośrednictwem


Integracja Twilio Flex z analizą konwersacji Dynamics 365 (wersja zapoznawcza)

[Ten artykuł stanowi wstępną wersję dokumentacji i może ulec zmianie.]

Ta integracja umożliwia sprzedawcom nawiązywanie i odbieranie połączeń Twilio Flex z Dynamics 365 oraz uzyskiwanie transkrypcji w czasie rzeczywistym podczas rozmowy i generowanych przez sztuczną inteligencję spostrzeżeń po rozmowie.

Ważne

  • Jest to funkcja w wersji zapoznawczej.
  • Funkcje w wersji zapoznawczej nie są przeznaczone do użytku w środowiskach produkcyjnych i mogą mieć ograniczoną funkcjonalność. Te funkcje podlegają dodatkowym warunkom i są udostępniane przed oficjalnym wydaniem, dzięki czemu klienci mogą szybciej uzyskać do nich dostęp i przekazać opinie na ich temat.

Wymagania wstępne

  • Konto Twilio

  • Konto Twilio Flex – zobacz link, aby uzyskać więcej informacji o tym, jak skonfigurować konto Flex

  • Środowisko Microsoft Dynamics 365 Sales z licencją Sales Premium lub Sales Enterprise wraz z uprawnieniami administratora systemu

  • Zainstalowana i skonfigurowana Analiza konwersacji – więcej informacji

  • Zainstalowano Dynamics 365 Channel Integration Framework 1.0. Dowiedz się więcej

  • Konfiguracja lokalnego środowiska Node JS

  • Aplikacja create-flex-plugin

Krok 1: Skonfiguruj Twilio Flex jako dostawcę kanałów

W Narzędzia integracji kanału usługi Dynamics 365 utwórz dostawcę kanałów dla Twilio Flex. Zobacz poniższy zrzut ekranu jako przykład:

Zrzut ekranu z Twilio dodanego jako dostawca kanałów.

Wprowadź następujące wartości::

  • Adres URL kanału:https://flex.twilio.com/agent-desktop

  • Włącz komunikację wychodzącą: Tak

  • Wersja API: 1.0

  • Kolejność kanałów: 1

  • Zaufana domena:https://flex.twilio.com/

  • Wybierz zunifikowany interfejs kanału: Centrum sprzedaży (lub dowolną inną aplikację, dla której chcesz włączyć integrację)

  • Wybierz role zabezpieczeń dla kanału: Dodaj role, które będą korzystać z Twilio Flex. Aby osadzić Twilio Flex jako iframe w Dynamics 365, dodaj adres URL Dynamics 365 org do listy dozwolonych adresów URL. Aby uzyskać więcej informacji, zobacz ten artykuł.

Krok 2: Zainstalowanie łącznika SIPREC i kierowanie połączeń do Dynamics 365

  1. Zainstaluj łącznik SIPREC.

  2. Otwórz ustawienia centrum administracyjnego Twilio i skonfiguruj je tak, aby rozwidlały media do rejestratora Dynamics 365, jak pokazano na poniższym zrzucie ekranu:

    Zrzut ekranu ustawień centrum administracyjnego Twilio.

    Należy zwrócić uwagę na następujące pola:

    • Unikalna nazwa: Określ nazwę i zanotuj ją. Będziesz musiał go użyć w następnych krokach

    • Serwer nagrywania sesji: Określ adres URL serwera nagrywania multimediów Dynamics 365. Lista obsługiwanych rejestratorów i regionów znajduje się w Obsługiwane punkty końcowe rejestratora i regiony.

      • Jeśli chcesz przekierować multimedia do najbliższego rejestratora, użyj następującego adresu URL: sip:SRS@media.recording.dynamics.com:5061;secure=true

      • Pola poświadczeń mogą pozostać puste. Uwierzytelnianie odbywa się za pomocą certyfikatu w konfiguracji TLS między Twilio i Dynamics.

Krok 3: Konfiguracja przepływu połączeń w celu rozwidlenia mediów do Dynamics 365

  1. Przejdź do sekcji przepływy Studio Flows w konsoli i wybierz przepływ Voice IVR.

  2. Po prawej stronie, w sekcji Głos w bibliotece widżetów, dodaj widżet rozwidlenie streamu:

    Zrzut ekranu widżetu rozwidlenia streamu.

  3. Teraz skonfiguruj widżet, aby rozwidlał strumień przy użyciu łącznika SIPREC, który zdefiniowałeś wcześniej:

    Zrzut ekranu konfiguracji widżetu rozwidlenie streamu.

  4. Wprowadź następujące wartości:

    - Działanie na streamie: Start

    • Typ strumienia: Siprec
    • Nazwa łącznika: Nazwa nadana łącznikowi SIPREC. W naszym przykładzie jest to SipRec1.
    • Ścieżki: Obie ścieżki
    • Parametry strumienia:
      • Rola: przychodzące (w naszym przykładzie będziemy nagrywać połączenia przychodzące)

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

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

  5. W zakładce Przejścia skonfiguruj Rozwidlenie streamu tak, aby znajdował się przed wysłaniem połączenia do agenta:

    Zrzut ekranu zakładki Przejście Twilio.

  6. Zapisz przepływ i opublikuj.

Krok 4: Konfiguracja numeru telefonu Twilio

Musisz wskazać numer telefonu Twilio do nowo utworzonego przepływu Studio Flow.

  1. Wybierz numer, który posiadasz – lub kup nowy numer – w konsoli Numery telefonów Twilio.

  2. Otwórz numer telefonu, wybierając go, a następnie przewiń w dół do sekcji Głos na stronie.

  3. Wybierz przepływ zdefiniowany wcześniej w polach Przychodzi połączenie, jak pokazano na poniższym zrzucie ekranu:

    Zrzut ekranu z pól Twilio przychodzi połączenie.

Krok 5: Konfiguracja Dynamics 365 na potrzeby integracji

Skonfigurujmy Twilio jako dostawcę połączeń i skonfigurujmy zasady nagrywania, aby określić, kto może nagrywać rozmowy, a także inne informacje wykorzystywane do wglądu w rozmowę.

  1. W aplikacji Centrum sprzedaży przejdź do obszaru Zmień i wybierz Ustawienia Sales Insights.

  2. Wybierz Analiza konwersacji.

    Zrzut ekranu strony ustawień analizy konwersacji

  3. Wybierz Twilio w sekcji Dostawcy połączeń i określ identyfikator konta SID Twilio.

  4. Zapisz zmiany.

  5. Skonfiguruj zasady nagrywania przy użyciu dostawcy połączeń Twilio.

    1. Wybierz Utwórz zasady nagrywania i skonfiguruj te zasady. Więcej informacji.

    2. Wybierz opcję Utwórz, a następnie opublikuj ustawienia.

Krok 6: Przygotowanie wtyczki Flex do integracji doświadczenia w czasie rzeczywistym

Flex jest projektem React, a modyfikacje wprowadzane do interfejsu użytkownika są tworzone jako komponenty wtyczek.

Przygotowanie środowiska Node i konfiguracja pustej wtyczki Flex wykraczają poza zakres tej dokumentacji. Zapoznaj się z dokumentacją Twilio, aby zapoznać się z samouczkiem krok po kroku dotyczącym tworzenia pierwszej wtyczki Flex.

Utwórz nową wtyczkę, która jest gotowa do dodania kodu dostosowującego dla Dynamics.

W tym momencie plik JS wtyczki będzie wyglądał następująco:

Zrzut ekranu pliku plugin.js.

Dodaj bibliotekę Microsoft CIF Client do swojej wtyczki. Biblioteka kliencka musi być ładowana asynchronicznie podczas uruchamiania Flex, więc dodaj następujący kod do funkcji inicjującej 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);
  }
}

Opublikuj wtyczkę.
Mamy teraz wtyczkę Flex, która jest gotowa do przetestowania!

Krok 7: Przetestowanie analizy konwersacji Dynamics 365 i integracji Flex

Zaloguj się do aplikacji Centrum sprzedaży i wybierz ikonę Zadzwoń. W prawym panelu pojawi się aplikacja Twilio Flex.

Zrzut ekranu wbudowanego dialera Twilio w aplikacji Centrum sprzedaży.

Upewnij się, że ustawiłeś swój status jako Dostępny w Twilio i wykonaj połączenie na numer telefonu Twilio skonfigurowany w sekcji Krok 4: Konfiguracja numeru telefonu Twilio.

Zrzut ekranu powiadomienia o połączeniu we wbudowanym dialerze

Po odebraniu połączenia i rozpoczęciu nagrywania, przejdź do zakładki Transkrypcja, aby wyświetlić transkrypcję w czasie rzeczywistym, a następnie wyświetl informacje o połączeniu na stronie Podsumowanie połączenia po zakończeniu połączenia.

Wyświetlenie i zrozumienie strony podsumowania połączenia