Agent Assist für die Salesforce-Sprachanrufintegration mit Twilio Flex

Durch die Integration von Twilio in Salesforce Service Cloud Voice (SCV) können Salesforce-Kundenservicemitarbeiter Anrufe in Salesforce mit den Funktionen der Twilio-Plattform tätigen und entgegennehmen.

Hinweis

Um Salesforce Voice in Twilio Flex einzubinden, benötigen Sie Zugriff auf die folgenden Ressourcen:

Schritt 1: Twilio Service Cloud Voice einrichten

Folgen Sie der Anleitung im Twilio-Leitfaden, um Salesforce SCV mit Twilio als Partner-Telefonieanbieter einzurichten.

Schritt 2: Agent Assist in Twilio Flex einbinden

So integrieren Sie Agent Assist in Twilio Flex:

SIPREC-Connector-Add-on installieren

Mit dem SIPREC-Connector-Add-on kann Ihr Twilio Flex-Konto SIPREC-Forks von Sprachanruf-Media-Streams an Agent Assist senden. So installieren Sie das SIPREC-Connector-Add-on:

  1. Rufen Sie Twilio Home auf und geben Sie Marketplace in das Suchfeld ein.

    Twilio Home

  2. Klicken Sie auf Katalog > Stream-Connectors > Siprec-Connector > Installieren > Instanz hinzufügen.

  3. Rufen Sie den Tab Konfigurieren auf und konfigurieren Sie das Plug-in mit den folgenden Details:

    • Eindeutiger Name: SipRec1
    • Server für die Sitzungsaufzeichnung: sip:+<GTP-provisioned-phone-number>@216.239.36.145:5672;transport=tls;secure=true;edge=umatilla
  4. Klicken Sie auf Speichern.

Twilio-Funktionen konfigurieren

So konfigurieren Sie zwei Twilio-Funktionen, conversation-name und wrap-up:

  1. Rufen Sie die Twilio-Konsole auf und geben Sie Function in das Suchfeld ein.
  2. Klicken Sie auf Funktionen > Dienst erstellen.
  3. Geben Sie einen Namen für den neuen Dienst ein (ui-connector-auth) und klicken Sie auf Weiter.
  4. Klicken Sie auf Hinzufügen + > Funktion hinzufügen.

So erstellen Sie die Funktion conversation-name:

  1. Nennen Sie die Funktion conversation-name.
  2. Klicken Sie auf das Schloss und ändern Sie die Sichtbarkeit der Funktion in Öffentlich.
  3. Kopieren Sie den ui-connector-auth.js-Code und fügen Sie ihn in den Editor ein.
  4. Klicken Sie auf Speichern.

