Tel: 090-3718-2803

営業時間:10:00~23:00
(年中無休)

メニュー

GAS→Slack通知:完了メッセージを自動投稿|行政書士事務所HANAWAくんと学ぶAI活用実践ラボ第5回

スプレッドシートでの校正処理が完了したHANAWAくん。しかし、作業報告の共有に課題を感じていた。

HANAWAくん:「所長、校正結果をSlackで共有してるんですが、毎回手動で書くのを忘れるんです……」

サトウ所長:「それなら、GASからSlackに自動で完了通知を送るといい。作業の“見える化”になる。」

HANAWAくん:「GASからSlackへ直接送れるんですか?」

サトウ所長:「ああ。SlackのWebhookを使えば簡単にできる。ただ、最近はApp設定から有効化が必要だから注意だ。」

(手動報告がなくなれば、報連相がスムーズになるな……!)

こうしてHANAWAくんと読者は、GASの完了通知をSlackへ自動投稿する仕組みづくりに挑戦することになった。

目次

  1. Slack通知とは

  2. Slack通知を行うための準備

  3. GASでSlackに完了メッセージを自動投稿する方法

  4. Slack通知を安定運用するための注意点

  5. 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の設定手順(最新仕様)

  1. Slackの「APIポータル」にアクセスし、「Create New App」を選択。

  2. 「From scratch」を選び、App名とワークスペースを指定。

  3. 左メニューの「Incoming Webhooks」を有効化し、「Add New Webhook to Workspace」を押す。

  4. 通知したいチャンネル(例:#業務進行)を選択。

  5. 表示されたWebhook URLをコピー。

このURLが通知の送信先アドレスとなります。第三者に共有すると不正投稿のリスクがあるため、スクリプトには直接記述せず、スクリプトプロパティに保存することを推奨します。

JSON送信の基本構造

SlackはUTF-8エンコードされたJSONデータを受け取ります。最小限の構成は以下のとおりです。

{"text": "文書校正が完了しました"}

任意でusernameicon_emojiを設定できます。ただし、ワークスペースの管理設定で制限されている場合があります。


GASでSlackに完了メッセージを自動投稿する方法

学習目標:GASスクリプトを用いてSlack通知を実装できるようにすること。

手順概要

GASからSlackへHTTP POSTで通知を送ります。校正処理完了時に「文書校正が完了しました」と投稿させます。

操作ステップ

  1. Google Apps Scriptエディタを開く(前回の校正スクリプトを利用)。

  2. Webhook URLをスクリプトプロパティに保存。

  3. Slack通知用関数を追加。

  4. 校正処理完了後に通知関数を呼び出す。

  5. Slackへの投稿結果を確認。

コード例(20行以内)

// Slack通知関数(完了メッセージ用)
function sendSlackNotification() {
  var url = PropertiesService.getScriptProperties().getProperty('SLACK_WEBHOOK_URL'); // 安全管理
  var payload = JSON.stringify({
    text: "文書校正が完了しました",
    username: "HANAWA BOT",
    icon_emoji: ":white_check_mark:"
  });
  var options = {
    method: "POST",
    contentType: "application/json",
    muteHttpExceptions: true, // エラーレスポンス確認用
    payload: payload
  };
  UrlFetchApp.fetch(url, options);
}

// 校正処理後に通知を実行
function main() {
  // doProofreading(); // 前回記事の処理
  sendSlackNotification(); // Slackへ完了通知
}

動作確認ポイント

Slackの「#業務進行」チャンネルに
✅「文書校正が完了しました」
というメッセージが投稿されれば成功です。

送信に失敗する場合、ログ(Ctrl+Enterで表示)にエラーレスポンスが出力されます。

応用ヒント

本文にnew Date()を加えれば、通知時刻も自動挿入できます。


Slack通知を安定運用するための注意点

学習目標:トリガー設定と安全管理を理解すること。

トリガーで自動化する

  1. スクリプトエディタ上部の「時計アイコン」をクリック。

  2. 「トリガーを追加」で main() 関数を選択。

  3. イベントを「時間ベース」または「スプレッドシート編集後」に設定。

  4. 保存。

※スプレッドシート編集後トリガーには「インストール型トリガー」の権限承認が必要です。

セキュリティと再実行対策

  • Webhook URLはコードに直接書かず、スクリプトプロパティに格納する。

  • GitHubや共有ドライブにURLを残さない。

  • Slack通知がシート更新を引き起こす場合、トリガーの無限ループに注意。

  • 必要に応じてWebhookの再発行で不正アクセスを防止。

これらを守ることで、安定した通知運用が可能となります。


Slack通知の応用と次回への展開

学習目標:Slack通知を業務改善へ広げる方法を理解すること。

Slack通知は完了報告以外にも次のように応用できます。

  • AI校正処理のエラー検出通知

  • 契約書・申請書生成の完了報告

  • ファイル送信完了時の共有連絡

  • 進捗レポートや承認フローのトリガー

承認付き通知やファイル添付を行う場合は、Slack APIのchat.postMessagefiles.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トークンを用いる方式。


AIに関するご相談はコチラ

HANAWA行政書士事務所メインページ

AIナレッジメインページ