https://a.storyblok.com/f/270183/1368x665/43e8c8dc51/zapier_voice-sms.png

VonageとZapierによるアウトバウンドコールのSMSフォローアップ

最終更新日 December 5, 2024

所要時間:1 分

SMS Follow Up ExampleSMS Follow Up Example以前の記事 「Googleシートから電話をかける"では、サーバーやスタンドアロンアプリケーションを必要とせずに、簡単に発信できることを紹介しました。必要なのは、連絡先のGoogle SheetとAI Studioエージェントだけでした。別の記事 「回復力のあるVoiceエージェントの構築:フェイルオーバーシステムガイド," アウトバウンドコールに応答しなかった場合、フォローアップSMSをトリガーする方法を紹介しました。

しかし、誰かが必ずしもそれらを組み合わせるとは思っていなかった!Vonage Community SlackのAliceのおかげで、私は間違っていたことが証明された。問題は、Resilient Voice Agentの記事がNodeサーバーに依存していることでした。しかし、もしあなたがAliceのような完全なノーコード/ローコード・ソリューションを構築したい場合はどうすればいいのでしょうか?この記事でそれを実現するので、あなたはラッキーです!

このチュートリアルでは、Zapierを使用して、コードなしで発信ボイスエージェントと発信SMSフォローアップエージェントを接続する方法を紹介します!

前提条件

アウトバウンド・ボイスボットの作り方

エージェントを作成するには、以下の手順に従ってください。 AI Studio ドキュメント.選択すべき3つの重要なオプションがあります:

  • タイプテレフォニー

  • テンプレートゼロから始める

  • イベントアウトバウンド

あなたのエージェントの機能は非常にシンプルです。使用するのは スピークノード会話終了ノード.

AI Studio Bot OverviewAI Studio Bot Overview

AI Studioでカスタムパラメータを作成する方法

SpeakNodeの内部では、2つの パラメータが必要です。.そこで、左側のプロパティパネルを開き、パラメータを選択します。下の カスタムパラメータ で以下のエントリーを作成します。:

  • 名前- @sys.any

  • メッセージ- シスアド

パラメータが保存されていることを確認し、スピーク・ノードを開きます。ノードの中に以下のメッセージを追加します。パラメータを使用するには、$の後にパラメータ名を入力します。例えば、name の値を使用するには、$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>

を使用していることにお気づきだろう。 音声合成マークアップ言語 言語を使っていることに気づくでしょう。

保存して終了」をクリックします。

バーチャルエージェントをバーチャル番号に接続する方法

最後のステップは、エージェントをバーチャル番号に接続することです。このガイドでは エージェントを公開します。

Google Sheetsデータベースの作り方

Google Sheetsを開き、Blank Spreadsheetをクリックします。スプレッドシートに 誕生日メッセージ.また、シートに 誕生日.

シートには4つの列見出しがあります:

  1. 名称

  2. 電話番号

  3. 誕生日

  4. メッセージ

少なくとも1人分のデータを追加するが、完全なロジックを見るには10人分を追加する。

Google Sheet Sample DataGoogle Sheet Sample Data

  • 電話番号 電話番号には、あなたの電話番号か、テスト用にSMSを受信できる別の電話番号を追加してください。電話番号は、+や00を含まない国際形式でなければなりません。例えば、アメリカの電話番号は次のようになります。 15552345678

    • あなたの 電話番号カラムが "Plain text "にフォーマットされていることを確認してください。

    • 誕生日 誕生日日付型であることを確認する。例:2008年9月26日。

Select Plain TextSelect Plain Text

GoogleシートをJSONに変換する方法

これで、Googleスプレッドシートがプログラム可能なアプリに変わります!拡張機能タブを開き、Apps Scriptsを選択します。Applications Scriptsを使えば、Google SheetsやGoogle DocsのようなGoogle Workspaceアプリケーションの上にコードを書いて、その機能を自動化したり拡張したりすることができます。

まず、新しいプロジェクトに次のような素敵なタイトルを付けます。 誕生日メッセージ API.code.gsのコードを消去して、以下のように置き換える:

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