Sie können den Prozess des Anrufabschlusses mit einer wrap-up-Funktion und EventCallbackUrl automatisieren. Dadurch müssen Anrufe nicht mehr manuell in Salesforce und Twilio Flex beendet werden. So erstellen Sie eine wrap-up-Funktion, um Ereignisse über EventCallbackUrl zu empfangen:

  1. Rufen Sie die Twilio-Konsole auf > geben Sie in der Suchleiste Taskrouter Workspace ein.
  2. Wählen Sie Taskrouter-Arbeitsbereiche aus.
  3. Notieren Sie sich die SID in der Spalte „Arbeitsbereich“.
  4. Rufen Sie den Editor auf und geben Sie der Funktion den Namen wrap-up.
  5. Fügen Sie den folgenden Code in den Editor ein.

    /**
    * @desc A Twilio Function that wraps up a conversation automatically to avoid agents being stuck
    * in a wrap up state while in Salesforce's Service Console.
    */
    exports.handler = function(context, event, callback) {
     const response = new Twilio.Response();
     const client = context.getTwilioClient();
    
     /**
      * @TODO Add your workspaceSid to this variable.
      */
     const workspaceSid = ""
    
     response.appendHeader('Content-Type', 'application/json');
    
     if (!event.EventType) {
       response.setBody({});
        return callback(null, response);
      }
    
      /**
       * This event is dispatched with the Event Callback Url, which is assigned in a Taskrouter Workspace's
       * Settings.
       */
      if (event.EventType === 'task.wrapup') {
       client.taskrouter.v1.workspaces(workspaceSid)
          .tasks(event.TaskSid)
          .update({
           assignmentStatus: 'completed',
           reason: 'Auto-completed via Function'
          })
          .then(() => {
            response.setBody({ status: "completed" });
            callback(null, response);
          })
          .catch(err => {
           response.setStatusCode(500);
           response.setBody({ error: err.message });
           callback(null, response);
         });
      } else {
       response.setBody({ status: "ignored" });
        callback(null, response);
      }
    };
    
  6. Suchen Sie die Variable workspaceSid und aktualisieren Sie sie mit der Arbeitsbereichs-SID aus dem Schritt „Taskrouter Workspace SID“.

  7. Notieren Sie sich die URL Ihres Dienstes. Sie müssen die vollständige URL der wrap-up-Funktion im nächsten Schritt verwenden.

  8. Klicken Sie auf Speichern > Alle bereitstellen.

  9. Rufen Sie die Twilio-Konsole auf und geben Sie Taskrouter Workspaces in die Suchleiste ein.

  10. Klicken Sie auf den verwendeten Arbeitsbereich > Einstellungen > Event-Callbacks > Event-Callback-URL.

  11. Geben Sie die URL der wrap-up-Funktion aus dem vorherigen Schritt ein.

  12. Klicken Sie auf Callback-Ereignisse und legen Sie die Option auf Bestimmte Ereignisse fest.

  13. Klicken Sie auf Alle auswählen > Speichern.

IVR mit Flex Studio konfigurieren

Um Ihr automatisches Telefonmenü einzurichten, verwenden Sie Twilio Studio, um einen Anrufablauf zu erstellen, der einen SIPREC-Fork initiiert. Bei diesem Fork wird ein Media-Stream direkt an Agent Assist gesendet. Im Anrufablauf wird auch ein HTTP-POST-Vorgang ausgeführt, um die Telefonnummer und die Unterhaltungs-ID an Agent Assist zu senden.

So konfigurieren Sie ein IVR-System (Interactive Voice Response) mit Flex Studio:

  1. Rufen Sie die Twilio-Konsole auf und geben Sie Studio in das Suchfeld ein.
  2. Klicken Sie auf Studio. Die Studio-Dashboardseite wird mit der Liste der Flows geöffnet.
  3. Auf der Seite „Studio-Dashboard“ haben Sie folgende Möglichkeiten:

    • Vorhandenen Ablauf aktualisieren
    • Erstellen Sie einen Ablauf.

Vorhandenen Ablauf aktualisieren

So aktualisieren Sie vorhandene Flows in der Twilio-Konsole:

  1. Wählen Sie den Ablauf aus, den Sie aktualisieren möchten.
  2. Klicken Sie auf Develop (Entwickeln) > Phone Numbers (Telefonnummern) > Manage (Verwalten) > Active Numbers (Aktive Nummern). Die Tabelle sollte eine Zeile mit der standardmäßigen Twilio-Nummer enthalten, die für Ihr Flex-Konto bereitgestellt wurde.
  3. Rufen Sie Voice – Studio Workflow auf und klicken Sie auf Voice IVR.

Ablauf erstellen

Erstellen Sie neue Abläufe, um eine HTTP-Anfrage zu senden, eine Funktion auszuführen, einen Stream zu verzweigen und an Flex zu senden. So erstellen Sie einen HTTP-Anfrageablauf in der Twilio-Konsole:

  1. Rufen Sie das Studio-Dashboard auf und klicken Sie auf Neuen Ablauf erstellen.
  2. Rufen Sie das Such-Widget auf und geben Sie HTTP ein.
  3. Ziehen Sie das Make HTTP request-Widget (HTTP-Anfrage stellen) in das Flussdiagramm.
  4. Konfigurieren Sie ein Widget mit den folgenden Details und klicken Sie auf Speichern.

    • Widget-Name: register_twilio
    • Anfragemethode: POST
    • Anfrage-URL:
      your-ui-connector-cloud-run-url.run.app/register-app
    • Inhaltstyp: Application/JSON
    • Anfragetext:

      {
      "accountSid": "yourTwilioAccountSid",
      "authToken": "yourTwilioAccountAuthToken"
      }
      

