https://d226lax1qjow5r.cloudfront.net/blog/blogposts/building-a-resilient-voice-agent-a-guide-to-failover-systems/voiceagent.png

Construire un agent Voice résilient : Un guide pour les systèmes de basculement

Publié le April 23, 2024

Temps de lecture : 8 minutes

Si vous êtes né après 1980, il y a environ 80 % de chances que vous ayez peur de répondre à des appels téléphoniques ou d'en passer (selon des études menées en Allemagne et aux États-Unis). Pour les entreprises, cela signifie que bientôt plus de la moitié de la population mondiale des consommateurs sera prédisposée à la "téléphobie".

Même si les appels vocaux constituent un moyen de communication efficace, les entreprises ont tout intérêt à mettre en œuvre d'autres moyens pour répondre aux préférences de leurs clients. Une solution simple consisterait à assurer un suivi par SMS, WhatsApp ou courriel. Cela pourrait avoir de nombreuses applications dans le monde réel : confirmation de rendez-vous, rappels de paiement, marketing sortant, et bien plus encore.

AI Studio de Vonage vous permet de construire des chatbots de téléphonie sortante dans une plateforme intuitive sans code/à faible code. La plateforme est facile à démarrer et vous permet de construire des intégrations puissantes pour faire passer votre expérience client au niveau supérieur. Dans cet article de blog, vous apprendrez à déclencher un appel sortant de votre agent, puis à envoyer un SMS de suivi et un Email lorsque l'appel n'aboutit pas.

Conditions préalables

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

Comment créer un chatbot téléphonique sortant ?

Pour créer votre agent, suivez les instructions figurant dans la documentation d'AI Studio ici. Il y a trois options importantes pour notre agent, sélectionnez :

  • Type : Téléphonie

  • Modèle : Partir de zéro

  • Événement : Sortie

Comme la fonctionnalité que vous souhaitez créer est basée sur l'échec de l'appel, vous n'aurez à construire que l'agent le plus simple. Ajoutez un seul nœud "nœud "Speak à votre agent et ajoutez une phrase que l'agent doit dire. Ajoutez ensuite un nœud Fin d'appel pour terminer le flux.

Simple Voice Agent in AI StudioSimple Voice Agent in AI Studio

La dernière étape consiste à connecter votre agent à un numéro virtuel. Ce guide explique comment publier votre agent.

Comment déclencher un chatbot téléphonique sortant ?

Maintenant que vous avez créé votre agent, vous devez déclencher l'application AI Studio API d'appels sortants d'AI Studio. Pour ce faire, vous pouvez utiliser Postman. Une fois connecté, créez une nouvelle collection. Ensuite, vous allez créer une nouvelle requête HTTP de type POST.

Vous pouvez voir l'emplacement de votre agent dans la rubrique Détails de l'agent.

En-têtes

Dans l'onglet En-têtes, vous devez ajouter votre AI Studio X-Vgai-Key. Vous trouverez l'en-tête X-Vgai-Key en haut à droite de votre AI Studio canvas. Cliquez sur l'icône "user", puis sur "Generate API Key".

Outbound Agent Triggered From PostmanOutbound Agent Triggered From Postman

Corps

Ouvrez maintenant l'onglet Body et sélectionnez l'onglet raw option et dans le menu déroulant, sélectionnez JSON. Enfin, ajoutez les éléments suivants :

{

    "to": “TESTING_NUMBER",
    "agent_id": "YOUR_AGENT_ID",
    "status_url": ""

}

Remplacez TESTING_NUMBER par votre numéro de téléphone ou tout autre numéro auquel vous souhaitez recevoir l'appel. Le numéro doit être au format international et ne doit pas être précédé du signe + ou 0. Remplacez YOUR_AGENT_ID par l'identifiant de votre agent Vonage AI Studio. Vous le trouverez dans les détails de l'agent. Laissez le champ status_url en blanc pour l'instant. Il sera mis à jour avec l'URL du serveur de votre application.

Outbound Agent Postman Request with DataOutbound Agent Postman Request with Data

Cliquez sur "Enregistrer" et testez votre agent en cliquant sur "Envoyer". Vous devriez recevoir un appel de votre agent, c'est plutôt cool non ? !

Comment créer une application Node pour gérer un appel qui échoue ?

Vous allez maintenant créer une application pour gérer cet appel. status_url appel. Ouvrez votre terminal et créez un nouveau projet :

mkdir aistudio-failover-example cd aistudio-failover-example

Ensuite, initialiser le projet en tant qu'application Node et installez le paquetage Express paquetage :

npm init -y npm install express

Enfin, créez un fichier appelé app.js. C'est là que se trouvera notre code.

touch app.js

Ajoutez ce qui suit au fichier app.js. Ce code, qui est en grande partie un code passe-partout, crée un serveur Express qui s'exécute sur le port 3000 et traite les requêtes POST. Lorsqu'une requête POST est reçue, l'application console.log le contenu de la requête.

// app.js

const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;

// Use bodyParser middleware to parse JSON requests
app.use(bodyParser.json());

// Handle POST requests to the root endpoint
app.post('/', (req, res) => {
  
  // Display the payload in the console
  console.log('Received POST request. Payload:', req.body);

  // Send a response back to the client
  res.status(200).send('POST request received successfully');
});

