Channels & ProvidersChat
Slack
Configure Slack as a chat provider in Notiflows
Slack integration enables notifications to be sent as direct messages or to channels in your Slack workspace.
Configuration
To create a chat channel with Slack, configure the following:
| Field | Required | Description |
|---|---|---|
| Bot Token | Yes | Bot User OAuth Token (starts with xoxb-) |
Prerequisites
Before configuring Slack in Notiflows:
- A Slack workspace
- A Slack app created at api.slack.com/apps
Creating a Slack App
- Go to api.slack.com/apps
- Click Create New App > From scratch
- Enter an app name and select your workspace
- Go to OAuth & Permissions and add the following bot token scopes:
chat:write— Send messageschat:write.public— Send messages to channels without joiningchannels:read— List public channelsgroups:read— List private channelsusers:read— Look up users (optional, for user ID resolution)users:read.email— Look up users by email (optional)
- Click Install to Workspace and authorize the app
- Copy the Bot User OAuth Token (
xoxb-...)
Setup in Notiflows
- Navigate to Channels in your project
- Click Create Channel
- Select Chat as the channel type
- Select Slack as the provider
- Paste your Bot Token
- Save the channel
User Channel Settings
To send Slack notifications to a user, set their Slack channel settings via the Admin API:
curl -X PUT /api/admin/v1/users/:user_external_id/channel-settings/:channel_id \
-d '{ "settings": { "slack_user_id": "U0123456789" } }'| Field | Description |
|---|---|
slack_user_id | Slack member ID for direct messages (starts with U) |
slack_channel_id | Slack channel ID for channel messages (starts with C) |
At least one must be provided. To find a user's Slack member ID, open their profile in Slack and click Copy member ID.
Templates
Chat templates support two content types:
- Markdown — Simple markdown formatting, converted to Slack's
mrkdwnformat - JSON — Slack Block Kit format for rich messages
Use Liquid templating for dynamic content:
New order from {{ actor.first_name }}: #{{ data.order_id }}Available variable contexts:
recipient.*— Recipient user dataactor.*— User who triggered the notificationdata.*— Custom payload passed when triggering the notiflow