GAS→Slack通知:完了メッセージを自動投稿|行政書士事務所HANAWAくんと学ぶAI活用実践ラボ第5回
スプレッドシートでの校正処理が完了したHANAWAくん。しかし、作業報告の共有に課題を感じていた。
HANAWAくん:「所長、校正結果をSlackで共有してるんですが、毎回手動で書くのを忘れるんです……」
サトウ所長:「それなら、GASからSlackに自動で完了通知を送るといい。作業の“見える化”になる。」
HANAWAくん:「GASからSlackへ直接送れるんですか?」
サトウ所長:「ああ。SlackのWebhookを使えば簡単にできる。ただ、最近はApp設定から有効化が必要だから注意だ。」
(手動報告がなくなれば、報連相がスムーズになるな……!)
こうしてHANAWAくんと読者は、GASの完了通知をSlackへ自動投稿する仕組みづくりに挑戦することになった。
目次
-
Slack通知とは
-
Slack通知を行うための準備
-
GASでSlackに完了メッセージを自動投稿する方法
-
Slack通知を安定運用するための注意点
-
Slack通知の応用と次回への展開
Slack通知は、GAS(Google Apps Script)の処理結果をリアルタイムに共有するための代表的な方法です。文書校正やデータ処理の完了を即時に知らせることで、報告の手間を減らし、チーム全体の見える化を実現します。本記事では、前回構築したGAS×OpenAIのスプレッドシート校正システムに「完了通知」を加え、Slackの「#業務進行」チャンネルへ「文書校正が完了しました」というメッセージを自動投稿する方法を解説します。焦点は、GASの処理完了をSlackに自動通知し、事務所内でリアルタイム共有を実現することです。
Slack通知とは
学習目標:Slack通知の仕組みと運用意義を理解すること。
Slack通知とは、外部の処理やアプリの結果をSlack上に自動的に投稿する仕組みを指します。これにより、手動で報告する手間がなくなり、完了報告やエラー検出を即座に共有できます。
Slackには「Incoming Webhook※」という機能があり、指定されたURLにJSON※形式のデータを送信することで、チャネルへメッセージを投稿できます。ただし、2024年以降はこの機能が「レガシー機能」となっており、新しいワークスペースではSlack Appを作成し、Webhook機能を追加して有効化する必要があります。Slack APIの「chat.postMessage」エンドポイントを利用する方法も推奨されています。
Slack通知を行うための準備
学習目標:Incoming WebhookまたはSlack Appの設定手順を理解すること。
Slack Appの設定手順(最新仕様)
-
Slackの「APIポータル」にアクセスし、「Create New App」を選択。
-
「From scratch」を選び、App名とワークスペースを指定。
-
左メニューの「Incoming Webhooks」を有効化し、「Add New Webhook to Workspace」を押す。
-
通知したいチャンネル(例:#業務進行)を選択。
-
表示されたWebhook URLをコピー。
このURLが通知の送信先アドレスとなります。第三者に共有すると不正投稿のリスクがあるため、スクリプトには直接記述せず、スクリプトプロパティに保存することを推奨します。
JSON送信の基本構造
SlackはUTF-8エンコードされたJSONデータを受け取ります。最小限の構成は以下のとおりです。
{"text": "文書校正が完了しました"} |
任意でusername
やicon_emoji
を設定できます。ただし、ワークスペースの管理設定で制限されている場合があります。
GASでSlackに完了メッセージを自動投稿する方法
学習目標:GASスクリプトを用いてSlack通知を実装できるようにすること。
手順概要
GASからSlackへHTTP POSTで通知を送ります。校正処理完了時に「文書校正が完了しました」と投稿させます。
操作ステップ
-
Google Apps Scriptエディタを開く(前回の校正スクリプトを利用)。
-
Webhook URLをスクリプトプロパティに保存。
-
Slack通知用関数を追加。
-
校正処理完了後に通知関数を呼び出す。
-
Slackへの投稿結果を確認。
コード例(20行以内)
// Slack通知関数(完了メッセージ用) |
動作確認ポイント
Slackの「#業務進行」チャンネルに
✅「文書校正が完了しました」
というメッセージが投稿されれば成功です。
送信に失敗する場合、ログ(Ctrl+Enterで表示)にエラーレスポンスが出力されます。
応用ヒント
本文にnew Date()
を加えれば、通知時刻も自動挿入できます。
Slack通知を安定運用するための注意点
学習目標:トリガー設定と安全管理を理解すること。
トリガーで自動化する
-
スクリプトエディタ上部の「時計アイコン」をクリック。
-
「トリガーを追加」で
main()
関数を選択。 -
イベントを「時間ベース」または「スプレッドシート編集後」に設定。
-
保存。
※スプレッドシート編集後トリガーには「インストール型トリガー」の権限承認が必要です。
セキュリティと再実行対策
-
Webhook URLはコードに直接書かず、スクリプトプロパティに格納する。
-
GitHubや共有ドライブにURLを残さない。
-
Slack通知がシート更新を引き起こす場合、トリガーの無限ループに注意。
-
必要に応じてWebhookの再発行で不正アクセスを防止。
これらを守ることで、安定した通知運用が可能となります。
Slack通知の応用と次回への展開
学習目標:Slack通知を業務改善へ広げる方法を理解すること。
Slack通知は完了報告以外にも次のように応用できます。
-
AI校正処理のエラー検出通知
-
契約書・申請書生成の完了報告
-
ファイル送信完了時の共有連絡
-
進捗レポートや承認フローのトリガー
承認付き通知やファイル添付を行う場合は、Slack APIのchat.postMessage
やfiles.upload
を利用すると柔軟に構成できます。
次回は、このSlack通知をGoogle Docsの自動生成機能と組み合わせ、作成完了ファイルをSlackで共有するワークフローを構築します。
まとめ
今回の焦点は、GASの処理完了をSlackに自動通知し、事務所内でリアルタイム共有を実現することでした。SlackのIncoming Webhookはシンプルながら強力な連携手段です。ただし、現在はSlack Appの設定経由で有効化する必要があります。通知自動化によって、作業報告の抜け漏れを防ぎ、業務の透明性とスピードを高めることが可能です。
サトウ所長コメント:
Slack通知の導入で、業務の「完了」が即座に共有されるようになりました。これは単なる自動化ではなく、チーム全体の安心と信頼を支える仕組みです。次回は、Docsテンプレート生成を組み合わせ、Slack上で成果物を自動共有する段階へ進みます。
※Incoming Webhook:Slack Appで有効化するメッセージ投稿機能。従来は標準機能だったが、現在はレガシー扱い。
※JSON:データ構造をテキストで記述する形式。UTF-8でエンコードされる必要がある。
※chat.postMessage:Slack APIの正式な投稿エンドポイント。OAuthトークンを用いる方式。