Slack Setup
Enable Slack Channel
Create a New Slack Bottender App
Create Bottender App is the best way to start building a new application in Bottender.
To create a project, run:
npx create-bottender-app my-app
Make sure that you checked the slack option:

After finishing the Create Bottender App process, bottender.config.js, a config file, will be generated automatically for further channel settings.
Enable Slack Channel for Existing Apps
First, you need to have a bottender.config.js file that sets channels.slack.enabled as true:
module.exports = {
channels: {
slack: {
enabled: true,
path: '/webhooks/slack',
accessToken: process.env.SLACK_ACCESS_TOKEN,
verificationToken: process.env.SLACK_VERIFICATION_TOKEN,
},
},
};
The default webhook path is /webhooks/slack, but you can set your webhook path by path field.
Complete Slack Channel Settings
To make a Slack bot work, you have to set up the following values:
- Slack Access Token
- Slack Verification Token
- Webhook
Requirements
Before going further, we assumed that you already have:
- a Slack Account
- a Slack Workspace
Slack App & Bot User
Create a Slack App if you haven't.


Create a bot user within your Slack App.


Remember to install the Slack App in your workspace.


Note:
- If you are not familiar with how Slack bots work, you can find detailed instructions from Dialogflow's Slack Integration Document
Access Token & Verification Token
bottender.config.js looks up .env for Slack access token and Slack verification token.
# .env
SLACK_ACCESS_TOKEN=
SLACK_VERIFICATION_TOKEN=
Follow the below steps to find your access token and verification token.
- Slack access token could is in Slack Developer Console → \${YourApp} → Install App → Bot User OAuth Access Token

- Slack verification token could is in Slack Developer Console → \${YourApp} → Basic Information → Verification Token.

Webhook
After finishing the above settings, you can start your server with Slack webhook event listening using the following commands:
# in production mode
npm start
# or in development mode
npm run dev
When you run bottender in development mode, Bottender automatically run up a Ngrok client, and then you can get the information of webhook URL from the console like this:
App has started
slack webhook url: https://42bbf602.ngrok.io/webhooks/slack
server is running on 5000 port...
Then, you have to copy your Slack webhook URL to Slack Developer Console → \${YourApp} → Event Subscriptions, where you can pick which bot events to subscribe.



Note:
- If your bot doesn't respond after webhook settings, please take a closer look at bot events you subscribed to. Slack doesn't pick any bot events subscription by default. The first bot event you may subscribe to is
message.im, which is the event whenever a user posts a direct message to your bot.- For more info about Slack Events, please refer to Slack's official doc, API Event Types