How to Connect n8n to Slack: The Complete Integration Guide (2025)

Slack is where work happens — and n8n is how you make Slack do work for you. Connect the two and you can turn any event in your stack (a new deal, a failed payment, a form submission) into an instant, formatted Slack message. Go further and you can build a full AI assistant that lives in your channels.

This guide walks through the entire integration, from authentication to interactive bots.

Two ways to connect n8n to Slack

n8n offers two credential types, and picking the right one matters:

  • Slack API (OAuth2) — best for full-feature bots that read messages, react, and respond. Requires creating a Slack app.
  • Incoming Webhook — the fastest path for send-only alerts. No app needed, but limited to posting to one channel.

Step 1: Create a Slack app

Go to api.slack.com/apps → "Create New App" → "From scratch". Name it, pick your workspace. Under OAuth & Permissions, add bot token scopes: chat:write, channels:read, and chat:write.public if you want to post to channels the bot hasn't joined.

Step 2: Add the credential in n8n

Install the app to your workspace, copy the Bot User OAuth Token (starts with xoxb-), and paste it into a new Slack credential in n8n. Test it — n8n will confirm the connection.

Ready to automate?

Skip the build — get a ready-made n8n Slack AI Assistant with thread summaries, task creation, and a Q&A bot.

Get the Template on Gumroad →

Step 3: Send your first message

Add a Slack node, choose "Message → Send", select your channel, and type a message. Use expressions like {{$json.customer_name}} to inject dynamic data from earlier nodes.

Formatting messages that people actually read

Plain text alerts get ignored. Use Slack's Block Kit for structured, scannable messages:

🆕 *New Deal Won* — Acme Corp
💰 $12,000 · Closed by Sarah
🔗 View in Pipedrive

In the Slack node, switch to "Blocks" mode and paste a Block Kit JSON payload. Use the Block Kit Builder to design it visually first.

Building an interactive bot

To respond to messages or slash commands, use the Slack Trigger node. Subscribe to app_mention or message.channels events, point the Event Subscription URL at your n8n webhook, and process the incoming text with an AI node before replying in-thread.

Common pitfalls

  • not_in_channel error: invite the bot to the channel, or add the chat:write.public scope.
  • Rate limits: Slack caps at ~1 message/second per channel. Add a small Wait node in loops.
  • Missing events: re-install the app after adding scopes — new scopes don't apply retroactively.

What to build first

Start with a high-value alert: new deals, failed payments, or support tickets. Once that's running, layer in two-way interaction. The jump from "Slack notifies me" to "Slack does the task for me" is where the real time savings live.


Ready to automate? Get this template on Gumroad

This ready-to-import n8n workflow saves you hours of setup. Import it, connect your accounts, and go live.

Get the Template on Gumroad →