// Start the server
app.listen(port, () => {
  console.log(\`Server is running on http://localhost:${port}\`);
});

Sauvegardez maintenant votre app.js et lancez l'application :

node app.js

Enfin, vous devrez exposer votre application en en utilisant ngrok. Ouvrez un nouvel onglet dans votre terminal et exécutez :

ngrok http 3000

Dans votre terminal, ngrok va créer une URL de tunnel pour vous. Vous devez maintenant copier/coller votre URL de tunnel pour la valeur de status_url dans le corps de votre requête Postman.

Outbound Voice Agent with Status URL WebhookOutbound Voice Agent with Status URL Webhook

Vous pouvez maintenant appuyer sur Envoyer pour tester l'appel. Mais cette fois, ne répondez pas à l'appel. Retournez ensuite à l'onglet de votre terminal qui exécute le serveur de votre application. Vous devriez voir la charge utile de la requête POST provenant d'AI Studio !

Node Server with Status URL PayloadNode Server with Status URL Payload

Pourquoi vous ne recevez pas de demande POST ?

Si vous ne recevez pas de charge utile et que vous vous êtes assuré que vous avez tout fait correctement, ce n'est peut-être pas de votre faute ! Le point de terminaison status_url s'appuie sur les informations reçues des opérateurs téléphoniques. Les données fournies varient d'un pays à l'autre et même d'un opérateur à l'autre. Vous pouvez tester cela en essayant des numéros de téléphone de différents fournisseurs de réseau.

Comment créer un Chatbot SMS de basculement

Vous devez maintenant créer un deuxième agent. Dans cet exemple, nous utiliserons le SMS comme méthode de basculement, mais vous pouvez également utiliser WhatsApp ou HTTP de la même manière. Il y a trois options importantes pour notre agent, sélectionnez :

  • Type : SMS

  • Modèle : Partir de zéro

  • Événement : Sortie

Notre agent SMS sera assez simple. Ajoutez 2 nœuds :

  1. A Envoyer un SMS avec le texte "Bonjour, nous avons tenté de vous appeler !"

    • Le champ "To" doit contenir le paramètre système $SENDER_PHONE_NUMBER, qui prendra sa valeur dans la requête que nous enverrons à Studio dans la section suivante.

    • Le champ "From" doit être remplacé par le $AGENT_PHONE_NUMBER.

  2. A Envoyer un courriel que vous pouvez configurer pour votre courriel personnel avec l'objet et le message de votre choix.

Simple SMS Agent in AI StudioSimple SMS Agent in AI Studio

Mais comment cet agent sera-t-il déclenché ? Vous l'avez deviné ! Par le biais d'une requête POST similaire à celle de notre agent Voice. Cette requête POST viendra de l'intérieur de notre application node. Pour ce faire, nous aurons besoin du paquetage axios. Arrêtez donc votre serveur et installez axios :

npm i axios

Ensuite, vous devrez mettre à jour votre fichier app.js. Nous aurons besoin de requérir le paquet axios, de préparer notre demande de SMS sortant avec les en-têtes et les données nécessaires, puis déclencher la demande une fois que nous avons reçu le statut de notre agent Voice. Vous pouvez voir à quoi ressemble le code final :

// app.js

const express = require('express');
const bodyParser = require('body-parser');
const axios = require('axios');

const url = 'https://studio-api-eu.ai.vonage.com/messaging/conversation';
const data = {
  "to": "DESTINATION_NUMBER",
  "agent_id": "YOUR_AGENT_ID",
  "channel": "sms"
  // optional to pass status_url
  // "status_url": "string"
}

const headers = {
  'Content-Type': 'application/json',
  'X-Vgai-Key': 'YOUR_VGAI_KEY',
};

const app = express();
const port = 3000;

// Use bodyParser middleware to parse JSON requests
app.use(bodyParser.json());

// Handle POST requests to the root endpoint
app.post('/', (req, res) => {
  axios.post(url, data, { headers })
    .then(response => {
    
    })
    .catch(error => {
      console.error('Error:', error);
    });

  // Send a response back to the client
  res.status(200).send('POST request received successfully');
});

app.get('/', (req, res) => {
  // Send a response back to the client
  res.status(200).send('GET request received successfully');
});


// Start the server
app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});

Et c'est tout ! Exécutez la demande du facteur, ignorez l'appel et vous devriez recevoir un texte sur votre téléphone et un courriel dans votre boîte de réception ! C'est pas mal, non ?

Notez le agent_id ici doit être l'ID de votre agent SMS sortant ; le deuxième agent que vous avez créé.

Conclusion

Dans ce tutoriel, nous avons abordé la façon de construire un chatbot de téléphonie sortante à l'aide d'AI Studio de Vonage et de le déclencher à l'aide d'une requête POST. Nous avons également exploré comment créer une application Node pour gérer un appel qui échoue et envoyer un message de suivi par SMS ou par e-mail. En suivant les étapes décrites dans ce tutoriel, vous pouvez créer une expérience client transparente qui s'adapte aux préférences des consommateurs modernes.

Nous voulons savoir comment vous appréciez (ou détestez) AI Studio ! N'hésitez pas à me contacter dans notre Communauté des développeurs Slack ou sur X, anciennement connu sous le nom de Twitter. Cet article a été inspiré par une question posée dans notre Slack, alors qui sait ? Peut-être que mon prochain article de blog sera inspiré par vous !

Ressources complémentaires

Partager:

https://a.storyblok.com/f/270183/384x384/e4e7d1452e/benjamin-aronov.png
Benjamin AronovDéfenseur des développeurs

Benjamin Aronov est un défenseur des développeurs chez Vonage. C'est un bâtisseur de communauté qui a fait ses preuves, avec une formation en Ruby on Rails. Benjamin apprécie les plages de Tel Aviv, où il vit. Sa base à Tel Aviv lui permet de rencontrer et d'apprendre de certains des meilleurs fondateurs de startups du monde. En dehors de la technologie, Benjamin aime voyager à travers le monde à la recherche du parfait pain au chocolat.