※本記事にはアフィリエイトリンクが含まれます。
フォームから依頼が来るたびにGmailを開いて確認していた。1日に何度もブラウザを切り替えるのが地味にストレスで、Slack通知に移行した。
設定自体は40分ほど。ただ、初回は必ずどこかで詰まる。詰まりやすいポイントを先に知っておくと、半分の時間で終わる。
この記事でわかること:
- SlackのBot Tokenを取得する手順(必要なスコープの選び方)
- n8nのSlackノードの設定方法
- 実務で使える3つの通知パターンの実装方法
- Gmail連携との組み合わせはこちら → n8n でGmailを自動仕分けする:ラベル付け・転送・返信テンプレートの設定

n8n × Slack 連携でやること・やらないこと
Slack Webhook(Incoming Webhook)とBot、どちらを使うべきか
SlackをAPIで操作する方法は大きく2つある。
Incoming Webhook:「このURLに投げればSlackに通知できる」シンプルな仕組み。設定が5分で終わる。ただし、通知先のチャンネルを動的に変更できない。最初はこっちで試した。
Slack App(Bot API):アプリを作成してBot Tokenを発行する方式。設定に15〜20分かかるが、チャンネルを条件によって切り替えたり、メッセージの内容を細かく制御できたりする。n8nのSlackノードはBot APIに対応している。
結論として、僕はBot APIを使っている。理由は「通知先のチャンネルを動的に切り替えたい」という要件が出てきたから。Incoming Webhookではそれができなかった。「特定チャンネルへの固定通知だけでいい」なら、Incoming Webhookの方が早くて楽だ。
Slack側の準備:Bot Tokenの取得手順
Slack Appの作成とOAuth Scopeの設定
- Slack APIページ(api.slack.com/apps)にアクセスし、「Create New App」→「From scratch」を選択
- App Nameを入力し、対象のWorkspaceを選択して「Create App」
- 左メニューから「OAuth & Permissions」を選択
- 「Bot Token Scopes」の「Add an OAuth Scope」から以下を追加する:
| スコープ | 用途 |
|---|---|
chat:write |
チャンネルへのメッセージ投稿(Botがメンバーのチャンネルのみ) |
chat:write.public |
すべての公開チャンネルへの投稿(Botをチャンネルに追加しなくてもOK) |
注意: chat:write だけ追加してもパブリックチャンネルに投稿できずエラーになることがある。chat:write.public を一緒に追加しておくと詰まらない。
Bot User OAuth Tokenをコピーする
スコープを設定したら、画面上部の「Install to Workspace」をクリックしてアプリをインストール。
インストール後、「Bot User OAuth Token」が表示される。xoxb- から始まる文字列がそれ。この値をコピーして控えておく。
ここを忘れがちなポイント: アプリを作成しただけでは動かない。「ワークスペースへのインストール」を完了させて初めてBot Tokenが機能する。
n8n側の設定:Slack Credentialの登録とノードの設置
Credentialsに登録する手順
- n8nの管理画面で「Credentials」→「Add Credential」
- 「Slack」を選択
- 「Access Token」にSlackでコピーしたBot User OAuth Token(
xoxb-...)を貼り付け - 「Save」して保存
保存後、Credentialのテストボタンで「Connection successful」と表示されればOK。
Slackノードの設定(チャンネル指定・メッセージ形式)
Slackノードをワークフローに追加し、以下を設定する:
- Credential: 登録したSlack Bot
- Resource: Message
- Operation: Send
- Channel: 通知先のチャンネルIDを入力
- Gmail連携との組み合わせはこちら → n8n でGmailを自動仕分けする:ラベル付け・転送・返信テンプレートの設定
チャンネルIDの確認方法: チャンネル名(#general等)を直接入力するとエラーになることがある。チャンネル名を右クリック→「チャンネルの詳細を表示」→最下部にチャンネルIDが表示されるのでそちらを使う(C12345ABCDE形式)。
ここは詰まった人が多いポイントで、「チャンネル名で動かない」→「IDに変えたら動いた」という経験をした人は多いと思う。
実務で使っている3つの通知パターン

パターン1:フォーム送信があったら即時通知
Google FormsやTypeformで問い合わせが届いたらSlackに飛ばす。
ワークフローの構成:
Gmail Trigger(新着メール検知)→ Slackノード(通知送信)
または:
Webhook Trigger(フォームのWebhook)→ Slackノード(通知送信)
メッセージには送信者名・件名・本文の冒頭を含めると、Slack上で内容の概要がわかって便利だ。
これで問い合わせへの平均返信時間が2時間から30分以内になった。Gmailを能動的に開かなくてよくなっただけで、体感できるほど変わった。
パターン2:スプレッドシートの行追加を検知して通知
Google スプレッドシートに新しい行が追加されたときに通知する。外注先が作業進捗を入力したタイミングで知らせてほしい、という場合に使える。
ワークフローの構成:
Google Sheets Trigger(行追加を検知)→ Slackノード(通知送信)
「誰が・何の作業を完了したか」をメッセージに含めると、Slack上でそのまま進捗確認ができる。

パターン3:毎朝決まった時間に定時レポートを送る
Schedule Trigger(Cron式)を使って、毎朝9時に前日のスプレッドシートのデータサマリーをSlackに送信する。
ワークフローの構成:
Schedule Trigger(毎朝9:00)→ Google Sheets(データ取得)→ Slackノード(レポート送信)
Cron式で 0 9 * * 1-5(平日の9時)のように設定できる。これは3パターンの中で一番「設定して良かった」と感じているやつで、朝の状況確認が10秒で終わるようになった。
設定後に詰まったこと(正直な失敗談)
最初にIncoming Webhookで設定したが、「クライアント別にSlackチャンネルを分けたい」という要件が出てきた時点で詰まった。Incoming Webhookは宛先チャンネルが固定なので、条件によって送り先を変えられない。Bot APIに移行するしかなかった。
最初からBot APIで設定しておけば良かった。Incoming Webhookが「簡単に設定できる」のは事実だが、あとで要件が増えるなら最初からBot APIを選ぶ方がトータルで楽だ。
あと、Slack Botをチャンネルに招待するのを忘れていて、「送信しているはずなのに通知が来ない」というミスもした。Bot APIを使う場合、BotをSlackの対象チャンネルに招待しないとメッセージが届かない(chat:write.public を使えばこの手間は省ける)。
まとめ
設定についての詳しい情報はn8n関連のZenn記事やn8n関連のQiita記事も参考になる。
設定の手順をまとめると:
- Slack APIページ(api.slack.com/apps)でApp作成 → Bot Token Scopeに
chat:writeとchat:write.publicを追加 - ワークスペースにインストール → Bot User OAuth Tokenをコピー
- n8n の Credentials に登録
- Slackノードを追加 → チャンネルIDを指定 → テスト実行
「チャンネル名でエラー → IDに変更」「スコープが足りない → chat:write.public を追加」の2点さえ知っていれば、初回でも30分かからずに動かせると思う。
合わせて読みたい
– n8n の使い方入門:インストールから最初のワークフロー作成まで図解
– n8n をセルフホストで動かす方法:VPSへのデプロイ手順を図解で解説


コメント