Partager via


Intégrer des numéroteurs Twilio Flex à l’intelligence conversationnelle de Dynamics 365 (version préliminaire)

[Cet article fait partie de la documentation en version préliminaire et peut faire l’objet de modifications.]

Cette intégration permet à vos vendeurs de passer et de recevoir des appels Twilio Flex depuis Dynamics 365 et d’obtenir des transcriptions en temps réel pendant l’appel et des informations sur les appels générées par l’IA après l’appel.

Important

  • Cette fonctionnalité est en version préliminaire.
  • Les fonctionnalités en version préliminaire ne sont pas destinées à une utilisation en production et peuvent être restreintes. Ces fonctionnalités sont soumises à des conditions d’utilisation supplémentaires, et sont disponibles avant une version officielle de telle sorte que les clients puissent tirer parti d’un accès anticipé et fournir leurs commentaires.

Conditions préalables

  • Un compte Twilio

  • Un compte Twilio Flex – consultez ce lien pour plus d’informations sur la configuration d’un compte Flex

  • Un environnement Microsoft Dynamics 365 Sales avec la licence Sales Premium ou Sales Enterprise, ainsi que les privilèges d’administrateur système

  • Intelligence conversationnelle installée et configurée – En savoir plus

  • Environnement d’intégration du canal de Dynamics 365 1.0 installé. En savoir plus

  • Configuration d’environnement Node JS local

  • Application create-flex-plugin

Étape 1 : Configurer Twilio Flex en tant que fournisseur de canaux

Dans l’environnement d’intégration du canal Dynamics 365, créez un fournisseur de canaux pour Twilio Flex. Voir la capture d’écran ci-dessous comme exemple :

Capture d’écran de Twilio ajouté en tant que fournisseur de canaux.

Tapez les valeurs suivantes::

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

  • Activer la communication sortante : Oui

  • Version de l’API : 1.0

  • Commande de canal : 1

  • Domaine approuvé :https://flex.twilio.com/

  • Sélectionner les applications Unified Interface pour le canal : centre des ventes (ou toute autre application pour laquelle vous souhaitez que l’intégration soit activée)

  • Sélectionner les rôles de sécurité pour le canal : ajoutez les rôles qui utiliseraient Twilio Flex. Par exemple, Salesperson, Sales Manager, etc. on.To intègrent Twilio Flex en tant qu’iframe dans Dynamics 365, ajoutez l’URL de l’organisation Dynamics 365 à la liste des URL autorisées. Pour plus d’informations, consultez cet article.

Étape 2 : Installer le connecteur SIPREC et acheminer les appels vers Dynamics 365

  1. Installez le module complémentaire connecteur SIPREC .

  2. Ouvrez les paramètres du centre d’administration Twilio et configurez-le pour débrancher le média vers l’enregistreur Dynamics 365 comme illustré dans la capture d’écran suivante :

    Capture d’écran des paramètres du centre d’administration Twilio.

    Les champs suivants sont importants à noter :

    • Nom unique : spécifiez un nom et notez-le. Vous en aurez besoin aux prochaines étapes

    • Serveur d’enregistrement de session : spécifiez l’URL du serveur d’enregistrement média Dynamics 365. Pour obtenir une liste des enregistreurs et des régions pris en charge, consultez Points de terminaison d’enregistreur et régions pris en charge.

      • Si vous souhaitez dupliquer le média vers l’enregistreur le plus proche, utilisez l’URL suivante : sip:SRS@media.recording.dynamics.com:5061;secure=true

      • Les champs d’informations d’identification peuvent rester vides. L’authentification se fait avec certificat sur la configuration TLS entre Twilio et Dynamics.

