Google Chat用の簡単なチャットボットをGASで作る

Google Chat用チャットボットをGASでサクッと作る方法
こんにちは、GASおじです。中小企業の経営者さんやフリーランスの皆さん、チャットツールのGoogle Chatでちょっとした自動応答ができたら便利だと思いませんか?今回はGoogle Apps Script(以下GAS)を使って、Google Chatのチャットボットを作る方法を紹介します。
おじさんもSaaS課金には厳しいので、余計なコストはかけずにGoogleアカウントの利用枠内(Apps Scriptの実行上限あり)で作れる仕組みを目指します。もちろん既存データを消したり壊したりしない安全設計です。
初期設定と必要な権限
Google Chatボットを作るにはまずGoogle Cloud Consoleでプロジェクトを作成し、Chat APIを有効化します。その後、GASのウェブアプリとして公開し、WebhookでChatに連携します。
手順の概要
- Google Cloud Consoleでプロジェクト作成
- Chat APIを有効化
- GASでチャットボットのスクリプト作成
- GASをウェブアプリとしてデプロイ
- Google ChatのスペースにウェブフックURLを登録
必要な権限
- スプレッドシートの編集権限(結果を新規シートに書き込むため)
- ウェブアプリの実行権限(GASでウェブリクエストを受けるため)
個人情報の取り扱い
チャット内容はGoogleのサーバー上で処理されます。個人情報や機密情報は送信時に適切にマスクやフィルターすることをおすすめします。
コード例:Google ChatボットのGASスクリプト
以下はチャットで受け取ったメッセージを解析し、処理結果を日時付きの新しいスプレッドシートに書き込む簡単な例です。既存のデータは更新せず、新規ファイルに書き込んでいます。
function doPost(e) {
try {
const event = JSON.parse(e.postData.contents);
const messageText = event.message.text || '';
const userName = event.user.displayName || 'Unknown';
// 入力検証:空メッセージは無視
if (!messageText.trim()) {
return ContentService.createTextOutput(JSON.stringify({text: 'メッセージが空です。'}))
.setMimeType(ContentService.MimeType.JSON);
}
// 処理結果を記録する新規スプレッドシートを作成
const timestamp = new Date().toISOString().replace(/[:\-T]/g, '').slice(0, 14);
const ss = SpreadsheetApp.create(`ChatBot_ログ_${timestamp}`);
const sheet = ss.getActiveSheet();
sheet.appendRow(['日時', 'ユーザー名', 'メッセージ', '応答']);
// 簡単な応答ロジック(例:Helloを含むかどうか)
let reply = 'すみません、よくわかりません。';
if (messageText.toLowerCase().indexOf('hello') !== -1) {
reply = `こんにちは、${userName}さん!`;
}
// バッチ書き込み(ここは1行だが拡張可能)
const row = [new Date(), userName, messageText, reply];
sheet.appendRow(row);
// 応答を返す
return ContentService.createTextOutput(JSON.stringify({text: reply}))
.setMimeType(ContentService.MimeType.JSON);
} catch (error) {
// エラーハンドリング
return ContentService.createTextOutput(JSON.stringify({text: '処理中にエラーが発生しました。'}))
.setMimeType(ContentService.MimeType.JSON);
}
}
ポイントは、
- 新規スプレッドシートに日時付きで記録する
- 空メッセージは無視して入力検証する
- エラー時もチャットにメッセージを返す
- 既存のデータ削除APIは使用しない
installable triggerや復元手順について
今回はGoogle ChatからのWebhookで動かすので、installable triggerは不要です。Webhookを経由してGASのdoPost関数が呼ばれます。
万が一のために、スプレッドシートのバックアップはGoogleドライブのバージョン管理や定期的なコピーで対応してください。GAS自体もスクリプトエディタのバージョン履歴から復元可能です。
導入によるコスト削減のイメージ
仮にチャットボット対応で1件あたりの問い合わせ対応時間が平均5分から3分に短縮できたとしましょう。
1日20件の問い合わせで1時間40分の短縮、月20営業日なら約33時間の工数削減です。
時給2000円で計算すると、
33時間 × 2000円 = 66,000円/月 のコスト削減イメージになります。
もちろん実際の効果は業務内容や運用次第ですが、Googleアカウントの利用枠内で追加の専用SaaS料金なしに自動化できるのは大きなメリットです。
まとめ
- Google ChatのチャットボットはGASで簡単に作れる
- 既存データは消さず、新規日時付きファイルに結果を保存するのが安全
- 入力検証やエラー処理も必須
- Googleアカウントの利用枠内で運用可能(Apps Scriptのquota・実行上限あり)
- installable triggerは不要、Webhook連携で完結
- バックアップや復元はGoogleドライブとGASのバージョン管理にお任せ
おじさんの経験から言うと、SaaS課金を増やさずに社内のちょっとした自動化を進めたいなら、こうしたGAS活用がベスト。ぜひチャレンジしてみてください。
GASおじラボで500ツール使い放題 →
GASの達人おじさんが作った便利ツールがいっぱい。あなたの業務効率化に役立ててね!