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:
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
Zainstaluj łącznik SIPREC.
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:
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
Przejdź do sekcji przepływy Studio Flows w konsoli i wybierz przepływ Voice IVR.
Po prawej stronie, w sekcji Głos w bibliotece widżetów, dodaj widżet rozwidlenie streamu:
Teraz skonfiguruj widżet, aby rozwidlał strumień przy użyciu łącznika SIPREC, który zdefiniowałeś wcześniej:
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}}
W zakładce Przejścia skonfiguruj Rozwidlenie streamu tak, aby znajdował się przed wysłaniem połączenia do agenta:
Zapisz przepływ i opublikuj.
Krok 4: Konfiguracja numeru telefonu Twilio
Musisz wskazać numer telefonu Twilio do nowo utworzonego przepływu Studio Flow.
Wybierz numer, który posiadasz – lub kup nowy numer – w konsoli Numery telefonów Twilio.
Otwórz numer telefonu, wybierając go, a następnie przewiń w dół do sekcji Głos na stronie.
Wybierz przepływ zdefiniowany wcześniej w polach Przychodzi połączenie, jak pokazano na poniższym zrzucie ekranu:
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ę.
W aplikacji Centrum sprzedaży przejdź do obszaru Zmień i wybierz Ustawienia Sales Insights.
Wybierz Analiza konwersacji.
Wybierz Twilio w sekcji Dostawcy połączeń i określ identyfikator konta SID Twilio.
Zapisz zmiany.
Skonfiguruj zasady nagrywania przy użyciu dostawcy połączeń Twilio.
Wybierz Utwórz zasady nagrywania i skonfiguruj te zasady. Więcej informacji.
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:
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.
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.
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.