Apps ScriptでGoogle Chatに通知する方法|Gmail・フォーム連携の実装例

Google Apps ScriptからGoogle Chatに通知する方法を、比較表・図解・実装例つきで解説。Gmailの重要メールやGoogleフォーム回答をトリガーに、サーバーなしでChat通知を自動化できます。

著者: SakuraAI 編集部監修: 湯田英也公開: 最終更新: 4
目次
30秒でわかる結論

結論、Apps ScriptはGoogle Chat通知の入口として扱いやすい実装です。GmailやGoogleフォーム、スプレッドシートのイベントを起点にし、Webhookへ投稿すればよいので、サーバーを増やさずに始められます。AIで下書きを作る場合でも、誰が、どう、なぜこの構成にしたかが見える記事なら、弱くなりません。

重要メールをChatに通知したい。フォーム回答を担当スペースへ流したい。そうした要件は、Apps Scriptでサーバーなしに組めます。この記事では、実装例だけでなく、どの要素がGoogleの評価軸に乗りやすいかまで整理します。

先に判断する

方式向く要件強み限界
Apps Script + WebhookGmail、フォーム、シート起点の定型通知最小構成で早い双方向の操作はできない
Webhookのみ外部システムの固定通知実装が軽いGoogle Workspaceイベントとはつなぎにくい
Chat API + Bot承認、対話、複数スペース操作操作まで含められる認証と運用が重くなる

Apps Scriptは万能ではありません。通知だけなら十分ですが、ボタンで承認したい、利用者と対話したい、複数スペースを操作したいなら、最初からChat API側を選ぶほうが筋が通ります。ここを見誤ると、Apps Scriptで無理やり双方向を再現しようとして、かえって複雑になります。

Apps Scriptで止めておく境界は、はっきりしています。通知だけならApps Script + Webhookで十分。承認・対話・複数スペース操作が入ってきたら、Chat APIへ切り替えどきです。

なぜApps Scriptか

Apps ScriptはGoogleのクラウド上で動くスクリプト基盤です。サーバー構築が不要で、Gmail、スプレッドシート、フォーム、カレンダーなどのイベントとつなげます。Google Chat通知の自動化を、最小の準備で始めるには適しています。

基本:Chatに通知する関数

WebhookのURLをスクリプトプロパティに保管し、UrlFetchApp でPOSTします。

function notifyChat(message) {
  const url = PropertiesService.getScriptProperties().getProperty('CHAT_WEBHOOK_URL');
  UrlFetchApp.fetch(url, {
    method: 'post',
    contentType: 'application/json',
    payload: JSON.stringify({ text: message }),
  });
}

WebhookのURLはコードに直書きせず、スクリプトプロパティに保管します。コードを共有・公開してもトークンが漏れないようにするためです。

図解:実装の流れ

01

Gmail / フォーム / シートのイベント

通知の起点を決める

標準機能
02

Apps Scriptで受信

条件分岐と整形を行う

要開発
03

WebhookへPOST

Chatのスペースに送る

要開発
04

Google Chatで受信

担当スペースに投稿される

標準機能
標準機能で対応開発・設定が必要

例1:重要メールをChatに通知

時間主導トリガーで定期的にGmailを検索し、条件に合うメールをChatへ通知します。

function notifyImportantMail() {
  const threads = GmailApp.search('is:unread label:重要', 0, 10);
  threads.forEach((thread) => {
    const msg = thread.getMessages()[0];
    notifyChat(`重要メール: ${msg.getSubject()} / 差出人: ${msg.getFrom()}`);
  });
}
重要メール通知
通知スクリプト09:48
重要メール: 【至急】見積もりのご確認 / 差出人: 株式会社サンプル 田中様
Apps ScriptでGmailを定期チェックし、重要メールをChatへ通知した例

例2:フォーム回答をChatに通知

Googleフォームの送信時トリガーで、回答内容をChatへ通知します。問い合わせ対応の起点になります。

function onFormSubmit(e) {
  const answers = e.values.join(' / ');
  notifyChat(`新しいフォーム回答: ${answers}`);
}

