
Partager:
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.
Suivi par SMS des appels sortants avec Vonage et Zapier
Temps de lecture : 9 minutes
SMS Follow Up ExampleDans un article précédent, "Passer des appels téléphoniques à partir de Google Sheets", j'ai montré à quel point il était facile de passer des appels sortants sans avoir besoin d'un serveur ou d'une application autonome. Tout ce dont vous aviez besoin, c'était d'une Google Sheet contenant des contacts et d'un agent AI Studio. Dans un autre article, " Construire un agent Voice résilient : Guide des systèmes de basculement," j'ai montré comment vous pouviez déclencher un SMS de suivi si votre appel sortant n'est pas pris en charge.
Cependant, je ne pensais pas que quelqu'un les combinerait nécessairement ! Grâce à Alice sur le Slack de la communauté Vonage, j'ai eu tort. Le problème était que l'article sur l'agent vocal résilient s'appuyait sur un serveur Node. Mais qu'en est-il si vous voulez construire une solution entièrement sans code / à faible code comme Alice ? Vous avez de la chance car c'est ce que nous allons faire dans cet article !
Ce tutoriel démontrera comment vous pouvez utiliser Zapier pour connecter un agent vocal sortant à un agent de suivi SMS sortant en n'utilisant aucun code !
Conditions préalables
Compte API Vonage
2 Numéros virtuels Vonage - Louez 1 numéro pour chaque agent virtuel
Compte Google Sheets : S'inscrire à Google
Zapier Account : S'inscrire à Zapier
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 Voicebot sortant
Pour créer votre agent, suivez les instructions figurant dans la documentation de documentation AI Studio. Vous devez sélectionner trois options importantes :
Type : Téléphonie
Modèle : Partir de zéro
Événement : Sortie
La fonctionnalité de votre agent sera très simple : un seul appel robotisé pour transmettre vos vœux d'anniversaire. Vous utiliserez un seul nœud Speak et un nœud de nœud de fin de conversation.
AI Studio Bot Overview
Comment créer des paramètres personnalisés dans AI Studio ?
Dans votre SpeakNode, vous aurez besoin de 2 paramètres. Ouvrez donc le panneau Propriétés sur le côté gauche et choisissez Paramètres. Sous Paramètres personnalisés créez les entrées suivantes:
nom - @sys.any
message - @sys.any
Assurez-vous que les paramètres ont été enregistrés et ouvrez votre nœud Speak. À l'intérieur du nœud, ajoutez le message suivant. Utilisez vos paramètres en tapant le $ suivi du nom du paramètre. Par exemple, pour utiliser la valeur de votre nom, vous devez taper $name.
<speak><break time='1s' /> <p> Dear $name</p> <p>Your loving friend YOUR_NAME has the following birthday message for you: $message </p> <p>Have a wondeful birthday!</p></speak>Vous remarquerez que vous utilisez langage de balisage de la synthèse vocale pour ajouter une pause d'une seconde et créer différents paragraphes pour que l'agent s'exprime plus naturellement.
Cliquez sur Enregistrer et quitter.
Comment connecter votre agent virtuel à un numéro virtuel
La dernière étape consiste à connecter votre agent à un numéro virtuel. Ce guide explique comment publier votre agent.
Comment créer une base de données Google Sheets
Ouvrez Google Sheets et cliquez sur Feuille de calcul vierge. Donnez à votre feuille de calcul un titre agréable, comme Messages d'anniversaire. Nommez également votre feuille anniversaires.
Votre feuille comportera 4 colonnes d'en-têtes :
nom
numéro de téléphone
anniversaire
message
Ajoutez au moins les données d'un ami, mais pour obtenir une logique complète, ajoutez-en environ 10.
Google Sheet Sample Data
Pour numéro_de_téléphoneajoutez votre numéro ou un autre numéro de téléphone auquel vous pouvez accéder pour recevoir des SMS à des fins de test. Les numéros de téléphone doivent être au format international, sans + ni 00. Par exemple, un numéro américain serait 15552345678
Veillez à ce que votre numéro_de_téléphone soit formatée en "texte brut", sinon vous aurez des problèmes avec les données.
Veillez à ce que cet anniversaire est formaté pour être de la forme Date de type Date. Par exemple, 9/26/2008.
Select Plain Text
Comment convertir votre feuille de calcul Google en JSON
Vous pouvez maintenant transformer votre feuille de calcul Google en une application programmable ! Ouvrez l'onglet Extensions et sélectionnez Apps Scripts. Apps Scripts vous permet d'écrire du code au-dessus des applications de l'espace de travail Google, telles que Google Sheets ou Google Docs, afin d'automatiser et d'étendre leurs fonctionnalités.
Tout d'abord, donnez à votre nouveau projet un titre agréable comme Messages API d'anniversaire. Effacez le code dans code.gs et remplacez-le par ce qui suit :
function sendBirthdayCall() {
// Open the spreadsheet by name
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("birthdays");
// Get today's date
var today = new Date();
var todayDay = today.getDate();
var todayMonth = today.getMonth() + 1;
// Get all the data from the sheet
var data = sheet.getDataRange().getValues();
// Iterate through each row to check for birthdays
for (var i = 1; i < data.length; i++) {
var name = data[i][0];
var phoneNumber = data[i][1];
var birthday = new Date(data[i][2]);
var birthdayDay = birthday.getDate();
var birthdayMonth = birthday.getMonth() + 1;
var message = data[i][3];
// Check if today is the person's birthday
if (birthdayDay === todayDay && birthdayMonth === todayMonth) {
// Prepare the JSON payload
var payload = {
"name": name,
"phone_number": phoneNumber,
"birthday": birthday.toISOString(),
"message": message
};
const payload_string = JSON.stringify(payload)
// Send POST request to AI Studio
sendRequest(payload);
}
}
}Ce code crée un appel sendBirthdayCall qui recherche dans notre feuille de calcul les données des anniversaires dans notre feuille de calcul. Elle parcourt ensuite chaque ligne et vérifie si l'anniversaire de la personne a lieu aujourd'hui en comparant les valeurs du jour et du mois. Si c'est le cas, elle crée l'objet payload qui contient les informations relatives à l'anniversaire du garçon ou de la fille. Il transmet ensuite ces informations à la fonction sendRequest qui enverra les informations relatives à l'anniversaire à AI Studio.
Comment envoyer une requête POST à un script d'application ?
Vous allez maintenant créer votre sendRequest pour déclencher votre agent virtuel sortant. Vous pouvez coller le code suivant sous la fonction sendBirthdayCall() le code suivant.
Pour que ce code fonctionne, vous devez mettre à jour 4 valeurs :
aiStudioUrl
Le point de terminaison dépend de la région que vous avez sélectionnée pour votre agent :
Pour les agents de l'UE →https://studio-api-eu.ai.vonage.com/telephony/make-call
Pour les agents américains --> https://studio-api-us.ai.vonage.com/telephony/make-call
2. Clé X-Vgai
Ajoutez votre clé d'API AI Studio. Vous pouvez trouver la clé X-Vgai-Key en haut à droite de votre AI Studio. Cliquez sur l'icône "user", puis sur "Generate API Key".
3. agent_id
Ajouter l'élément id de votre agent Vonage AI Studio. Vous le trouverez dans les détails de l'agent.
4. Status_url
Laissez le champ status_url vide pour l'instant. Elle sera mise à jour avec l'URL de Zapier.
function sendRequest(payload) {
// Replace with either the US or EU URL
var url = '';
// Define headers for the POST request
var headers = {
'Content-Type': 'application/json',
'X-Vgai-Key': '' // Replace with your key
};
// Define the body for the POST request
var body = {
"to": payload.phone_number,
"agent_id": "", // Replace with your agent ID
"status_url": "", // Replace with webhook URL from Zapier
"session_parameters": [
{
"name": "name",
"value": payload.name
},
{
"name": "message",
"value": payload.message
}
]
};
// Make sure to set proper options for your API request (e.g., headers, authentication)
var options = {
'method': 'post',
'headers': headers,
'payload': JSON.stringify(body)
};
// Send the POST request
var response = UrlFetchApp.fetch(url, options);
// Add a two-second delay before sending the next request
Utilities.sleep(2000);
// Log the response (you can do more error handling here)
Logger.log(response.getContentText());
}Vous pouvez maintenant tester le fonctionnement de votre code en cliquant sur Exécuter.
Pour le test, assurez-vous qu'au moins un des contacts a un anniversaire qui tombe le jour même et un numéro de téléphone auquel vous pouvez accéder (comme votre numéro personnel).
Cool, nous avons donc un agent automatisé pour les appels sortants ! Ensuite, nous devons créer l'agent de suivi SMS.
Comment créer un chatbot de suivi par SMS ?
Vous devez maintenant créer un deuxième agent. Dans cet exemple, nous utiliserons 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 :
A Envoyer un SMS avec le texte "Hey, j'ai essayé de t'appeler pour te souhaiter un joyeux anniversaire. J'espère que tu passeras une journée fantastique !"
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.
(Facultatif) A Envoyer un courriel que vous pouvez configurer pour votre courrier électronique personnel avec a sujet et un message de votre choix
Simple SMS Agent in AI Studio
Enfin, publiez votre deuxième agent comme vous l'avez fait précédemment avec votre deuxième numéro Vonage.
Comment utiliser Zapier pour connecter deux agents Outbound
Nous allons utiliser Zapier pour connecter nos deux agents en seulement quatre étapes :
Attraper le Webhook Raw à partir d'AI Studio
Nettoyer les données JSON entrantes
Vérifier si l'état de l'appel est "répondu", si ce n'est pas le cas :
Envoyer une demande POST pour déclencher le suivi par SMS
Comment capturer un Webhook brut dans Zapier
Tout d'abord, créez un nouveau Zap vierge. Pour votre application de déclenchement, sélectionnez Webhooks par Zapier. Pour l'événement déclencheur, sélectionnez Catch Raw Hook.
Select Catch Raw Hook for your Zap Trigger
Lorsque vous cliquez sur continuer, Webhook crée une URL webhook. Ce point de terminaison est le point de terminaison "status_url" que nous avons laissé vide dans notre demande Apps Scripts. Vous pouvez maintenant remplacer la chaîne vide par l'URL de votre webhook Zapier.
Zapier Webhook Endpoint used for status_url
Votre script de mise à jour dans Google Sheets devrait ressembler à ceci :
Updated Apps Scripts code to include Zapier Webhook URL
Vous pouvez désormais appuyer sur Exécuter dans Google Sheets. Mais cette fois, ignorez ou rejetez l'appel. Cela déclenchera l'envoi par AI Studio d'une demande au Webhook de Zapier. Vous pouvez ensuite retourner sur Zapier et tester le déclencheur. Vous devriez voir un enregistrement renvoyé. Lorsque vous examinez l'enregistrement, vous voyez un tas de données. Cela peut sembler effrayant, mais ne vous inquiétez pas ; nous allons nettoyer cela ensuite.
Test results for trigger test
Comment nettoyer la charge utile JSON dans Zapier
Dans la dernière étape, nous avons renvoyé des données non formatées à partir de notre requête POST. Vous avez peut-être remarqué toutes les bonnes choses à l'intérieur du corps brut.
Si vous regardez à l'intérieur du corps brutvous verrez un attribut appelé statut. Cette information provenant d'AI Studio nous permet de savoir si l'appel a été pris ou non. Pour l'obtenir, nous allons ajouter le code Code by Zapier action.
Add the Code by Zapier as the second step in your ZapPour l'"Événement d'action", sélectionnez Exécuter Javascript. Nous utiliserons ce bloc de code pour nettoyer les données brutes et les transformer en JSON utilisable.
Pour les données d'entrée, créez une nouvelle clé appelée Payload. Pour la valeur, cliquez sur le signe + et sélectionnez Corps brut.
Ensuite, pour le code personnalisé, ajoutez ce qui suit :
let Payload = JSON.parse(inputData.Payload.replace(/%g/,""));
output = [{Payload}];Ce code nettoie les données d'entrée et les analyse en un objet JSON. De cette manière, nous pouvons utiliser les clés et les valeurs pour la logique dans les étapes suivantes.
Transform the Raw Body into a Javascript Object called Payload
Lorsque vous testerez ce bloc, vous verrez que vous avez maintenant accès aux champs de données appelés "Payload From" (votre numéro d'agent vocal), "Payload To" (votre numéro de téléphone de test) et, plus important encore, "Payload Status".
Maintenant que nous avons accès à la valeur de l'état de la charge utile, nous devons créer une condition.
Comment créer des conditions avec Zapier Filter Action
Ajoutez une autre étape dans votre Zap, et ajoutez la fonction Filtrer par Zapier Action. Créez la condition suivante : Ne continuez que si : Statut de la charge utile ne correspond pas exactement à a répondu
Create the condition to filter Payload Status
Le Zap se poursuivra dans tous les cas, sauf si le statut de la charge utile est égal à "répondu". Nous pouvons donc maintenant ajouter notre dernière action : la connexion à notre agent SMS de suivi !
Comment créer une requête POST avec Zapier
Dans notre déclencheur, nous avons utilisé Zapier pour écouter les requêtes POST provenant d'AI Studio. Mais maintenant, nous allons utiliser Zapier pour envoyer une requête POST à AI Studio et déclencher notre suivi par SMS.
Sélectionnez à nouveau Webhooks by Zapier pour l'événement App. Cette fois, pour l'événement Action, choisissez POST.
Select POST webhook action
Cliquez sur continuer pour configurer la requête POST. Vous devez configurer six champs : l'URL et le type de charge utile, trois champs dans la section Données et un champ dans les En-têtes.
URL
Pour l'URL, vous devez vérifier si votre agent est basé aux États-Unis ou dans l'Union européenne. Ajoutez l'URL correspondante :
https://studio-api-eu.ai.vonage.com/messaging/conversation pour l'UE
https://studio-api-us.ai.vonage.com/messaging/conversation pour les États-Unis
Type de charge utile
Changez le type de charge utile en json.
Données
Ajoutez les 3 champs suivants avec les valeurs correspondantes :
Clé : à
Valeur : Charge utile versClé : agent_id
Valeur : l'ID de votre agent SMS sortant ; le deuxième agent que vous avez crééClé : canal
Valeur : sms
En-têtes
Ajoutez le champ et la valeur suivants :
Clé : X-Vgai-Key
Valeur : votre clé d'API AI Studio
POST request properly formatted
Vous pouvez alors tester cette étape et recevoir le SMS sur votre téléphone. Si tout a fonctionné, publiez votre Zap, vous avez terminé !
Conclusion
Et voilà - une solution téléphonique et SMS sortants totalement sans code / à faible code ! Avez-vous réussi à le faire fonctionner ? Avez-vous rencontré des problèmes ? Avez-vous d'autres plateformes low-code préférées en dehors de Zapier et Google Sheets ? Comme je l'ai déjà dit, ce tutoriel a été inspiré par une question de la communauté sur notre site Communauté Slack. Rejoignez-moi dans le canal #ai-studio et faites-moi savoir comment vous avez trouvé ce tutoriel. Vous pouvez également suivre VonageDev sur X pour les dernières nouvelles des développeurs de Vonage.
Ressources complémentaires
Partager:
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.
