中級向け
channel_not_found の直し方
n8n の Slack ノードで、チャンネルに投稿しようとすると「channel_not_found」で失敗する。筆者の環境では、チャンネルの ID は正しいのに、n8n の Slack アプリが、そのチャンネルに入っていないことが原因と考えられました(同じチャンネルに、Zapier からは投稿できました)。確認する順番、アプリが入っているチャンネルに変えて直した例、Slack の公式の説明の読み、確認していないことを書きました。
公開
動作確認: — n8n 2.36.8(セルフホスト、WSL) / Slack ノード 2.7(メッセージの投稿) / Slack(テスト用のワークスペース)
n8n の Slack ノードで、チャンネルにメッセージを投稿したら、実行が失敗して、channel_not_found と出た。チャンネルの名前も、ID も、合っているのに。
多くの場合、原因は、「n8n につないだ Slack のアプリ(ボット)が、そのチャンネルに入っていない」ことです。 直し方は、そのチャンネルで、アプリを招待する(またはアプリが入っているチャンネルに、投稿先を変える)ことです。
筆者の環境でも、これが原因と考えられました。ただし、1件の観察で、「アプリを招待して直るか」は、試していません(下の「確認していないこと」)。
何が起きたか(観察)
2026-10-12、Gmail に届いたメールを、Slack の「チャンネル-サンプル」に投稿するワークフローを、n8n で作りました(Gmail トリガー → Slack の「メッセージを投稿」)。投稿先は、チャンネルの ID で指定しました。
- 実行は、失敗しました。n8n のログに、
Slack error response: "channel_not_found"と出ました - 同じチャンネルに、Zapier からは、投稿できました
- n8n の投稿先を、ボットが入っている別のチャンネルに変えると、投稿できました(2回とも成功)
つまり、チャンネル自体は、存在しています。 n8n のアプリからは、見えていなかった、という動きでした。
なぜ、Zapier からは、投稿できたのか
Zapier の Slack の投稿のアクションには、「Add Zapier app to channel automatically?」(Zapier のアプリを、自動でチャンネルに入れるか)という設定があり、初期値は「Yes」でした。投稿の前に、アプリを、チャンネルに入れようとします。
n8n の Slack ノードの投稿の設定項目(型の定義で確認しました)には、このような設定は、ありませんでした。アプリを、先にチャンネルに入れておく必要があります。
確認する順番
- チャンネルの ID が合っているか。 チャンネルの名前ではなく、
Cから始まる ID を使うと、名前の変更や、#の有無に、左右されません - アプリが、そのチャンネルに入っているか。 チャンネルの詳細の画面(メンバーや連携のタブ。名前は、Slack のバージョンで変わります)で、アプリが、出ているか見ます
- プライベートのチャンネルか。 プライベートのチャンネルは、アプリが招待されていないと、アプリから、見えません
- アプリの権限(スコープ)。 メッセージの投稿には、
chat:writeが要ります。アプリが入っていない、公開のチャンネルにも、投稿したいなら、chat:write.publicも要ります(プライベートには、効きません)。権限を足したら、アプリを、ワークスペースに入れ直す必要があります - 試す。 アプリが入っていることが分かっているチャンネルに、投稿先を変えて、成功するかを見ます。成功すれば、原因は、「チャンネルの側」です
直し方
- アプリを、チャンネルに招待する。 そのチャンネルで、
/invite @アプリの名前と書くのが、いちばん簡単です - または、アプリが、すでに入っているチャンネルに、投稿先を変える
筆者は、後者で、直しました(アプリが入っているチャンネルに変更)。
Slack の公式の説明の読み
Slack の公式の資料の、エラーの一覧には、channel_not_found は、「channel に渡した値が、無効」と書かれています(幅の広い意味です。チャンネルが存在しない、アプリから、見えない、の両方を含みます)。
chat:write.public の権限は、アプリが入っていない、公開のチャンネルにも、投稿できるようにするものです。プライベートのチャンネルには、効きません(そちらは、招待が要ります)。
プライベートのチャンネルで、アプリが入っていないと、channel_not_found になる、と説明する資料は、複数ありました(筆者の画面では、公式の表に、この組み合わせの、はっきりした記述は、読めていません)。
確認していないこと
- 筆者の「チャンネル-サンプル」が、プライベートか、公開か(確かめていません。招待が要る原因として、もっとも、ありそうなのが、プライベートです)
- アプリを招待して、実際に直るか(筆者は、別のチャンネルに変えて、直しました)
chat:write.publicを足したときの動き- n8n の Slack ノードで、チャンネルの選び方(一覧から選ぶ、ID で入れる、名前で入れる)による違い(筆者は、ID で入れました)
- n8n クラウドでの、同じ動き
次に読む
- Slack のアプリの作り方と、権限は LINE×Slack 問い合わせ対応
- 失敗を知らせる仕組みは n8nのエラーワークフロー
- Zapier と n8n の、Slack の扱いの違いは n8nとZapierの違い
- 認証が切れたときの、似た落とし穴は n8nの「Access could not be refreshed」