Configure a Slack app
Before integrating Slack chat with Novu, you must create and configure a Slack app. The Slack app manages the OAuth permissions, bot token scopes, and redirect URLs needed for Novu to connect to your users’ workspaces securely.Create a Slack app
First, you need to create a Slack app. This provides you with the credential you need to create a Slack integration in Novu.Open the Slack API dashboard
Create an app
Select From scratch
Enter app name and workspace

Create the app
- App ID
- Client ID
- Client Secret

Configure scopes (Permissions)
Your app needs permission to perform actions like sending messages or reading channel lists.Open OAuth & Permissions
Open Scopes
Add an OAuth Scope

Add recommended scopes
chat:writechat:write.publicchannels:readgroups:readusers:readusers:read.email- (optional)
incoming-webhookif you want Slack’s built-in channel picker.
Set the redirect URL
This tells Slack where to send the user after they successfully authorize your app.Open OAuth & Permissions
Open Redirect URLs
Add a redirect URL

Paste the Novu callback URL
Save the URLs
Configure Slack integration in Novu
Once your Slack app is set up, the next step is to configure the Slack Chat integration inside Novu.Log in to the Novu dashboard
Open Integrations Store
Connect a provider
Select Slack
Fill in credentials
- Application Id: Paste your Slack app App ID.
- Client ID: Paste your Slack App Client ID.
- Client Secret: Paste your Slack App Client Secret.
- Redirect URL (Optional): Enter the URL where you want users to be redirected to after they successfully connect their workspace. If there is no redirect URL, then Novu closes the tab immediately after the OAuth flow completes.

Create the integration
- Generate OAuth (Connect Slack) URLs for your users
- Receive Slack’s OAuth callback.
- Store workspace tokens as connections.
Let users connect their Slack workspace
To send messages to Slack, your users must first authorize Novu to access one of their Slack workspaces. This authorization happens through Slack’s OAuth flow, which Novu generates and manages for you.Generate the OAuth URL
When a user clicks Connect Slack in your application, your backend should request a unique authorization URL from Novu. This URL is specific to the Subscriber or the Context (Tenant) it will be generated for.- Node.js
- Python
- Go
- PHP
- .NET
- Java
- cURL
Redirect the user
Once your backend returns theoauthUrl, open it in a new tab or window.
Review permissions
Approve authorization
Redirect to Novu
Novu exchanges the code
Novu creates a connection
connectionIdentifier when creating endpoints.You can also provider a custom connectionIdentifier to the generateChatOAuthUrl() and then connection with such identifier will be created instead of randomly generated one.generateChatOAuthUrl(), you can run the Slack OAuth flow with your own app, use the access token with Slack’s APIs directly, then register the workspace with Novu via channelConnections.create (or POST /v1/channel-connections):subscriberId or context — same as the Novu-managed OAuth flow.Choose delivery destinations
After a workspace is connected, you or users decide where in Slack to send the messages. This can either be a Slack channel, to a user or an incoming webhook URLs. After the delivery location has been selected, a Slack endpoint is then created for that location.- Slack channel
- Slack user
- Incoming webhook
Get the channel ID
Create the endpoint
- Node.js
- Python
- Go
- PHP
- .NET
- Java
- cURL
Send notifications
Once you have at least one Slack connection, and one or more Slack endpoints. You can trigger the workflow:- Node.js
- Python
- Go
- PHP
- .NET
- Java
- cURL
Find Slack endpoints
Use the workspace connection
Deliver messages
Using Slack with agents
Slack is a supported agent provider. Connect your Slack app to an agent so users can message in channels or DMs and get replies in the same thread — without building Slack event handling yourself.Build agents on Slack
What you get
When Slack is connected to an agent:- Users message your app in Slack and your agent responds in the same thread
- Conversations appear in the dashboard under Agent Conversations
- Supported content includes text, markdown, files, interactive cards, reactions, and typing indicators