「重要な情報をSlackで見落としてしまう」
「手動で通知を送る手間がかかる」
「AIを使ってSlackボットを作りたい」
そんな悩みを持つビジネスパーソンの方も多いのではないでしょうか。
n8nとSlackを連携すれば、メッセージの自動送信、チャンネル管理、ファイル操作から、AIを組み込んだ自動応答ボットまで、様々な通知・コミュニケーションを自動化できます。設定は20分程度で完了し、ノーコードで高度な自動化が実現できます。
この記事では、n8nとSlackの連携方法から、実践的な自動化レシピまで詳しく解説します。
この記事でわかること
- n8nとSlackを連携するための認証設定
- Slackノードでできる操作一覧
- 実践的な自動化レシピ5選(ニュース通知、AI応答ボットなど)
- Slack Triggerの設定方法とよくあるトラブル対策
n8n × Slack連携でできること
n8nのSlackノードを使うと、Slack APIを通じて様々な操作を自動化できます。
Slackノードの主な機能
| リソース | 操作 | 用途 |
|---|---|---|
| Message | Send / Update / Delete / Get Permalink | メッセージの送信・更新・削除 |
| Channel | Create / Archive / Close / Get / Invite / Join / Leave / Kick | チャンネルの作成・管理 |
| User | Get / Get Many / Get Status | ユーザー情報の取得 |
| File | Get / Get Many / Upload | ファイルのアップロード・取得 |
| Reaction | Add / Remove / Get | リアクションの追加・削除 |
| Star | Add / Remove / Get Many | スターの管理 |
Slack Triggerで検知できるイベント
| トリガー | 発火条件 |
|---|---|
| On bot app mention | ボットにメンションされたとき |
| On message posted | チャンネルにメッセージが投稿されたとき |
| On file shared | ファイルが共有されたとき |
| On reaction added | リアクションが追加されたとき |
代表的な自動化ユースケース
- 毎朝のニュース・RSSフィードをSlackに自動配信
- フォーム送信や注文発生時にSlackへ即時通知
- GitHub IssueやPull Request作成時にチャンネルへ通知
- AIエージェントによる自動応答ボット
- タスク管理システムの期限リマインダー
- 日次・週次レポートの自動配信
事前準備:Slackアプリの作成
n8nからSlackを操作するには、Slack側でアプリを作成し、認証トークンを取得する必要があります。
Slackアプリの作成手順
- Slack API管理ページ(https://api.slack.com/apps)にアクセス
- 「Create New App」をクリック
- 「From scratch」を選択
- アプリ名(例:n8n-automation)を入力し、ワークスペースを選択
- 「Create App」をクリック
Bot Token Scopesの設定
作成したアプリに必要な権限を付与します。
- 左サイドバーの「OAuth & Permissions」をクリック
- 「Bot Token Scopes」セクションまでスクロール
- 「Add an OAuth Scope」をクリックして必要なスコープを追加
基本的なスコープ
- chat:write:メッセージの送信
- channels:read:チャンネル情報の取得
- channels:history:チャンネル履歴の取得
- users:read:ユーザー情報の取得
- files:read:ファイルの取得
- files:write:ファイルのアップロード
Triggerを使う場合の追加スコープ
- app_mentions:read:ボットへのメンション検知
アプリのインストールとトークン取得
- 「OAuth & Permissions」ページで「Install to Workspace」をクリック
- 権限を確認して「許可する」をクリック
- 表示された「Bot User OAuth Token」をコピーして保存
注意
Bot User OAuth Tokenは「xoxb-」で始まります。このトークンは機密情報として安全に管理してください。
ボットをチャンネルに招待
メッセージを送信したいSlackチャンネルで、以下のコマンドを実行してボットを招待します。
/invite @アプリ名
この招待を忘れると「not_in_channel」エラーが発生します。
n8nでSlackクレデンシャルを設定
n8nにSlackの認証情報を登録します。
設定手順
- n8nでSlackノードを追加
- 「Credential to connect with」で「Create New Credential」を選択
- 「Access Token」欄に、先ほど取得したBot User OAuth Tokenをペースト
- 「Test Credential」で接続確認
- 成功したら「Save」をクリック
実践レシピ①:毎朝ニュースをSlackに自動配信
RSSフィードからニュースを取得し、毎朝Slackに配信するワークフローです。
ワークフロー構成
- Schedule Trigger:毎日朝8時に実行
- RSS Read:ニュースサイトのRSSを取得
- Limit:上位5件に絞り込み
- Slack(Send Message):チャンネルに投稿
Schedule Triggerの設定
- Trigger Interval:Days
- Hour:8
- Minute:0
RSS Readの設定
- URL:RSSフィードのURL(例:https://rss.itmedia.co.jp/rss/2.0/news_bursts.xml)
Slackノードの設定
- Resource:Message
- Operation:Send
- Channel:送信先チャンネル名または ID
- Text:メッセージ本文(式を使って動的に設定)
メッセージ本文の例
📰 *{{ $json.title }}*
{{ $json.link }}
重複配信を防ぐ工夫
PostgreSQLやGoogle Sheetsに配信済みのURLを記録し、次回実行時にフィルターすることで、同じニュースの重複配信を防げます。
実践レシピ②:フォーム送信をSlackへ即時通知
Webhookで受け取ったフォームデータを即座にSlackに通知するワークフローです。
ワークフロー構成
- Webhook:フォーム送信データを受信
- Slack(Send Message):担当チャンネルに通知
- Respond to Webhook:成功レスポンスを返す
Slackメッセージのフォーマット例
🔔 *新しいお問い合わせが届きました*
*お名前:* {{ $json.body.name }}
*メール:* {{ $json.body.email }}
*内容:*
{{ $json.body.message }}
受信日時: {{ $now.format('YYYY-MM-DD HH:mm') }}
メンションの追加
担当者に即座に気づいてもらうため、メンションを追加できます。
- 個人へのメンション:
- チャンネル全体:
- ここにいる人全員:
実践レシピ③:GitHub連携で開発通知
GitHub上のイベント(Issue作成、PR作成など)をSlackに通知するワークフローです。
ワークフロー構成
- GitHub Trigger:Issue / PR作成を検知
- IF:イベントの種類で分岐
- Slack(Send Message):適切なチャンネルに通知
Issue作成時の通知メッセージ例
🐛 *新しいIssueが作成されました*
*タイトル:* {{ $json.issue.title }}
*作成者:* {{ $json.issue.user.login }}
*リポジトリ:* {{ $json.repository.full_name }}
{{ $json.issue.html_url }}
PR作成時の通知メッセージ例
🔀 *新しいPull Requestが作成されました*
*タイトル:* {{ $json.pull_request.title }}
*作成者:* {{ $json.pull_request.user.login }}
*ブランチ:* {{ $json.pull_request.head.ref }} → {{ $json.pull_request.base.ref }}
{{ $json.pull_request.html_url }}
実践レシピ④:AIエージェントによる自動応答ボット
Slackでボットにメンションすると、AIが自動で応答するワークフローです。
ワークフロー構成
- Slack Trigger(On bot app mention):メンションを検知
- OpenAI(Message a Model):メッセージ内容をAIに送信
- Slack(Send Message):AIの応答をスレッドに返信
Slack Triggerの設定
Slack TriggerはEvent Subscriptionsの設定が必要です。
n8n側の設定
- Slack Triggerノードを追加
- 「On bot app mention」を選択
- Credentialを設定
- 表示される「Webhook URL」をコピー
Slack側の設定
- Slack API管理ページでアプリを選択
- 左サイドバーの「Event Subscriptions」をクリック
- 「Enable Events」をONに
- 「Request URL」にn8nのWebhook URLをペースト
- 「Subscribe to bot events」で「app_mention」を追加
- 「Save Changes」をクリック
重要
Request URLを設定する際、n8nのワークフローが「Waiting for trigger event」状態になっている必要があります。先にn8nで「Test workflow」をクリックしてから、Slack側でURLを設定してください。
OpenAIノードの設定
- Resource:Message a Model
- Model:gpt-4o(または gpt-4o-mini)
- Messages:Slackから受け取ったメッセージを設定
System Promptの例
あなたは親切なアシスタントです。
Slackで質問されたことに対して、簡潔かつ丁寧に回答してください。
技術的な質問には具体的なコード例や手順を含めてください。
スレッドへの返信設定
元のメッセージのスレッドに返信するには、Slackノードで「Thread TS」にSlack Triggerから取得したtsを設定します。
- Options → Thread TS:{{ $(‘Slack Trigger’).item.json.ts }}
実践レシピ⑤:タスク期限のリマインダー通知
Google Sheetsのタスクリストから期限が近いタスクを抽出し、Slackで通知するワークフローです。
ワークフロー構成
- Schedule Trigger:毎日朝9時に実行
- Google Sheets(Get Row(s)):タスクリストを取得
- Code:期限が今日または明日のタスクをフィルター
- IF:該当タスクがある場合のみ続行
- Slack(Send Message):リマインダーを送信
Codeノードでの期限フィルター例
const today = new Date();
today.setHours(0, 0, 0, 0);
const tomorrow = new Date(today);
tomorrow.setDate(tomorrow.getDate() + 1);
const dayAfterTomorrow = new Date(today);
dayAfterTomorrow.setDate(dayAfterTomorrow.getDate() + 2);
return $input.all().filter(item => {
const dueDate = new Date(item.json.期限);
return dueDate >= today && dueDate < dayAfterTomorrow;
});
リマインダーメッセージの例
⏰ *タスクリマインダー*
以下のタスクの期限が近づいています:
{{ $json.map(task => • *${task.タスク名}* - 期限: ${task.期限} - 担当: ${task.担当者}).join('n') }}
早めの対応をお願いします!
トラブルシューティング
n8nとSlack連携でよくある問題と解決方法をまとめます。
not_in_channelエラー
原因:ボットがチャンネルに招待されていない
解決策:送信先チャンネルで /invite @アプリ名 を実行
missing_scopeエラー
原因:必要な権限(スコープ)が不足している
解決策:Slack API管理ページの「OAuth & Permissions」で必要なスコープを追加し、アプリを再インストール
Slack TriggerでVerifiedにならない
原因
- n8nのワークフローがアクティブになっていない
- Webhook URLの設定ミス
解決策
- n8nで「Test workflow」をクリックして待機状態にする
- Request URLには「Test URL」ではなく「Production URL」を使用
- ワークフローを有効化(Active)にする
channel_not_foundエラー
原因:チャンネル名またはIDが正しくない
解決策
- チャンネル名は「#」を含めずに指定(例:general)
- プライベートチャンネルの場合はチャンネルIDを使用
より高度な活用のヒント
Block Kit Builderでリッチなメッセージ
SlackのBlock Kit Builderを使うと、ボタンやドロップダウンを含むインタラクティブなメッセージを作成できます。n8nのSlackノードの「Blocks」オプションでBlock Kit JSONを設定できます。
スレッド返信の活用
関連する通知をスレッドにまとめることで、チャンネルの見通しが良くなります。最初のメッセージのtsを保存し、後続の通知でThread TSとして使用します。
エラー通知の自動化
Error Triggerノードを使って、ワークフロー実行エラーが発生した際にSlackの運用チャンネルに自動通知できます。
よくある質問(FAQ)
Q. n8n Cloudの無料プランで使えますか?
A. はい、Slack連携は無料プランで利用可能です。ただし、月100回までのワークフロー実行制限があります。
Q. プライベートチャンネルにも投稿できますか?
A. はい、ボットをプライベートチャンネルに招待すれば投稿できます。チャンネル指定にはチャンネルIDを使用してください。
Q. DMを送ることはできますか?
A. はい、Slackノードの「Channel」にユーザーIDを指定することでDMを送信できます。追加で「im:write」スコープが必要です。
Q. ファイルを添付して送信できますか?
A. はい、Slackノードの「File」リソースでUpload操作を使います。HTTP Requestで取得したファイルや、他のノードで生成したファイルをアップロードできます。
Q. 複数のワークスペースに対応できますか?
A. はい、ワークスペースごとにSlackアプリを作成し、n8nで複数のクレデンシャルを登録することで対応できます。
まとめ:n8nでSlack通知を自動化しよう
この記事では、n8nとSlackの連携方法と実践的な自動化レシピを紹介しました。
連携の基本ステップ
- Slack API管理ページでアプリを作成
- Bot Token Scopesで必要な権限を付与
- Bot User OAuth Tokenを取得
- n8nでクレデンシャルを設定
- ボットを対象チャンネルに招待
実践レシピ5選
- 毎朝ニュースをSlackに自動配信
- フォーム送信をSlackへ即時通知
- GitHub連携で開発通知
- AIエージェントによる自動応答ボット
- タスク期限のリマインダー通知
次のステップ
- Slackアプリを作成してBot Token取得
- n8nでクレデンシャルを設定
- シンプルな「メッセージ送信」ワークフローでテスト
- RSSニュース配信やAIボットに挑戦
n8nとSlackの連携により、重要な情報の見落としを防ぎ、チーム全体の情報伝達スピードと正確性が向上します。AIと組み合わせれば、通知内容の自動生成や、質問への自動応答も実現できます。
まずは簡単なメッセージ送信から始めて、徐々に自動化の範囲を広げていきましょう。

