Freigeben über


Twilio Flex in die Unterhaltungsdaten von Dynamics 365 integrieren (Vorschauversion)

[Dieser Artikel ist Teil der Dokumentation zur Vorabversion und kann geändert werden.]

Mit dieser Integration können Ihre Vertriebsmitarbeitenden Twilio Flex-Anrufe von Dynamics 365 aus tätigen und empfangen und während des Anrufs Echtzeittranskriptionen sowie nach dem Anruf KI-generierte Anruferkenntnisse erhalten.

Wichtig

  • Dies ist eine Vorschauversion.
  • Funktionen in der Vorschauversion sind nicht für den Produktionseinsatz gedacht und können eine eingeschränkte Funktionalität aufweisen. Diese Funktionen unterliegen den ergänzenden Nutzungsbedingungen und stehen vor dem offiziellen Release zur Verfügung, damit die Kundschaft frühen Zugriff darauf erhalten und Feedback geben können.

Anforderungen

  • Ein Twilio-Konto

  • Ein Twilio-Flex-Konto (weitere Informationen zum Einrichten eines Flex-Kontos finden Sie unter diesem Link)

  • Eine Microsoft Dynamics 365 Sales-Umgebung mit der Sales Premium- oder Sales Enterprise-Lizenz sowie Berechtigungen von Systemadministrierenden

  • Unterhaltungsdaten müssen installiert und eingerichtet sein (weitere Informationen)

  • Das Dynamics 365-Kanalintegrationsframework 1.0 muss installiert sein. Weitere Informationen

  • Eine lokale Node-JS-Umgebung muss eingerichtet sein

  • Die create-flex-plugin Anwendung

Schritt 1: Twilio Flex als Kanalanbieter konfigurieren

Erstellen Sie im Dynamics 365-Kanalintegrationsframework einen Kanalanbieter für Twilio Flex. Ein Beispiel dafür sehen Sie im unten stehenden Screenshot:

Screenshot von Twilio als hinzugefügtem Kanalanbieter.

Geben Sie die folgenden Werte ein:::

  • Kanal-URL:https://flex.twilio.com/agent-desktop

  • Ausgehende Kommunikation aktivieren: Ja

  • API-Version: 1.0

  • Kanalreihenfolge: 1

  • Vertrauenswürdige Domäne:https://flex.twilio.com/

  • Apps der einheitlichen Oberfläche für den Kanal auswählen: Vertriebshub (oder jede andere App, für die Sie die Integration aktivieren möchten)

  • Sicherheitsrollen für den Kanal auswählen: Fügen Sie die Rollen hinzu, die Twilio Flex verwenden soll. Zum Beispiel Vertriebsmitarbeitende, Vertriebsmanager usw., um Twilio Flex als iframe in Dynamics 365 einbetten und die Organisations-URL von Dynamics 365 zur Liste der zulässigen URLs hinzufügen. Weitere Informationen finden Sie in diesem Artikel.

Schritt 2: Den SIPREC-Connector installieren und Anrufe an Dynamics 365 weiterleiten

  1. Installieren Sie das SIPREC-Connector-Add-On.

  2. Öffnen Sie die Einstellungen des Twilio Admin Centers und konfigurieren Sie es so, dass die Medien an den Dynamics 365-Rekorder weitergeleitet werden, wie im folgenden Screenshot dargestellt:

    Screenshot der Einstellungen des Twilio Admin Centers

    Berücksichtigen Sie die folgenden Felder:

    • Eindeutiger Name: Geben Sie einen Namen an und schreiben Sie ihn auf. Sie brauchen ihn in den nächsten Schritten

    • Sitzungsaufzeichnungsserver: Geben Sie die URL des Dynamics 365-Medienaufzeichnungsservers an. Eine Liste der unterstützten Rekorder und Regionen finden Sie unter Unterstützte Rekorder-Endpunkte und Regionen.

      • Wenn Sie das Medium an den nächstgelegenen Rekorder forken möchten, verwenden Sie die folgende URL: sip:SRS@media.recording.dynamics.com:5061;secure=true

      • Die Anmeldedatenfelder können leer bleiben. Die Authentifizierung erfolgt mit Zertifikat über die TLS-Einrichtung zwischen Twilio und Dynamics.

Schritt 3: Anrufflow für die Verzweigung der Medien an Dynamics 365 konfigurieren

  1. Navigieren Sie in der Konsole zum Abschnitt Studio-Flows und wählen Sie den Voice-IVR-Flow aus.

  2. Fügen Sie auf der rechten Seite im Abschnitt Voice in der Widget-Bibliothek das Widget Stream forken hinzu:

    Screenshot des „Stream forken“-Widgets.

  3. Konfigurieren Sie nun das Widget so, dass der Stream mithilfe des zuvor festgelegten SIPREC-Connectors geforkt wird:

    Screenshot der Konfiguration des „Stream forken“-Widgets.

  4. Geben Sie die folgenden Werte ein:

    - Stream-Aktion: Start

    • Stream-Typ: Siprec
    • Connector-Name: Der Name, den Sie dem SIPREC-Connector gegeben haben. In unserem Beispiel lautet er SipRec1.
    • Titel: Beide Titel
    • Stream-Parameter:
      • Rolle: eingehend (in unserem Beispiel zeichnen wir eingehende Anrufe auf)

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

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

  5. Konfigurieren Sie in der Registerkarte Übergänge Stream forken so, dass es vor dem Weiterleiten des Anrufs an den Agenten liegt.

    Screenshot der Registerkarte „Twilio-Übergang“.

  6. Speichern und veröffentlichen Sie den Flow.