このコードは sendBirthdayCall関数を作成します。 誕生日シートを検索します。そして各行を繰り返し、dayとmonthの値を比較して今日がその人の誕生日かどうかをチェックします。誕生日であれば、その人の情報を含むペイロードオブジェクトを作成します。そして、この情報を sendRequest関数に渡し、誕生日情報を AI Studio に送信します。

Apps スクリプトの POST リクエストの送信方法

これで を作成します。関数を作成します。 関数を作成します。以下のコードを sendBirthdayCall()セクションの下に貼り付けます。

このコードを動作させるには、4つの値を更新する必要がある:

  1. スタジオURL

  • エンドポイントは、エージェントに選択した地域によって異なります:

EUエージェントの場合https://studio-api-eu.ai.vonage.com/telephony/make-call

米国代理店向け https://studio-api-us.ai.vonage.com/telephony/make-call

2.X-Vgai-Key

  • AI Studio API Keyを追加します。 キーは X-Vgai-KeyはAI Studioキャンバスの右上にあります。user "アイコンをクリックし、"Generate API Key "をクリックします。

3. agent_id

  • を追加します。 IDを追加します。これはエージェントの詳細の下にあります。

4.ステータス_url

  • を残します。 status_urlを空白にしておく。これはZapierからのURLで更新される。

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

これで、Runをクリックしてコードが動作することをテストできます。

テストのため、連絡先のうち少なくとも1つは、現在日が誕生日で、アクセス可能な電話番号(個人番号など)であることを確認してください。

自動アウトバウンドエージェントができました!次に、フォローアップSMSエージェントを作成する必要があります。

フォローアップSMSチャットボットの作り方

次に、2つ目のエージェントを作成する必要があります。この例では、SMSをフェイルオーバーとして使用します。,を使用しますが、WhatsAppやHTTPも同様に使用できます。エージェントには3つの重要なオプションがあります:

  • タイプSMS

  • テンプレートゼロから始める

  • イベントアウトバウンド