トリガーの設定

トリガー使い方向く例
時間主導トリガー一定間隔で検索や集計を実行する重要メール監視、日次レポート
フォーム送信トリガー回答が入った時だけ動かす問い合わせ、申込、社内申請
スプレッドシート編集トリガー台帳更新に反応する担当更新、進捗更新

Webhookと直接APIの使い分け

観点WebhookChat API
通知だけ向いている過剰になりやすい
承認や操作向かない向いている
認証URLを安全に持つOAuthや権限設計が必要
運用負荷軽い重い

通知が目的ならWebhookが手軽です。スペース作成やメンバー操作など高度な操作が必要なら、認証付きでChat APIを利用します。詳しくはGoogle Chat Webhookの使い方Google Chat APIの解説を参照してください。メール起点の自動化全般はGmail自動化で扱います。

注意点

注意点内容
URL・認証情報コードやログへ残さず、シークレット管理に置く
実行回数トリガーと送信頻度の上限を見て設計する
失敗時の扱いログ、失敗通知、再試行を用意する

Q. 本番で最初に壊れやすいのはどこですか?

A. Webhook URLの管理と、通知の再送です。URLはスクリプトプロパティなどに分けて持たせ、処理済みのメールやフォーム回答のIDを記録して、同じ通知が二度飛ばないようにしておく。この2点を押さえれば、初期のトラブルはだいたい防げます。

Q. どこまでApps Scriptでやるべき?

A. GmailやフォームやシートのイベントからChatへ通知するところまでは、Apps Scriptの得意分野です。ボタンでの承認や利用者との対話が要るなら、無理せずChat API側へ。境界を意識して使い分けるのがコツです。

Q. 動かなくなったとき、まず何を見ますか?

A. トリガーの実行ログとクォータです。急に通知が止まったら、たいていトリガーが外れているか、実行回数の上限に当たっているか。実行ログを見れば、どちらかはすぐ分かります。

SakuraAIで支援できること

SakuraAIでは、Apps Scriptを使ったGoogle Chat通知の設計・実装を支援しています。Gmail・フォーム・スプレッドシートを起点にした社内自動化を、サーバーを増やさずに素早く立ち上げ、処理量や要件が育ってきたらBotやChat APIへ段階的に広げます。

よくある質問

Apps Scriptでサーバーは必要ですか?

不要です。Apps ScriptはGoogleのクラウド上で動くため、サーバーを用意せずにGmailやフォームのイベントからChat通知を組めます。社内自動化の入口に適しています。

GmailのメールをトリガーにChat通知できますか?

できます。時間主導トリガーで定期的にGmailを検索し、条件に合うメールを見つけたらWebhook経由でChatへ通知する、という実装が一般的です。重要顧客や問い合わせの取りこぼし防止に有効です。

Webhookと直接APIのどちらを使うべきですか?

通知が目的ならWebhookが手軽です。スペースの作成やメンバー操作など、より高度な操作が必要な場合はChat APIを認証付きで利用します。まずWebhookで始めるのが現実的です。

Apps Scriptの実行回数に上限はありますか?

あります。Apps Scriptには1日あたりのトリガー実行時間やUrlFetchの呼び出し回数などのクォータが設定されています。数分おきの重いGmail検索を全ユーザー分回すような使い方だと上限に当たりやすいので、検索頻度と対象件数を絞り、必要なら外部実行環境への移行も検討します。最新のクォータは公式ドキュメントで確認してください。

参考・一次情報

湯田英也

Reviewed by

監修者: 湯田英也

SakuraAI株式会社 代表 / ソフトウェアエンジニア

Google Chatの導入・移行、Google Workspace連携、Google Chat API / Webhook / Bot、Gmail・Meet・Drive・Calendarをまたぐ業務自動化領域を監修しています。

Google公式情報、各プロダクトの仕様、実務での運用・開発観点をもとに、企業が導入判断・運用設計・自動化設計を行える内容になるよう確認しています。

開発相談

Google Chat Bot・Webhook開発を相談する

通知・承認・問い合わせ連携のBotとAPI実装を支援します。

開発を相談する