L'intégration de Twilio à Salesforce Service Cloud Voice (SCV) permet aux représentants Salesforce de passer et de recevoir des appels dans Salesforce à l'aide des fonctionnalités de la plate-forme Twilio.
Avant de commencer
Pour intégrer la voix Salesforce à Twilio Flex, vous devez avoir accès aux ressources suivantes :
- Ressources Salesforce et Agent Assist
- Application Agent Assist pour Salesforce
Compte Flex
Suivez les instructions de la page de configuration de Twilio pour créer un compte Flex. Notez l'identifiant de votre chaîne de compte (SID), votre numéro de téléphone Twilio et votre jeton d'authentification.
Numéro de téléphone géré par la plate-forme de téléphonie Google
Suivez les instructions de la section Google Telephony Platform pour obtenir un numéro de téléphone provisionné à intégrer au module complémentaire du connecteur Siprec de Twilio.
Étape 1 : Configurer Twilio Service Cloud Voice
Suivez les instructions du guide Twilio pour configurer Salesforce SCV avec Twilio comme fournisseur de téléphonie partenaire.
Étape 2 : Intégrer Agent Assist à Twilio Flex
Suivez ces étapes pour intégrer Agent Assist à Twilio Flex.
Installer le module complémentaire du connecteur SIPREC
Le module complémentaire de connecteur SIPREC permet à votre compte Twilio Flex de créer des forks SIPREC des flux multimédias d'appels vocaux vers Agent Assist. Pour installer le module complémentaire du connecteur SIPREC, procédez comme suit.
Accédez à Twilio Home et saisissez Marketplace dans le champ de recherche.
Cliquez sur Catalogue > Connecteurs de flux > Connecteur Siprec > Installer > Ajouter une instance.
Accédez à l'onglet Configurer et configurez le plug-in avec les informations suivantes :
- Nom unique :
SipRec1 - Serveur d'enregistrement de session :
sip:+<GTP-provisioned-phone-number>@216.239.36.145:5672;transport=tls;secure=true;edge=umatilla
- Nom unique :
Cliquez sur Enregistrer.
Configurer les fonctions Twilio
Pour configurer deux fonctions Twilio, conversation-name et wrap-up, procédez comme suit.
- Accédez à la console Twilio et saisissez Function dans le champ de recherche.
- Cliquez sur Functions > Create service (Fonctions > Créer un service).
- Nommez le nouveau service
ui-connector-auth, puis cliquez sur Suivant. - Cliquez sur Ajouter + > Ajouter une fonction.
Pour créer la fonction conversation-name, procédez comme suit.
- Nommez la fonction
conversation-name. - Cliquez sur le cadenas et définissez la visibilité de la fonction sur Public.
- Copiez le code
ui-connector-auth.jset collez-le dans l'éditeur. - Cliquez sur Enregistrer.
Vous pouvez automatiser le processus de finalisation des appels avec une fonction wrap-up et EventCallbackUrl. Il n'est donc plus nécessaire de clôturer manuellement les appels dans Salesforce et Twilio Flex. Suivez ces étapes pour créer une fonction wrap-up permettant de recevoir des événements via EventCallbackUrl.
- Accédez à la console Twilio > barre de recherche et saisissez Taskrouter Workspace.
- Sélectionnez Espaces de travail TaskRouter.
- Notez le SID dans la colonne "Espace de travail".
- Accédez à l'éditeur et nommez la fonction
wrap-up. Ajoutez le code suivant dans l'éditeur.
/** * @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); } };Localisez la variable
workspaceSidet mettez-la à jour avec le SID de l'espace de travail de l'étape "SID de l'espace de travail Taskrouter".Notez l'URL de votre service. Vous devez utiliser l'URL complète de la fonction
wrap-upà l'étape suivante.Cliquez sur Enregistrer > Déployer tout.
Accédez à la console Twilio et saisissez Taskrouter Workspaces dans la barre de recherche.
Cliquez sur l'espace de travail que vous utilisez > Paramètres > Rappels d'événement > URL de rappel d'événement.
Saisissez l'URL de la fonction
wrap-upde l'étape précédente.Cliquez sur Événements de rappel et définissez-le sur Événements spécifiques.
Cliquez sur Tout sélectionner > Enregistrer.
Configurer un SVI avec Flex Studio
Pour configurer votre menu téléphonique automatisé, utilisez Twilio Studio afin de créer un flux d'appels qui lance une bifurcation SIPREC. Cette bifurcation envoie un flux multimédia directement à Agent Assist. Le flux d'appel effectue également une requête HTTP POST pour partager le numéro de téléphone et l'ID de conversation avec Agent Assist.
Suivez ces étapes pour configurer la réponse vocale interactive (RVI) avec Flex Studio.
- Accédez à la console Twilio et saisissez Studio dans le champ de recherche.
- Cliquez sur Studio. La page du tableau de bord Studio s'ouvre et affiche la liste des flux.
Sur la page du tableau de bord Studio, vous pouvez effectuer les actions suivantes :
- Mettez à jour le flux existant.
- Créez un flux.
Mettre à jour un flux existant
Suivez ces étapes dans la console Twilio pour mettre à jour les flux existants.
- Sélectionnez le flux que vous souhaitez modifier.
- Cliquez sur Develop > Phone Numbers > Manage > Active Numbers (Développer > Numéros de téléphone > Gérer > Numéros actifs). Le tableau doit comporter une ligne avec le numéro Twilio par défaut provisionné pour votre compte Flex.
- Accédez à Voix > Workflow Studio, puis cliquez sur Réponse vocale interactive.
Créer un flux
Créez des flux pour envoyer une requête HTTP, exécuter une fonction, dupliquer un flux et l'envoyer à Flex. Suivez ces étapes dans la console Twilio pour créer un flux de requêtes HTTP.
- Accédez à la page Tableau de bord Studio, puis cliquez sur Créer un flux.
- Accédez à widget Recherche et saisissez HTTP.
- Faites glisser le widget Make HTTP request (Envoyer une requête HTTP) vers le panneau de flux.
Configurez un widget avec les informations suivantes, puis cliquez sur Enregistrer.
- Nom du widget :
register_twilio - Méthode de requête :
POST - URL de la requête :
your-ui-connector-cloud-run-url.run.app/register-app
- Type de contenu : application/json
Corps de la requête :
{ "accountSid": "yourTwilioAccountSid", "authToken": "yourTwilioAccountAuthToken" }
- Nom du widget :
Suivez ces étapes pour créer un flux de fonction d'exécution.
- Saisissez Run function (Exécuter la fonction) dans le widget de recherche.
- Faites glisser le widget Run function (Exécuter la fonction) sur le panneau de flux pour le connecter aux sorties Success (Succès) et Fail (Échec) du widget
register_twilio. Configurez le widget de fonction d'exécution avec les informations suivantes :
- Nom du widget :
conversation_name - Service :
ui-connector-auth - Environnement : ui
- Fonction :
/conversation-name Paramètres de la fonction : saisissez les paramètres de fonction suivants.
- Jeton :
{{ widgets.register_twilio.parsed.token }}
- Point de terminaison :
your-ui-connector-cloud-run-url.run.app/conversation-name
- Téléphone :
{{ trigger.call.From | replace_first:'+','' }}
ConversationName:projects/project/locations/location/conversations/{{ trigger.call.CallSid }}
- Jeton :
- Nom du widget :
Cliquez sur Enregistrer.
Suivez ces étapes pour créer un flux de bifurcation.
- Saisissez Fork stream dans le widget de recherche.
- Déplacez le widget Fork Stream vers le panneau de flux pour le connecter aux sorties Success et Fail du widget Make HTTP request.
Configurez le widget de flux de fork avec les détails suivants :
- Action de flux : Démarrer
- Type de flux :
Siprec - Nom du connecteur :
Siprec1 - Pistes : les deux pistes
Paramètres du flux : saisissez les paramètres de flux suivants.
- Clé : conversation
- Valeur :
projects/project-id/conversations/{{trigger.call.CallSid}}
Cliquez sur Enregistrer.
Suivez ces étapes pour créer le flux "Envoyer à Flex".
- Saisissez Envoyer vers Flex dans le widget de recherche.
- Déplacez Envoyer à Flex vers le panneau de flux, puis connectez Suivant de Flux de bifurcation à Envoyer à Flex.
- Cliquez sur Envoyer à Flex.
Configurez le widget "Envoyer vers Flex" avec les informations suivantes.
- Workflow : choisissez le workflow que vous utilisez pour SCV.
- Canal de tâches : Voix
- Attributs :
{"agent_assist__ConversationId__c":"{{trigger.call.CallSid}}"} - Méthode de l'URL :
POST
Cliquez sur Enregistrer > Publier.
Étape 4 : Configurez la page d'enregistrement pour Agent Assist
Suivez ces étapes pour configurer la page d'enregistrement pour Agent Assist.
- Créez une page d'enregistrement des appels vocaux pour Agent Assist.
- Cliquez sur Activation > Par défaut de l'application > Attribuer comme par défaut de l'application.
- Sélectionnez Twilio for service cloud voice.
- Cliquez sur Suivant > Enregistrer.
Étape 5 : Tester l'intégration d'Agent Assist
Suivez ces étapes pour tester Agent Assist.
- Accédez à Salesforce.
- Cliquez sur Lanceur d'applications Applications.
- Dans le champ de recherche, saisissez Twilio for service cloud voice. La page Demandes s'ouvre.
- Accédez au panneau Omnicanal, puis cliquez sur Nouveau.
- Cliquez sur check_circle Vérifier pour appeler votre numéro Twilio Flex. Vous l'avez noté au début.
- Testez les deux côtés de la conversation et assurez-vous que les fonctionnalités Agent Assist fonctionnent comme vous les avez configurées.