私たちのSMSエージェントは非常にシンプルです。2つのノードを追加する:

  1. A SMSを送る誕生日おめでとう。素晴らしい一日をお過ごしください。

    • To "フィールドには$SENDER_PHONE_NUMBERシステム・パラメータを設定する必要があります。

    • From "フィールドは$AGENT_PHONE_NUMBERに置き換えてください。

  2. (オプション メール送信ノードを使用し、個人的な電子メールに設定することができます。 a 件名とメッセージ

Simple SMS Agent in AI StudioSimple SMS Agent in AI Studio

最後に、2つ目のVonage番号で前回と同じように2つ目のエージェントを公開する。

Zapierを使用して2つのアウトバウンドエージェントを接続する方法

Zapierを使用して、2つのエージェントを4つのステップで接続します:

  1. AI Studioから生のWebhookをキャッチする

  2. 受信JSONデータのクリーンアップ

  3. コールステータスが「応答済み」であるかどうかを確認する:

  4. POSTリクエストを送信してSMSフォローアップをトリガーする

Zapierで生のWebhookをキャッチする方法

まず 新しい空白のZap.トリガーアプリとして ZapierによるWebhooks.トリガーイベントには、Catch Raw Hookを選択します。

Select Catch Raw Hook for your Zap TriggerSelect Catch Raw Hook for your Zap Trigger

続行をクリックすると、WebhookがWebhook URLを作成します。このエンドポイントは、Apps Scriptsリクエストで空白にした "status_url "エンドポイントです。空の文字列をZapierのWebhook URLに置き換えることができます。

Zapier Webhook Endpoint used for status_urlZapier Webhook Endpoint used for status_url

Google Sheetsの更新スクリプトは次のようになります:

Updated Apps Scripts code to include Zapier Webhook URLUpdated Apps Scripts code to include Zapier Webhook URL

これでGoogle Sheetsで「実行」を押すことができる。しかし今回は、呼び出しを無視するか拒否する。これでAI StudioがZapier Webhookにリクエストを送信する。その後、Zapierに戻ってトリガーをテストすることができる。レコードが返されるはずだ。レコードを調べると、たくさんのデータが表示される。恐ろしく見えるかもしれないが、心配しないでほしい。

Test results for trigger testTest results for trigger test

ZapierでJSONペイロードをクリーンアップする方法

最後のステップでは、POSTリクエストからフォーマットされていないデータを返しました。を返しました。 生のボディ.

内部を見ると 生本体の内部を見ると ステータス.AI Studioのこの情報によって、呼び出しに応答したか応答しなかったかを知ることができます。これを取得するには Zapierによるコード アクションを追加します。

Add the Code by Zapier as the second step in your ZapAdd the Code by Zapier as the second step in your Zapアクション・イベント」で Javascriptを実行する。このコードブロックを使って、生データをクリーンアップし、使用可能なJSONに変換する。

入力データ(Input Data)には、「ペイロード(Payload)」という新しいキーを作成する。値として、+記号をクリックし、以下を選択する。 生本体.

次に、カスタム・コードに以下を追加する:

let Payload = JSON.parse(inputData.Payload.replace(/%g/,""));
output = [{Payload}];

このコードでは、inputDataをクリーンアップし、JSONオブジェクトにパースする。こうすることで、次のステップでキーと値をロジックに使用できるようになります。

Transform the Raw Body into a Javascript Object called PayloadTransform the Raw Body into a Javascript Object called Payload

このブロックをテストすると、"Payload From"(あなたのVoice Agent番号)、"Payload To"(テストの電話番号)、そして最も重要な "Payload Status "というデータフィールドにアクセスできることがわかります。

Payload Statusの値にアクセスできるようになったので、条件を作成したい。

Zapier Filter Actionで条件を作成する方法

Zapに別のステップを追加して Zapierでフィルタするアクションを実行します。次の条件を作成します: ペイロードステータスに完全に一致しない場合のみ続行する。 回答済み

Create the condition to filter Payload StatusCreate the condition to filter Payload Status

Zapは、Payload Statusが "answered "でない限り、すべてのケースで継続されます。これで、フォローアップSMSエージェントへの接続という最終アクションを追加することができます!

ZapierでPOSTリクエストを作成する方法

トリガーでは、AI StudioからのPOSTリクエストをリッスンするためにZapierを使用した。しかし、今度はZapierを使ってPOSTリクエスト リクエストを AI StudioにPOSTリクエストを送信し、SMSフォローアップをトリガーします。

もう一度 ZapierによるWebhooksを選択します。今回はActionイベントでPOSTを選択する。

Select POST webhook actionSelect POST webhook action

continueをクリックしてPOSTリクエストを設定する。ここでは6つのフィールドを設定する必要があります。URLとPayload Type、Dataセクションの3つのフィールド、そしてHeaderセクションの1つのフィールドです。

URL

URLについては、あなたのエージェントがUSベースかEUベースかを確認する必要があります。対応するURLを追加してください:

ペイロード・タイプ

ペイロード・タイプをjsonに変更する。

データ

以下の3つのフィールドに対応する値を追加する:

  1. キー
    値: ペイロード先

  2. キー エージェントID
    値: 送信SMSエージェントのID; 作成した2番目のエージェント

  3. キー チャンネル
    値:SMS

ヘッダー

以下のフィールドと値を追加する:

  1. キー X-Vgai-Key
    値: AI Studio API キー

POST request properly formattedPOST request properly formatted

このステップをテストして、あなたの携帯電話でSMSを受信することができます。すべてがうまくいったら、Zapを公開して完了です!

結論

これで、完全にノーコード/ローコードのアウトバウンド電話とSMSソリューションが完成しました!うまくできましたか?何か問題はありましたか?ZapierとGoogle Sheets以外に好みのローコードプラットフォームはありますか?ぜひお聞かせください!前にも言ったように、このチュートリアルのインスピレーションは、私たちのコミュニティの コミュニティ・スラック.AI-studio チャンネルに参加して、このチュートリアルをどのように見つけたか教えてください。また VonageDev on Xをフォローしてください。

その他のリソース

シェア:

https://a.storyblok.com/f/270183/384x384/e4e7d1452e/benjamin-aronov.png
Benjamin Aronovデベロッパー・アドボケイト

Benjamin AronovはVonageの開発者支援者です。彼はRuby on Railsのバックグラウンドを持つ実績のあるコミュニティ・ビルダーです。Benjaminは故郷であるテルアビブのビーチを楽しんでいる。テルアビブを拠点に、世界最高のスタートアップの創設者たちと出会い、学ぶことができる。技術以外では、完璧なパン・オ・ショコラを求めて世界中を旅するのが好き。