
Teilen Sie:
Benjamin Aronov ist ein Entwickler-Befürworter bei Vonage. Er ist ein bewährter Community Builder mit einem Hintergrund in Ruby on Rails. Benjamin genießt die Strände von Tel Aviv, das er sein Zuhause nennt. Von Tel Aviv aus kann er einige der besten Startup-Gründer der Welt treffen und von ihnen lernen. Außerhalb der Tech-Branche reist Benjamin gerne um die Welt auf der Suche nach dem perfekten Pain au Chocolat.
SMS-Follow-ups für ausgehende Anrufe mit Vonage und Zapier
Lesedauer: 8 Minuten
SMS Follow Up ExampleIn einem früheren Artikel, "Telefonanrufe aus Google Sheets" habe ich gezeigt, wie einfach es ist, ausgehende Anrufe zu tätigen, ohne einen Server oder eine eigenständige Anwendung zu benötigen. Alles, was Sie brauchten, war ein Google Sheet mit Kontakten und einen AI Studio-Agenten. In einem separaten Artikel, "Aufbau eines ausfallsicheren Voice-Agenten: Ein Leitfaden für Failover-Systeme," habe ich gezeigt, wie Sie eine Folge-SMS auslösen können, wenn Ihr ausgehender Anruf nicht beantwortet wird.
Ich hätte jedoch nicht gedacht, dass jemand sie unbedingt kombinieren würde! Dank Alice auf dem Vonage Community Slack wurde ich eines Besseren belehrt. Das Problem war, dass der Artikel über den Resilient Voice Agent auf einem Node-Server basierte. Aber was ist, wenn man eine komplett no-code / low-code Lösung wie Alice bauen möchte? Sie haben Glück, denn genau das werden wir in diesem Artikel tun!
In diesem Tutorial wird gezeigt, wie Sie mit Zapier einen Voice-Agenten für ausgehende Anrufe mit einem SMS-Follow-up-Agenten für ausgehende Anrufe verbinden können - ganz ohne Code!
Voraussetzungen
Vonage API-Konto
2 Virtuelle Numbers von Vonage - Miete 1 Number für jeden virtuellen Agenten
Google Sheets Account: Für Google anmelden
Zapier Account: Für Zapier anmelden
Vonage API-Konto
Um dieses Tutorial durchzuführen, benötigen Sie ein Vonage API-Konto. Wenn Sie noch keines haben, können Sie sich noch heute anmelden und mit einem kostenlosen Guthaben beginnen. Sobald Sie ein Konto haben, finden Sie Ihren API-Schlüssel und Ihr API-Geheimnis oben auf dem Vonage-API-Dashboard.
Wie man einen Outbound-Voicebot erstellt
Um Ihren Agenten zu erstellen, folgen Sie den Anweisungen in der AI Studio Dokumentation. Es gibt drei wichtige Optionen, die Sie auswählen müssen:
Art: Telefonie
Vorlage: Von Grund auf neu beginnen
Veranstaltung: Ausgehend von
Die Funktionalität Ihres Agenten ist ganz einfach: ein einziger Roboteranruf mit Ihren Geburtstagsglückwünschen. Sie verwenden einen einzigen Sprechen-Knoten und einen Gesprächsende-Knoten.
AI Studio Bot Overview
So erstellen Sie benutzerdefinierte Parameter in AI Studio
Innerhalb Ihres SpeakNode benötigen Sie 2 Parameter. Öffnen Sie also das Eigenschaften-Panel auf der linken Seite und wählen Sie Parameter. Unter Benutzerdefinierte Parameter legen Sie die folgenden Einträge an:
Name - @sys.any
Nachricht - @sys.any
Vergewissern Sie sich, dass die Parameter gespeichert wurden und öffnen Sie Ihren Speak Node. Fügen Sie innerhalb des Knotens die folgende Nachricht ein. Verwenden Sie Ihre Parameter, indem Sie das $ gefolgt vom Parameternamen eingeben. Um zum Beispiel Ihren Namenswert zu verwenden, geben Sie $name ein.
<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>Sie werden feststellen, dass Sie Folgendes verwenden Sprachsynthese-Markup Language verwenden, um eine einsekündige Pause einzufügen und verschiedene Absätze zu erstellen, damit der Agent natürlicher sprechen kann.
Klicken Sie auf Speichern & Beenden.
So verbinden Sie Ihren virtuellen Agenten mit einer virtuellen Nummer
Der letzte Schritt besteht darin, Ihren Agenten mit einer virtuellen Nummer zu verbinden. Dieser Leitfaden erklärt, wie Sie Ihren Agenten veröffentlichen.
Wie man eine Google Sheets-Datenbank erstellt
Öffnen Sie Google Sheets und klicken Sie auf Blank Spreadsheet. Geben Sie Ihrem Arbeitsblatt einen schönen Titel wie Geburtstagsnachrichten. Nennen Sie Ihr Blatt außerdem Geburtstage.
Ihr Blatt wird 4 Spaltenüberschriften haben:
Name
Telefon_Nummer
Geburtstag
Nachricht
Fügen Sie mindestens die Daten eines Freundes hinzu, aber um die volle Logik zu sehen, fügen Sie etwa 10 hinzu.
Google Sheet Sample Data
Für Telefonnummerfügen Sie Ihre Nummer oder eine andere Telefonnummer ein, unter der Sie zu Testzwecken SMS empfangen können. Telefonnummern sollten im internationalen Format ohne + oder 00 angegeben werden. Eine US-Nummer wäre zum Beispiel 15552345678
Stellen Sie sicher, dass Ihre Telefonnummer Spalte auf "Klartext" formatiert ist, sonst werden Sie später Probleme mit den Daten haben.
Sicherstellen, dass Geburtstag so formatiert ist, dass es ein Datum Typ ist. Z.B. 26.9.2008.
Select Plain Text
Wie Sie Ihr Google Sheet in JSON konvertieren
Jetzt verwandeln Sie Ihr Google Spreadsheet in eine programmierbare App! Öffnen Sie die Registerkarte Erweiterungen und wählen Sie Apps Scripts. Mit Apps Scripts können Sie Code auf Google Workspace-Anwendungen wie Google Sheets oder Google Docs schreiben, um deren Funktionen zu automatisieren und zu erweitern.
Geben Sie Ihrem neuen Projekt zunächst einen schönen Titel wie Birthday Messages API. Löschen Sie den Code in code.gs und ersetzen Sie ihn durch den folgenden:
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);
}
}
}Dieser Code erzeugt eine sendBirthdayCall Funktion, die unser Arbeitsblatt nach den Geburtstagen Blatt. Sie durchläuft dann jede Zeile und prüft, ob die Person heute Geburtstag hat, indem sie die Werte für Tag und Monat vergleicht. Ist dies der Fall, erstellt sie das Payload-Objekt, das die Informationen des Geburtstagskindes enthält. Diese Informationen werden dann an die Funktion sendRequest Funktion, die die Geburtstagsdaten an AI Studio sendet.
So senden Sie eine Apps Script POST-Anfrage
Sie erstellen nun Ihre sendRequest Funktion zum um Ihren Outbound Virtual Agent auszulösen. Sie können den folgenden Code unterhalb der Funktion sendBirthdayCall() Abschnitt einfügen.
Damit dieser Code funktioniert, müssen Sie 4 Werte aktualisieren:
aiStudioUrl
Der Endpunkt hängt von der Region ab, die Sie für Ihren Agenten ausgewählt haben:
Für EU-Agenten →.https://studio-api-eu.ai.vonage.com/telephony/make-call
Für US-Agenten --> https://studio-api-us.ai.vonage.com/telephony/make-call
2. X-Vgai-Schlüssel
Fügen Sie Ihren AI Studio API Schlüssel hinzu. Sie finden den X-Vgai-Schlüssel oben rechts in Ihrem AI Studio Canvas. Klicken Sie auf das Symbol "Benutzer" und dann auf "API-Schlüssel generieren".
3. agent_id
Hinzufügen der id Ihres Vonage AI Studio Agenten ein. Diese finden Sie unter Agentendetails.
4. Status_url
Lassen Sie die status_url vorerst leer. Diese wird mit der URL von Zapier aktualisiert.
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());
}Sie können nun testen, ob Ihr Code funktioniert, indem Sie auf Ausführen klicken.
Vergewissern Sie sich zu Testzwecken, dass mindestens einer der Kontakte am aktuellen Tag Geburtstag hat und eine Telefonnummer, die Sie erreichen können (z. B. Ihre persönliche Nummer).
Cool, wir haben also einen automatisierten Outbound-Agenten! Als Nächstes müssen wir den SMS-Nachfassagenten erstellen.
Wie man einen Follow-up-SMS-Chatbot erstellt
Nun müssen Sie einen zweiten Agenten erstellen. In diesem Beispiel werden wir SMS als Failover-Methode verwenden, Sie können aber auch WhatsApp oder HTTP auf ähnliche Weise verwenden. Es gibt drei wichtige Optionen für unseren Agenten, wählen Sie:
Art: SMS
Vorlage: Von Grund auf neu beginnen
Veranstaltung: Ausgehend von
Unser SMS-Agent wird recht einfach sein. Fügen Sie 2 Knotenpunkte hinzu:
A SMS senden Knoten mit dem Text "Hey, ich habe versucht, dich anzurufen, um dir zum Geburtstag zu gratulieren. Ich hoffe, du hast einen fantastischen Tag!"
Das Feld "An" sollte auf den Systemparameter $SENDER_PHONE_NUMBER gesetzt werden, der seinen Wert aus der Anfrage erhält, die wir im nächsten Abschnitt an Studio senden werden.
Das Feld "Von" sollte durch die $AGENT_PHONE_NUMBER ersetzt werden.
(Fakultativ) A E-Mail senden Knoten, den Sie für Ihre persönliche E-Mail konfigurieren können, mit a Betreff und Nachricht Ihrer Wahl
Simple SMS Agent in AI Studio
Veröffentlichen Sie schließlich Ihren zweiten Agenten, wie Sie es zuvor mit Ihrer zweiten Vonage-Nummer getan haben.
Wie man mit Zapier zwei Outbound-Agenten verbindet
Wir werden Zapier verwenden, um unsere beiden Agenten in nur vier Schritten zu verbinden:
Fangen Sie den Raw Webhook von AI Studio ab
Bereinigung der eingehenden JSON-Daten
Prüfen Sie, ob der Anrufstatus "beantwortet" wurde, falls nicht:
Senden Sie eine POST-Anfrage, um das SMS-Follow-up auszulösen
Wie man einen Raw Webhook in Zapier abfängt
Erstellen Sie zunächst eine neuen leeren Zap. Wählen Sie für Ihre Trigger-App Webhooks von Zapier. Wählen Sie für das Auslöseereignis Catch Raw Hook.
Select Catch Raw Hook for your Zap Trigger
Wenn Sie auf "Weiter" klicken, erstellt Webhook eine Webhook-URL. Dieser Endpunkt ist der Endpunkt "status_url", den wir in unserer Apps Scripts-Anfrage leer gelassen haben. Sie können nun die leere Zeichenfolge durch Ihre Zapier-Webhook-URL ersetzen.
Zapier Webhook Endpoint used for status_url
Ihr Update-Skript in Google Sheets sollte in etwa so aussehen:
Updated Apps Scripts code to include Zapier Webhook URL
Sie können nun in Google Sheets auf Ausführen klicken. Ignorieren oder verwerfen Sie den Aufruf diesmal jedoch. Dadurch wird AI Studio veranlasst, eine Anfrage an den Zapier-Webhook zu senden. Dann können Sie zu Zapier zurückkehren und den Auslöser testen. Sie sollten sehen, dass ein Datensatz zurückgegeben wird. Wenn Sie den Datensatz untersuchen, sehen Sie eine Reihe von Daten. Das sieht vielleicht unheimlich aus, aber keine Sorge, wir werden das im nächsten Schritt bereinigen.
Test results for trigger test
Aufräumen der JSON-Nutzlast in Zapier
Im letzten Schritt haben wir unformatierte Daten aus unserer POST-Anfrage zurückgegeben. Sie haben vielleicht bemerkt, dass all die guten Dinge innerhalb des Rohkörper.
Wenn Sie in das Innere des Rohkörperansehen, sehen Sie ein Attribut namens Status. Diese Information von AI Studio verrät uns, ob der Anruf beantwortet wurde oder nicht. Um sie zu erhalten, fügen wir den Code von Zapier Aktion hinzu.
Add the Code by Zapier as the second step in your ZapWählen Sie für das Ereignis "Aktion" die Option Javascript ausführen. Mit diesem Codeblock bereinigen wir die Rohdaten und wandeln sie in brauchbares JSON um.
Erstellen Sie für die Eingabedaten einen neuen Schlüssel namens Nutzlast. Klicken Sie für den Wert auf das + Zeichen und wählen Sie Rohkörper.
Fügen Sie dann für den benutzerdefinierten Code Folgendes hinzu:
let Payload = JSON.parse(inputData.Payload.replace(/%g/,""));
output = [{Payload}];Dieser Code bereinigt die inputData und parst sie in ein JSON-Objekt. Auf diese Weise können wir die Schlüssel und Werte für die Logik in den folgenden Schritten verwenden.
Transform the Raw Body into a Javascript Object called Payload
Wenn Sie diesen Block testen, werden Sie sehen, dass Sie nun Zugriff auf die Datenfelder "Payload From" (Ihre Voice Agent Nummer), "Payload To" (Ihre Testtelefonnummer) und vor allem "Payload Status" haben.
Da wir nun Zugriff auf den Wert von Payload Status haben, müssen wir eine Bedingung erstellen.
Erstellen von Bedingungen mit Zapier Filter Action
Fügen Sie einen weiteren Schritt in Ihrem Zap hinzu, und fügen Sie die Filter nach Zapier Aktion. Erstellen Sie die folgende Bedingung: Nur fortfahren, wenn: Nutzlast-Status nicht genau übereinstimmt beantwortet
Create the condition to filter Payload Status
Der Zap wird für alle Fälle fortgesetzt, es sei denn, der Payload-Status ist gleich "beantwortet". Jetzt können wir unsere letzte Aktion hinzufügen: die Verbindung zu unserem SMS-Folgeagenten!
So erstellen Sie eine POST-Anfrage mit Zapier
In unserem Trigger haben wir Zapier verwendet, um auf POST-Anfragen von AI Studio zu warten. Aber jetzt werden wir Zapier verwenden, um eine POST-Anfrage zu senden an AI Studio zu senden und unsere SMS-Nachverfolgung auszulösen.
Wählen Sie erneut Webhooks von Zapier für das Ereignis App. Wählen Sie dieses Mal für das Ereignis Action die Option POST.
Select POST webhook action
Klicken Sie auf Weiter, um die POST-Anfrage zu konfigurieren. Hier müssen Sie sechs Felder konfigurieren: die URL und den Payload-Typ, drei Felder im Abschnitt Daten und ein Feld in den Kopfzeilen.
URL
Bei der URL müssen Sie prüfen, ob Ihr Agent in den USA oder in der EU ansässig ist. Fügen Sie die entsprechende URL hinzu:
https://studio-api-eu.ai.vonage.com/messaging/conversation für die EU
https://studio-api-us.ai.vonage.com/messaging/conversation für US
Nutzlast Typ
Ändern Sie den Nutzlasttyp in json.
Daten
Fügen Sie die folgenden 3 Felder mit den entsprechenden Werten hinzu:
Schlüssel: .
Wert: Nutzlast bisSchlüssel: agent_id
Wert: die ID Ihres Agenten für ausgehende SMS; der zweite Agent, den Sie erstellt habenSchlüssel: Kanal
Wert: sms
Kopfzeilen
Fügen Sie das folgende Feld und den folgenden Wert hinzu:
Schlüssel: X-Vgai-Key
Wert: Ihr AI Studio API-Schlüssel
POST request properly formatted
Sie können diesen Schritt dann testen und die SMS auf Ihrem Telefon empfangen. Wenn alles funktioniert hat, veröffentlichen Sie Ihren Zap, und Sie sind fertig!
Schlussfolgerung
Und das war's - eine völlig codefreie / codearme Lösung für ausgehende Anrufe und SMS! Konnten Sie sie zum Laufen bringen? Hatten Sie irgendwelche Probleme? Haben Sie andere bevorzugte Low-Code-Plattformen neben Zapier und Google Sheets? Wie ich schon sagte, war die Inspiration für dieses Tutorial eine Frage aus der Community auf unserem Gemeinschaft Slack. Schließen Sie sich mir im Kanal #ai-studio an und lassen Sie mich wissen, wie Sie dieses Tutorial gefunden haben. Sie können auch folgen VonageDev auf X um die neuesten Nachrichten für Vonage-Entwickler zu erhalten.
Zusätzliche Ressourcen
Teilen Sie:
Benjamin Aronov ist ein Entwickler-Befürworter bei Vonage. Er ist ein bewährter Community Builder mit einem Hintergrund in Ruby on Rails. Benjamin genießt die Strände von Tel Aviv, das er sein Zuhause nennt. Von Tel Aviv aus kann er einige der besten Startup-Gründer der Welt treffen und von ihnen lernen. Außerhalb der Tech-Branche reist Benjamin gerne um die Welt auf der Suche nach dem perfekten Pain au Chocolat.
