Slack
Requirements
HTTPS Endpoint
To connect to Slack, an HTTPS endpoint is required. Set the externalUrl field in botpress.config.json. You can use the following methods to create this endpoint:
- Create an HTTPS tunnel to your machine using Ngrok. This tutorial works on pretty much any Operating System (tutorial).
- Using Nginx and Let's Encrypt. This tutorial is based on the Linux Ubuntu 16.04 Operating System (tutorial).
- Use Serveo to create an HTTPS tunnel to your machine (tutorial).
note
Setup
Create Your Bot
First, you need a bot in Botpress. Take note of your bot's ID.
Connecting Your Bot to Slack
- Go to your apps page. 
- Click Create new app, select From scratch then give it a name. Remember your App's name, you'll need it in a few minutes. 
- Open the page Features, then select Interactivity & Shortcuts and turn the Interactivity switch to On. 
- Set the request URL to: - <EXTERNAL_URL>/api/v1/messaging/webhooks/<YOUR_BOT_ID>/slack/interactive.
- Replace EXTERNAL_URLby the value ofexternalUrlin yourbotpress.config.json;
- Replace YOUR_BOT_IDwith your bot ID.
- Save your changes. 
- Open the page Features. Then, click OAuth & Permissions and add - chat:writeunder the Scope > Bot Token Scopes section.
- Open the page Features, then click App Home and under the Show Tabs section, check Allow users to send Slash commands and messages from the messages tab. 
- From the Settings, go to the Basic Information. Then, go to the Install app section, install the app by clicking the Install to Workspace button. On the next screen, click the Allow button. 
- In Botpress, edit - data/bots/<YOUR_BOT_ID>/bot.config.json. In the- messaging.channels.slacksection write this configuration:
- enabled: set to- true;
- signingSecret: take the value- Signing Secreton the section- Basic Information>- App Credentials;
- useRTM:- false(- trueif you have a legacy app);
- botToken: take the value- Bot User OAuth Tokenon the section OAuth & Permissions > OAuth Tokens for Your Workspace.- Your - bot.config.jsonshould look like this :
{
  // ... other data
  "messaging": {
    "channels": {
      "slack": {
        "enabled": true,
        "signingSecret": "your_signing_secret",
        "useRTM": false,
        "botToken": "your_bot_token"
      }
      // ... other channels can also be configured here
    }
  }
}
- Restart Botpress. 
- Back on the your Slack app's page, open the page Features. Then, click Event Subscriptions and turn the Enable Events switch to On. 
- Set the - Request URLto:- <EXTERNAL_URL>/api/v1/messaging/webhooks/<YOUR_BOT_ID>/slack/events.
- Replace EXTERNAL_URLby the value ofexternalUrlin yourbotpress.config.json;
- Replace YOUR_BOT_IDwith your bot ID.
caution
If the slack endpoint is responding with Cannot resolve challenge. The configuration at step 9 is not set in the right place. The configuration need to be inside the chatbot configuration.
- Under Subscribe to bot event, add - message.imand- message.channels(you can also add other types of messages if you want).
- Wait for the green - Verifiedmessage to appear next to- Request URL. Save your changes.
- A yellow banner will be displayed at the top of the screen. Click the reinstall your app link. On the next screen, click the Allow button. 
- Quit the Slack app and re-open it. 
- In Slack, under the Apps section of the sidebar, click the + Add apps button. In the search bar, type the name of your Slack App. Click on your Slack app in the search results. You can now chat with your Botpress bot in Slack.