Étape 3 : Configurer le flux d’appels pour dupliquer le média sur Dynamics 365

  1. Accédez à la section Flux Studio dans la console et sélectionnez le flux RVI vocal.

  2. À droite, sous la section Voice dans la bibliothèque de widgets, ajoutez le widget Dupliquer le flux :

    Capture d’écran du widget Dupliquer le flux.

  3. Maintenant, configurez le widget pour dupliquer le flux à l’aide du connecteur SIPREC que vous avez défini précédemment :

    Capture d’écran de la configuration du widget Dupliquer le flux.

  4. Saisissez les valeurs suivantes :

    - Action du flux : Démarrer

    • Type de flux : Siprec
    • Nom du connecteur : le nom que vous avez donné au connecteur SIPREC. Dans notre exemple, il s’agit de SipRec1.
    • Suivis : les deux suivis
    • Paramètres du flux :
      • Rôle : entrant (dans notre exemple, nous allons enregistrer les appels entrants)

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

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

  5. Dans l’onglet Transitions, configurez l’onglet Dupliquer le flux avant que l’appel ne soit envoyé à l’agent :

    Capture d’écran de l’onglet Transition Twilio.

  6. Enregistrez le flux et publiez.

Étape 4 : Configurer un numéro de téléphone Twilio

Vous devez pointer un numéro de téléphone Twilio vers votre flux Studio récemment créé.

  1. Sélectionnez un numéro que vous possédez ou achetez un nouveau numéro à partir de la console Numéros de téléphone Twilio.

  2. Ouvrez le numéro de téléphone en le sélectionnant, puis faites défiler jusqu’à la section Voice sur la page.

  3. Sélectionnez le flux que vous avez défini précédemment dans les champs L’appel arrive comme illustré dans la capture d’écran suivante :

    Capture d’écran des champs L’appel arrive Twilio.

Étape 5 : Configurer Dynamics 365 pour l’intégration

Configurons Twilio en tant que fournisseur d’appels et configurons une stratégie d’enregistrement pour définir qui peut enregistrer les appels et d’autres informations utilisées pour les informations sur la conversation.

  1. Dans l’application Centre des ventes, accédez à Changer de zone et sélectionnez Paramètres Sales Insights.

  2. Sélectionnez Intelligence conversationnelle.

    Capture d’écran de la page des paramètres de l’intelligence conversationnelle

  3. Sélectionnez Twilio dans la section Fournisseurs d’appels et spécifiez le SID du compte Twilio.

  4. Enregistrez les modifications.

  5. Configurez une stratégie d’enregistrement à l’aide du fournisseur d’appels Twilio.

    1. Sélectionnez Créer une stratégie d’enregistrement et configurez la stratégie. En savoir plus.

    2. Sélectionnez Créer, puis publiez les paramètres.

Étape 6 : Préparez le plug-in Flex pour intégrer l’expérience en temps réel

Flex est un projet React et les personnalisations que vous apportez à l’interface utilisateur sont créées en tant que composants de plug-in.

La préparation d’un environnement Node et la configuration d’un plug-in Flex vide sortent du cadre de cette documentation. Reportez-vous à la documentation de Twilio pour un didacticiel étape par étape sur la création de votre premier plug-in Flex.

Créez un nouveau plug-in prêt à ajouter votre code de personnalisation pour Dynamics.

À ce stade, votre fichier JS de plug-in doit ressembler à ceci :

Capture d’écran du fichier plugin.js.

Ajoutez la bibliothèque Microsoft CIF Client à votre plug-in. La bibliothèque cliente doit être chargée de manière asynchrone lors du lancement de Flex. Ajoutez donc le code suivant à la fonctionnalité Flex init.

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

Publiez le plug-in.
Nous avons maintenant un plug-in Flex prêt à être testé !

Étape 7 : Testez l’intelligence conversationnelle Dynamics 365 et l’intégration Flex

Connectez-vous à l’application Centre des ventes, sélectionnez l’icône Appeler. Vous verrez Twilio Flex intégré dans le volet de droite.

Capture d’écran du composeur Twilio intégré dans l’application Centre des ventes.

Assurez-vous que vous avez défini votre statut sur Disponible dans Twilio et appelez le numéro de téléphone Twilio que vous avez configuré à l’ Étape 4 : Configurer un numéro de téléphone Twilio.

Capture d’écran de la notification d’appel sur le numéroteur intégré

Une fois que vous avez répondu à l’appel et commencé l’enregistrement, accédez à l’onglet Transcription pour afficher la transcription en temps réel, puis consultez les informations sur les appels sur la page Synthèse de l’appel à l’issue de l’appel.

Afficher et comprendre la page de résumé des appels