https://a.storyblok.com/f/270183/1368x665/3d1d4c29f9/sms-google-sheet.png

GoogleシートからSMSを送信する方法

最終更新日 August 1, 2024

所要時間:1 分

大切な友人や家族への誕生日祝いを忘れることがよくある。そんなつもりはないのだが、多忙なスケジュールと遠距離のため、メッセージを送るのを忘れることが多くなっているようだ。

完璧な解決策を思いついた!Google Sheetsのスプレッドシートに、私の大切な連絡先とその誕生日、そして心のこもったメッセージを書きました。Google Apps ScriptsとVonageのAI Studioを使って、Google SheetsからSMSを自動送信する統合を構築しました。しかも、すべてローコードで!

このチュートリアルでは、次のことを学びます。 SMSを送るGoogleシートもう誕生日を見逃すことはありません!

Example of Outbound SMSExample of Outbound SMS

前提条件

アウトバウンドSMSチャットボットの作成方法

エージェントを作成するには、AI Studio ドキュメントに記載されている手順に従ってください。 こちら.エージェントには3つの重要なオプションがあります:

  • タイプ SMS

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

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

あなたのエージェントの機能は非常にシンプルです:あなたの誕生日を祝うSMSを送信します。単一の メッセージ送信ノード会話終了ノード.メッセージの内容は次のステップで説明します。

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

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

  • 名前 @sys.any

  • メッセージ @sys.any

パラメータを保存し、Send Message Nodeを開きます。ノード内に以下のメッセージを追加します。パラメータを使用するには、$ に続けてパラメータ名を入力します。例えば、name の値を使用するには、$name と入力します。

Dear $name,

$message

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

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

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

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

開く グーグル・シートを開き、Blank Spreadsheetをクリックします。スプレッドシートに誕生日メッセージのような素敵なタイトルを付けます。また、以下のように誕生日という名前をつけてください。

Example of Google Sheet DataExample of Google Sheet Dataシートには4つの列見出しがあります:

  1. name

  2. phone_number

  3. birthday

  4. message

友人10人分のデータを追加する。

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

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

  • 以下を確認する birthdayDate型であることを確認する。例:9/26/2008.

Plain Text Formatting in Google SheetsPlain Text Formatting in Google Sheets

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

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

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

function sendBirthdaySMS() {
 // 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);
   }
 }
}

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

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

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

このコードを機能させるには、3つの値を更新する必要がある:

  1. aiStudioUrl

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

EUエージェントの場合 https://studio-api-eu.ai.vonage.com/messaging/conversation米国エージェント https://studio-api-us.ai.vonage.com/messaging/conversation

  1. X-Vgai-Key

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

  1. agent_id

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

function sendRequest(payload) {
 // Add your URL depending if using EU or US agent
 // check point #2 above for URL to add in the ''
 var aiStudioUrl = ''

  // Define headers for the POST request
 var headers = {
'Content-Type': 'application/json',
 	'X-Vgai-Key': '' // Replace with your AI Studio key
 };
  // Define the body for the POST request
 var body = {
   "to": payload.phone_number,
   "agent_id": "", // Replace with your agent ID
   "channel": "sms",
   "session_parameters": [
     {
       "name": "name",
       "value": payload.name
     },
     {
       "name": "message",
       "value": payload.message
     }
   ]
 };
  // Define the options for the POST request (e.g., headers, authentication)
 var options = {
   'method': 'post',
   'headers': headers,
   'payload': JSON.stringify(body)
 };

  // Send the POST request
 var response = UrlFetchApp.fetch(aiStudioUrl, 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());
}

では、このコードは何をするのか?URL、ヘッダ、ボディを準備してPOSTリクエストを作成します。ヘッダでは、X-Vgai-Keyがこのエージェントがあなたのものであることを保証します。ボディでは、どのエージェントをトリガーし、誰にメッセージを送信するかを AI Studio に伝えます。AI Studioの名前とメッセージの値は、あらかじめ用意しておいたものを渡します。これらすべてをオプションにまとめ UrlFetchAppを使ってリクエストします。

最近、AI Studioは リクエストにレート制限が追加されました。これに対応するため、Utilities.sleep(2000)を使用してリクエスト間に2秒の遅延が追加されます;

これで終わりです!これで、Runをクリックしてコードが動くかテストできます。

テストでは、連絡先のうち少なくとも3人が、その日に誕生日を迎え、アクセス可能な電話番号を持っていることを確認する。

なんてクールなんだろう!

Apps スクリプトで毎日実行する Cron ジョブを作成する方法

このアプリケーションは、誰かが誕生日であるかどうかをチェックするために毎日実行する必要があります。これはApps Scriptで簡単にできる:

  1. 左側のパネルで、"トリガー "を選択する。

  2. トリガーを追加」をクリックします。

  3. 以下の設定を選択してください:

  4. 実行する機能を選択する: sendBirthdaySMS

    • どのデプロイメントを実行するかを選択します: HEAD

    • イベントソースを選択します: Time-driven

    • 時間ベースのトリガーのタイプを選択する: Day timer

    • 時間帯の選択:メッセージを送信する時間帯を決めます。

  5. 保存」をクリックする。

結論

AI Studio SMS エージェントと Google Sheets を接続したら、次は何をしますか?

AI Studioの メールノード.あなたは Voiceエージェントを作成して、友達に誕生日の歌を歌ってもらうこともできます。あるいは ジェネレーティブAIの統合を使って、友達に楽しい誕生日の写真を送ることもできます。

あなたが何をするにしても、私たちはそれを聞きたいと思っています!私たちの 開発者コミュニティSlackまたは X(旧Twitter.

その他のリソース

シェア:

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

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