Google Apps ScriptでSlackに自動通知を送る方法【業務効率爆上げ】

NO IMAGE

はじめに

「タスクの進捗を自動でSlackに通知したい!」
「Gmailやスプレッドシートの更新をSlackで知らせたい!」

そんなあなたにおすすめなのが、Google Apps Script(GAS)でSlack通知を自動化する方法です!🚀

スプレッドシートの更新をSlackに通知(チームでデータ共有)
特定のGmail受信時にSlackにアラート(重要メールの見逃し防止)
定期的にSlackにリマインド通知(業務のタスク管理)

本記事では、GASを使ってSlackにメッセージを自動送信する方法をわかりやすく解説します!


Slack通知の基本:Webhook URLを取得する

まず、GASからSlackにメッセージを送るために、Slackの「Incoming Webhook URL」を取得する必要があります。

📌 SlackのWebhook URLを取得する手順

  1. Slack APIサイト にアクセス
  2. 「Create New App」をクリック
  3. 「From scratch」を選択し、アプリ名とワークスペースを指定
  4. 「Incoming Webhooks」を有効化
  5. 「Add New Webhook to Workspace」をクリック
  6. 送信先のチャンネルを選択し、Webhook URLを取得

Webhook URLは「https://hooks.slack.com/services/XXXXXXXXX」のような形式になります。
このURLをGASのスクリプトに設定すれば、Slackにメッセージを送れます!


GASでSlackにメッセージを送信する基本コード

📌 Slackにメッセージを送るGASスクリプト

function sendSlackMessage() {
  var url = "https://hooks.slack.com/services/XXXXXXXXX"; // 取得したWebhook URL
  var message = {
    text: "Google Apps ScriptからSlackに通知しました! 🚀"
  };
  
  var options = {
    method: "post",
    contentType: "application/json",
    payload: JSON.stringify(message)
  };
  
  UrlFetchApp.fetch(url, options);
}

💡 コードの説明

var url に取得したWebhook URLを指定
var message で送信するメッセージを定義
UrlFetchApp.fetch(url, options) でSlackに送信

📢 実行方法

  1. Googleスプレッドシートを開く
  2. 「拡張機能」→「Apps Script」を開く
  3. 上記のコードを貼り付ける
  4. 「▶(実行ボタン)」をクリック
  5. Slackに通知が送信される!🎉

応用編:スプレッドシートの更新をSlackに通知する

スプレッドシートの内容が更新されたら、自動でSlackに通知したい場合は、onEditトリガーを使います。

📌 スプレッドシートの変更をSlackに通知

function onEdit(e) {
  var sheet = e.source.getActiveSheet();
  var range = e.range;
  var value = range.getValue();
  var url = "https://hooks.slack.com/services/XXXXXXXXX"; // Webhook URL

  var message = {
    text: "📢 スプレッドシートが更新されました!\n\n" +
          "シート名: " + sheet.getName() + "\n" +
          "セル: " + range.getA1Notation() + "\n" +
          "新しい値: " + value
  };
  
  var options = {
    method: "post",
    contentType: "application/json",
    payload: JSON.stringify(message)
  };
  
  UrlFetchApp.fetch(url, options);
}

💡 コードの説明

onEdit(e) を使い、スプレッドシートが編集されたときに自動実行
range.getValue() で変更されたセルの値を取得
sheet.getName() でシート名を取得
UrlFetchApp.fetch(url, options) でSlackに通知

📌 設定方法:「Apps Script」の「トリガー」→「関数: onEdit」→「イベント: スプレッドシートの編集時」

スプレッドシートが編集されると、Slackに自動で通知が飛びます!💡


応用編:特定のGmailを受信したらSlackに通知

「重要なメールを見逃したくない!」
そんなときは、Gmailのフィルターを使って特定のメールをSlackに通知できます。

📌 Gmailの受信メールをSlackに通知するスクリプト

function notifySlackOnGmail() {
  var url = "https://hooks.slack.com/services/XXXXXXXXX"; // Webhook URL
  var threads = GmailApp.search('subject:"重要" newer_than:1d'); // 「重要」を含むメール(1日以内)を検索
  
  if (threads.length === 0) return;

  var messages = threads[0].getMessages();
  var latestMessage = messages[messages.length - 1];
  
  var message = {
    text: "📩 重要なメールを受信しました!\n\n" +
          "件名: " + latestMessage.getSubject() + "\n" +
          "送信者: " + latestMessage.getFrom() + "\n" +
          "本文: " + latestMessage.getPlainBody().substring(0, 100) + "..."
  };

  var options = {
    method: "post",
    contentType: "application/json",
    payload: JSON.stringify(message)
  };
  
  UrlFetchApp.fetch(url, options);
}

💡 コードの説明

GmailApp.search('subject:"重要" newer_than:1d') で「件名に’重要’を含む1日以内のメール」を検索
latestMessage.getSubject() で件名を取得
latestMessage.getFrom() で送信者を取得
latestMessage.getPlainBody().substring(0, 100) で本文の冒頭100文字を取得
UrlFetchApp.fetch(url, options) でSlackに通知

📌 トリガー設定:「関数: notifySlackOnGmail」→「時間ベースのトリガー(5分ごと)」

「重要なメール」を受信すると、Slackにリアルタイム通知!📩


まとめ

基本のSlack通知 → sendSlackMessage()
スプレッドシートの変更を通知 → onEdit(e)
Gmailの受信を通知 → notifySlackOnGmail()
トリガー設定で「完全自動化」!

📌 活用例
💡 スプレッドシートの変更をチームにリアルタイム通知
💡 重要なGmailをSlackで即共有
💡 毎朝Slackにタスクリストを自動投稿

GASを使えば、「Slack通知を完全自動化」でき、業務の効率が爆上がり!🚀
ぜひ試して、チームの生産性を向上させましょう!

GASカテゴリの最新記事