Twilio初心者向け Google Apps Scriptで簡単にSMSを送信する方法

2025年9月30日掲載

キービジュアル

ご覧いただきありがとうございます。Twilioプロダクトチームです。

近年、社内業務の効率化を支えるコミュニケーションツールとして、SMSの活用が注目されています。社内通知やリマインダー、システムアラートなど、従来メールで行われていた連絡手段を置き換え、開封率の高い方法としてSMSが選ばれるケースが増加しています。特に、GoogleスプレッドシートやGoogle Apps Script(GAS)といった身近なツールを活用することで、少ない工数で通知システムを構築できる点が魅力です。

本記事では、Googleスプレッドシート内にチェックボックスを設定し、それを利用して対象者を柔軟に選択しながらSMSを送信する手法をご紹介します。これにより、必要な通知を自動化するだけでなく、スモールスタートで簡単に運用を開始することが可能です。社内の業務効率化や、既存プロセスの改善を検討されている方は、ぜひ参考にしてみてください。

目次

Twilioとは

Twilioとは、電話やSMS・ビデオ・チャットなど世の中にあるさまざまなコミュニケーションチャネルをWeb・モバイルアプリケーションへ組み込むクラウドコミュニケーションプラットフォームです。従量課金制のため、コンタクトセンターや新規ビジネスをスモールスタートで構築することが可能です。

実装方法

まずはTwilioの設定を行い、SMSを送信するための認証情報を取得します。

1.Twilioコンソールにログインします。

2.アカウントダッシュボードからAccount SIDとAuth Tokenを確認し、メモなどに控えておきます。

3.送信に使用するアメリカの電話番号を用意します。まだ電話番号を購入していない場合は、「Twilio上で日本とアメリカの電話番号を購入する方法(2025年1月版)」を参考にしながら番号を購入してください。購入した番号をメモしておきましょう。

次に、GoogleスプレッドシートとGoogle Apps Script(GAS)を使ってシステムを準備します。

1.まずスプレッドシートを用意します。A列には電話番号入力欄、B列にはSMSで送信する本文入力欄、C列にチェックボックスを作成します。

2.スプレッドシートのA列に送り先電話番号(国際電話識別番号から始まる形式)を入力し、B列には任意の文字列、C列にチェックを入れます。

3.シートに紐づいたGASを用意します。拡張機能からApps Scriptを押下してください。

4.ファイルに以下のコードを貼りつけ保存します。

TwilioのAPI情報や送信元番号は、直接コード内に記載するのではなく、スクリプトプロパティで管理することを推奨します。

スクリプトプロパティについてはApps Scriptのガイドを参照してください。


//Twilio API情報
const TWILIO_ACCOUNT_SID = PropertiesService.getScriptProperties().getProperty('TWILIO_ACCOUNT_SID');
const TWILIO_AUTH_TOKEN = PropertiesService.getScriptProperties().getProperty('TWILIO_AUTH_TOKEN');
const TWILIO_PHONE_NUMBER = PropertiesService.getScriptProperties().getProperty('TWILIO_PHONE_NUMBER');

//メイン関数:チェックされた行のSMSを送信
function sendSMSFromSheet() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const data = sheet.getDataRange().getValues(); //すべてのデータを取得
  const checkboxes = sheet.getRange(2, 3, sheet.getLastRow() - 1).getValues(); //C列のチェック状態

  for (let i = 1; i < data.length; i++) { //1行目はヘッダー
    const rawPhoneNumber = data[i][0]; //A列: 電話番号
    const message = data[i][1];        //B列: SMS本文
    const isChecked = checkboxes[i - 1][0]; //C列: チェックボックス

    if (isChecked === true && rawPhoneNumber && message) {
      const formattedPhoneNumber = formatPhoneNumber(rawPhoneNumber);
      sendTwilioSMS(formattedPhoneNumber, message);

      //送信後にチェックを外す(必要に応じて)
      sheet.getRange(i + 1, 3).setValue(false);
    }
  }
}

//電話番号の形式を補正(+がなければ追加)
function formatPhoneNumber(number) {
  const trimmed = String(number).trim();

  if (trimmed.startsWith('+')) {
    return trimmed;
  }

  //先頭が 0 から始まる場合は、国番号 81 に変換する例
  if (trimmed.startsWith('0')) {
    return '+81' + trimmed.slice(1);
  }

  return '+' + trimmed;
}

//Twilio API を使ってSMSを送信
function sendTwilioSMS(to, body) {
  const url = `https://api.twilio.com/2010-04-01/Accounts/${TWILIO_ACCOUNT_SID}/Messages.json`;

  const payload = {
    To: to,
    From: TWILIO_PHONE_NUMBER,
    Body: body
  };

  const options = {
    method: 'post',
    payload: payload,
    headers: {
      Authorization: 'Basic ' + Utilities.base64Encode(TWILIO_ACCOUNT_SID + ':' + TWILIO_AUTH_TOKEN)
    }
  };

  const response = UrlFetchApp.fetch(url, options);
  Logger.log(response.getContentText());
}

5.実行を押下します。初めて実行する場合はデータのアクセス権限が必要なので、権限の確認から許可をしてください。チェックボックスのついている行の電話番号にSMSが送信されます。

6.SMSが無事に届いたことを確認できれば、設定は完了です。

まとめ

TwilioとGoogle Apps Script(GAS)を組み合わせることで、手軽かつ柔軟にSMS通知システムを構築・運用することが可能です。特に、Googleスプレッドシートのデータを活用したこの手法は、既存の業務フローを壊すことなく、社内通知やリマインダー、アラート通知などのさまざまなシーンで活用できます。メール通知ではカバーしきれない即時性や視認性を兼ね備えたSMSを有効活用することで、業務の効率化や重要な情報の見逃し防止が期待できます。

なお、Twilio APIを活用した実装方法や、電話番号の購入方法については、別の記事でも詳しく紹介していますので、これらの記事も参考にしてみてください。

関連サービス

Twilioは、電話、SMS、ビデオ、チャットなど、多様化するお客さまとのコミュニケーションチャネルを1つにつなぐクラウドコミュニケーションAPIです。

おすすめの記事

条件に該当するページがございません