フォーム読み込み中
ご覧いただきありがとうございます。Twilioプロダクトチームです。
近年、社内業務の効率化を支えるコミュニケーションツールとして、SMSの活用が注目されています。社内通知やリマインダー、システムアラートなど、従来メールで行われていた連絡手段を置き換え、開封率の高い方法としてSMSが選ばれるケースが増加しています。特に、GoogleスプレッドシートやGoogle Apps Script(GAS)といった身近なツールを活用することで、少ない工数で通知システムを構築できる点が魅力です。
本記事では、Googleスプレッドシート内にチェックボックスを設定し、それを利用して対象者を柔軟に選択しながらSMSを送信する手法をご紹介します。これにより、必要な通知を自動化するだけでなく、スモールスタートで簡単に運用を開始することが可能です。社内の業務効率化や、既存プロセスの改善を検討されている方は、ぜひ参考にしてみてください。
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です。
条件に該当するページがございません