This article contains affiliate links. If you buy through them, we may earn a commission at no extra cost to you.
n8n Slack Notifications: Send Automated Messages Step by Step
If your team relies on Slack to stay in sync, manually copy-pasting updates into channels is a time sink you do not need. With n8n — an open-source workflow automation tool with 400+ integrations that you can self-host for free or run on n8n Cloud — you can build a workflow that sends Slack notifications automatically, triggered by virtually any event in your stack.
This guide walks you through the complete setup: from creating your first workflow to formatting rich Slack messages, with no prior automation experience required.
What You Will Build
A simple but practical workflow that:
- Triggers on a schedule, a webhook, or a form submission
- Optionally fetches or processes data
- Sends a formatted message to a Slack channel of your choice
Once the pattern is clear, you can swap the trigger for anything — a new row in Google Sheets, a completed task in Notion, a payment in Stripe, and so on.
Prerequisites
- n8n instance: a free self-hosted install or an n8n Cloud account
- Slack workspace where you have permission to add apps
- A Slack Bot Token (explained below)
Step 1 — Create a Slack App and Get Your Bot Token
n8n connects to Slack via the official Slack API. You need a bot token with the right scopes.
- Go to api.slack.com/apps and click Create New App → From scratch.
- Give the app a name (e.g. n8n Bot) and select your workspace.
- Navigate to OAuth & Permissions and scroll to Bot Token Scopes.
- Add the scope chat:write. If you want to post to public channels without inviting the bot, also add chat:write.public.
- Scroll up and click Install to Workspace. Copy the Bot User OAuth Token — it starts with
xoxb-.
Step 2 — Add Slack Credentials in n8n
- In your n8n instance, open Settings → Credentials → New Credential.
- Search for Slack and select Slack API.
- Paste your
xoxb-token into the Access Token field and save.
n8n will verify the connection. A green tick confirms the credentials work.
Step 3 — Create a New Workflow
- Click + New Workflow in the n8n sidebar.
- Give it a descriptive name such as Slack Daily Summary.
Step 4 — Add and Configure a Trigger Node
Every workflow needs a starting point. For this example, use the Schedule Trigger to send a daily message.
- Click the + button on the canvas and search for Schedule Trigger.
- Set the interval — for example, every day at 09:00.
- Click Save.
Other popular triggers for Slack notifications include:
- Webhook — fire a notification when an external service posts data
- Google Sheets Trigger — react to new rows added to a spreadsheet
- HTTP Request — poll an API and trigger when conditions are met
Step 5 — Add the Slack Node
- Click + after the trigger and search for Slack.
- Select the Slack node.
- Under Credential, pick the Slack API credential you saved in Step 2.
- Set Resource to Message and Operation to Send.
- In the Channel field, type the channel name (e.g.
#general) or paste a channel ID. - Enter your message text in the Text field.
Using Expressions for Dynamic Messages
Static text is fine for simple alerts, but n8n's expression editor lets you pull in live data. Click the Expression toggle next to the Text field and use double curly braces to reference upstream node output:
Good morning, team! Today is {{ $now.toFormat('cccc, dd MMMM yyyy') }}. Here is your daily briefing.
You can reference any field from previous nodes the same way — e.g. {{ $json.taskCount }} from a preceding HTTP Request node.
Step 6 — Format Messages with Block Kit (Optional)
Slack's Block Kit lets you send richly formatted messages with sections, dividers, buttons and more. In the Slack node, enable Blocks under Additional Fields and paste a JSON block array. Example:
[
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Daily Report* :bar_chart:\nYour workflow ran successfully."
}
},
{ "type": "divider" }
]
Use the Slack Block Kit Builder (available at api.slack.com/block-kit/building) to design your layout visually and copy the JSON directly into n8n.
Step 7 — Test the Workflow
- Click Test Workflow (or press Ctrl + Enter).
- Check the Slack channel — your message should appear within seconds.
- Inspect each node's output in the n8n execution panel to confirm data is flowing correctly.
If the message does not appear, common causes are: the bot is not invited to the channel (/invite @n8nBot in Slack fixes this), or the scope chat:write was not saved before installing.
Step 8 — Activate the Workflow
Once your test passes, toggle the workflow from Inactive to Active using the switch in the top-right corner. n8n will now run it automatically on the schedule you defined.
Practical Use Cases
- Daily stand-up summaries pulled from a project management tool
- Error alerts when a monitored API returns a non-200 status
- Sales notifications when a new deal is closed in your CRM
- Server uptime reports delivered every morning
- Form submission alerts forwarded to a #leads channel
Tips and Troubleshooting
- Use an IF node before the Slack node to send messages only when a condition is true — avoids noisy notifications.
- Add a Set node to clean and reshape data before passing it to Slack.
- Store your Bot Token as a credential, never hard-code it in expressions.
- n8n's built-in Error Workflow feature can send you a Slack alert if any workflow fails — set it under workflow settings.
If you want to build and run automated Slack notification workflows without managing infrastructure, you can get started via n8n — including self-hosting for free or using n8n Cloud with 400+ integrations — to keep your team informed automatically.