So erstellen Sie einen Ablauf für die Ausführung einer Funktion:

  1. Geben Sie Lauffunktion in das Such-Widget ein.
  2. Ziehen Sie das Run function-Widget (Funktion ausführen) in das Flussdiagramm, um es mit den Ausgaben Success (Erfolg) und Fail (Fehler) des register_twilio-Widgets zu verbinden.
  3. Konfigurieren Sie das Widget für die Ausführungsfunktion mit den folgenden Details:

    • Widget-Name: conversation_name
    • Dienst: ui-connector-auth
    • Umgebung: ui
    • Funktion: /conversation-name
    • Funktionsparameter: Geben Sie die folgenden Funktionsparameter ein.

      • Token:
        {{ widgets.register_twilio.parsed.token }}
      • Endpunkt:
        your-ui-connector-cloud-run-url.run.app/conversation-name
      • Telefon:
        {{ trigger.call.From | replace_first:'+','' }}
      • ConversationName:
        projects/project/locations/location/conversations/{{ trigger.call.CallSid }}
  4. Klicken Sie auf Speichern.

So erstellen Sie einen Fork-Stream-Ablauf:

  1. Geben Sie Fork stream in das Such-Widget ein.
  2. Verschieben Sie das Fork Stream-Widget in das Flussdiagramm, um es mit den Ausgaben Success und Fail des Widgets „HTTP-Anfrage stellen“ zu verbinden.
  3. Konfiguriere das Fork-Stream-Widget mit den folgenden Details:

    • Stream-Aktion: Starten
    • Streamtyp: Siprec
    • Connector name (Connector-Name): Siprec1
    • Tracks: Beide Tracks
    • Stream-Parameter: Geben Sie die folgenden Stream-Parameter ein.

      • Schlüssel: Unterhaltung
      • Wert:
        projects/project-id/conversations/{{trigger.call.CallSid}}
  4. Klicken Sie auf Speichern.

So erstellen Sie den „Senden an Flex“-Ablauf:

  1. Geben Sie An Flex senden in das Such-Widget ein.
  2. Verschieben Sie An Flex senden in den Flussbereich und verbinden Sie Weiter von Stream forken mit An Flex senden.
  3. Klicke auf An Flex senden.
  4. Konfigurieren Sie das Widget „An Flex senden“ mit den folgenden Details.

    • Workflow: Wählen Sie den Workflow aus, den Sie für die SCV verwenden.
    • Task-Channel: Voice
    • Attribute:
      {"agent_assist__ConversationId__c":"{{trigger.call.CallSid}}"}
    • URL-Methode: POST
  5. Klicken Sie auf Speichern > Veröffentlichen.

Schritt 4: Datensatzseite für Agent Assist konfigurieren

So konfigurieren Sie die Datensatzseite für Agent Assist:

  1. Erstellen Sie eine Seite mit Sprachanrufaufzeichnungen für Agent Assist.
  2. Klicken Sie auf Aktivierung > App-Standard > Als App-Standard zuweisen.
  3. Wählen Sie Twilio for Service Cloud Voice aus.
  4. Klicken Sie auf Weiter > Speichern.

Schritt 5: Agent Assist-Integration testen

So testen Sie Agent Assist:

  1. Rufen Sie Salesforce auf.
  2. Klicken Sie auf den App Launcher.
  3. Geben Sie im Suchfeld Twilio for Service Cloud Voice ein. Die Seite Fälle wird geöffnet.
  4. Rufen Sie den Bereich Omnichannel auf und klicken Sie auf Neu.
  5. Klicken Sie auf check_circle Prüfen, um Ihre Twilio Flex-Nummer anzurufen. Sie haben das am Anfang erwähnt.
  6. Testen Sie beide Seiten der Unterhaltung und prüfen Sie, ob die Agent Assist-Funktionen wie konfiguriert funktionieren.