Schritt 4: Eine Twilio-Telefonnummer konfigurieren

Sie müssen eine Twilio-Telefonnummer auf Ihren neu erstellten Studio-Flow verweisen.

  1. Wählen Sie in der Telefonnummernkonsole von Twilio eine Nummer aus, die Sie besitzen, oder kaufen Sie eine neue Nummer.

  2. Öffnen Sie die Telefonnummer, indem Sie sie auswählen, und scrollen Sie dann nach unten zum Abschnitt Voice.

  3. Wählen Sie den Flow aus, den Sie zuvor in den Feldern Eingehender Anruf festgelegt haben, wie im folgenden Screenshot dargestellt:

    Screenshot der Twilio-Felder „Eingehender Anruf“.

Schritt 5: Dynamics 365 für die Integration konfigurieren

Jetzt richten wir Twilio als Anrufanbieter ein und konfigurieren eine Aufzeichnungsrichtlinie, um festzulegen, wer Anrufe und andere Informationen aufzeichnen kann, die für Unterhaltungserkenntnisse verwendet werden.

  1. Gehen Sie in der Vertriebshub-App zum Bereich „Ändern“ und wählen Sie Sales Insights-Einstellungen.

  2. Wählen Sie Unterhaltungsdaten aus.

    Screenshot der Einstellungsseite für Unterhaltungsdaten

  3. Wählen Sie Twilio im Abschnitt „Anrufanbieter“ aus und geben Sie die Twilio-Konto-SID an.

  4. Speichern Sie die Änderungen.

  5. Konfigurieren Sie eine Aufzeichnungsrichtlinie mit dem Twilio-Anrufanbieter.

    1. Wählen Sie Aufzeichnungsrichtlinie erstellen und konfigurieren Sie die Richtlinie. Weitere Informationen.

    2. Wählen Sie Erstellen und veröffentlichen Sie dann die Einstellungen.

Schritt 6: Flex-Plugin auf die Integration mit der Echtzeitumgebung vorbereiten

Flex ist ein React-Projekt und Anpassungen, die Sie an der Benutzeroberfläche vornehmen, werden als Plugin-Komponenten erstellt.

Das Vorbereiten einer Node-Umgebung und das Einrichten eines leeren Flex-Plugins fallen nicht in den Rahmen dieser Dokumentation. Eine Schritt-für-Schritt-Anleitung zum Erstellen Ihres ersten Flex-Plugins finden Sie in der Twilio-Dokumentation.

Erstellen Sie ein neues Plugin, das Sie zum Hinzufügen Ihres Anpassungscodes für Dynamics verwenden können.

Zu diesem Zeitpunkt sieht Ihre Plugin-JS-Datei wie folgt aus:

Screenshot der plugin.js-Datei

Fügen Sie die Microsoft CIF-Client-Bibliothek zu Ihrem Plugin hinzu. Die Client-Bibliothek muss beim Start von Flex asynchron geladen werden. Fügen Sie daher den folgenden Code zur Flex-Init-Funktion hinzu.

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);
  }
}

Veröffentlichen Sie das Plugin.
Wir haben jetzt ein Flex-Plugin, das wir testen können!

Schritt 7: Die Integration der Dynamics 365-Unterhaltungsdaten mit Flex testen

Melden Sie sich bei der Vertriebshub-App an und wählen Sie das Symbol Anruf aus. Sie sehen, dass Twilio Flex im rechten Bereich eingebettet ist.

Screenshot der eingebetteten Twilio-Wählhilfe in der Vertriebshub-App.

Stellen Sie sicher, dass Sie Ihren Status in Twilio auf Verfügbar eingestellt haben, und rufen Sie die Twilio-Telefonnummer an, die Sie in Schritt 4: Eine Twilio-Telefonnummer konfigurieren eingerichtet haben.

Screenshot der Anrufbenachrichtigung in der eingebetteten Wählhilfe

Sobald Sie den Anruf entgegengenommen und mit der Aufzeichnung begonnen haben, navigieren Sie zur Registerkarte Transkript, um die Transkription in Echtzeit anzuzeigen. Sehen Sie sich nach Beendigung des Anrufs auf der Seite Anrufzusammenfassung die Anruferkenntnisse an.

Anrufzusammenfassungsseite anzeigen und verstehen