はじめに
「タスクの進捗を自動で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を取得する手順
- Slack APIサイト にアクセス
- 「Create New App」をクリック
- 「From scratch」を選択し、アプリ名とワークスペースを指定
- 「Incoming Webhooks」を有効化
- 「Add New Webhook to Workspace」をクリック
- 送信先のチャンネルを選択し、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に送信
📢 実行方法
- Googleスプレッドシートを開く
- 「拡張機能」→「Apps Script」を開く
- 上記のコードを貼り付ける
- 「▶(実行ボタン)」をクリック
- 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通知を完全自動化」でき、業務の効率が爆上がり!🚀
ぜひ試して、チームの生産性を向上させましょう!
コメントを書く