IBM Cloud Docs
Integrating with Slack

Integrating with Slack

IBM Cloud

Slack is a cloud-based messaging application that helps people collaborate with one another.

After you create an action, you can integrate your assistant with Slack.

When integrated, depending on the events that you configure the assistant to support, your assistant can respond to questions that are asked in direct messages or in channels where the assistant is directly mentioned.

An example and instructions on how to create a Slackbot using watsonx Assistant, Slack, and Db2 are given in the solution tutorial, Build a database-driven Slackbot.

Before you begin

To integrate Slack with your assistant, you must have the necessary roles and permissions:

Roles Permissions
Workspace or
Org owner
View information
Post information
Perform actions

For more information, see Slack-Getting started.

Adding the Slack integration

  1. Go to the Integrations page by clicking the integrations icon (Integrations icon) in the left menu.

  2. Click Add on the Slack tile.

  3. Click Confirm.

  4. You need to have a Slack app to connect to.

    If you don’t have a Slack app, create one now. See Starting with Slack apps.

  5. Go to the Your Apps page on the Slack website, and then click the app you want to use.

    Open the Slack app in a new browser tab, so you can easily switch back and forth between the Slack app settings page and watsonx Assistant Slack integration configuration page.

  6. From the settings page for your Slack app, open the App Home page.

  7. Add access scopes for your Slack app.

    The button label might be Review Scopes to Add or Update scopes depending on whether you are creating a new app or editing an app that you created before February 2020.

    The method for Slack access changed. For more information about it, read the Slack blog post about it.

  8. Assign bot token scopes to your Slack app. At a minimum, apply the following scopes:

    • app_mentions:read
    • chat:write
    • im:history
    • im:read
    • im:write
  9. Click Install App to workspace, and then allow the installation when prompted.

    If you are editing scopes for an existing application, reinstall it.

  10. From the Slack settings App Home page, enable the Always Show My Bot As Online setting.

  11. Go to the OAuth and Permissions page in Slack, copy the Bot User OAuth Access Token.

  12. From the watsonx Assistant Slack integration configuration page, paste the token that you copied in the previous step into both the OAuth access token and Bot user OAuth access token fields.

  13. On the Slack app settings page, go to the Basic Information page, and then find the App Credentials section. Copy the app credential verification token.

  14. From the watsonx Assistant Slack integration configuration page, paste the verification token that you copied in the previous step into the Verification token field.

  15. Click Generate request URL, and then copy the generated request URL.

  16. Return to the Slack app settings page. Open the Event Subscriptions page, and then turn on Enable Events. Paste the request URL that you copied in the previous step into the field.

  17. On the Event Subscriptions page in Slack, find the Subscribe to Bot Events section. Click Add Bot User Event, and then select the event types you want to subscribe to. You must select at least one of the following types:

    • message.im: Listens for message events that are posted in a direct message channel.

    • app_mention: Listens for only message events that mention your app or bot.

      Choose the app_mention entry in normal font, not the app_mention entry that is in bold font.

  18. Click Save Changes.

  19. Optional: To add support for showing buttons, menus, and disambiguation options in the Slack app, go to the Interactive Components tab and enable the feature. Paste your request URL in the provided text entry field, and then click Enable Interactive Components.

If a token field required for authentication is changed, then all entries in related fields must be filled and validated again.

Action considerations

The rich responses that you add to an action are displayed in a Slack channel as expected, with the following exceptions:

  • Connect to live agent: This response type is ignored.

  • Option: This response type shows a list of options that the user can choose from.

    • After a user clicks one of the options, the choices disappear and are replaced by the user input that is generated by the user's choice. If you include multiple response types in a single response, position the option response type last. Otherwise, the output might contain a mix of responses and user inputs that can confuse the user.
    • If the options are displayed in a drop-down list, then each option value must be 75 characters or fewer in length. When a list includes 5 or more options, it is displayed in a drop-down list automatically.

Chatting with the assistant

To start a chat with the assistant, complete the following steps:

  1. Open Slack, and go to the workspace associated with your app.
  2. Click the application that you created from the Apps section.
  3. Chat with the assistant.

The welcome action is not processed by the Slack integration. The welcome message is not displayed in the Slack channel like it is in the assistant preview. It is not triggered from here because nodes with the welcome special condition are skipped in action flows that are started by users. Slack waits for the user to initiate the conversation.

The action flow for the current session is restarted after 60 minutes of inactivity (5 minutes for Lite and Standard plans). This means that if a user stops interacting with the assistant, after 60 (or 5) minutes, any context variable values that were set during the previous conversation are set to null or back to their default values.

Before you begin

To integrate Slack with your assistant, you must have a Slack app and the necessary roles and permissions:

Roles Permissions
Workspace or
Org owner
View information
Post information
Perform actions

To create a slack app, see Quickstart: Start a workflow.

For more information on roles and permissions, see Slack-Getting started.

Adding the Slack integration

  1. Go to the Integrations page by clicking the integrations icon (Integrations icon) in the left menu.

  2. Click Add on the Slack tile.

  3. Then, click Add again.

Get started

There are four steps to setting up Slack:

  • Set up your Slack bot
  • Connect watsonx Assistant to Slack
  • Configure your Slack bot
  • Connect your assistant

Set up your Slack bot

  1. Go to the Your Apps page on the Slack website, and then click the app you want to use or create a new one.

Connect watsonx Assistant to Slack

  1. On the Slack app settings page, go to the Basic Information tab and scroll down to the App Credentials section.

  2. Copy your verification token and paste it in the Assistant setup page.

  3. On the Slack app settings page, go to Features > OAuth & Permissions and scroll down to the Bot Token Scopes section.

  4. Click Add an OAuth Scope and select the follwing scopes:

    • app_mentions:read
    • chat:write
    • im:history
    • im:read
    • im:write
  5. Scroll up the page to the OAuth Tokens for Your Workspace section and click Install App to Workspace, and then click Allow.

    You should be redirected back to the OAuth & Permissions page.

  6. Copy and paste your Bot user OAuth access token in the Assistant setup page.

  7. Click Next to continue.

Configure your Slack bot

  1. Copy the Generated request URL.

  2. On the Slack app settings page, go to Features > Event Subscriptions and switch the Enable Events toggle on.

  3. Paste the URL link under Request URL.

    Wait until the you see Verified with a green tick next to Request URL.

  4. Scroll down and click Subscribe to bot events.

  5. Select the event types you want to subscribe to. You must select at least one of the following types:

    • message.im: Listens for message events that are posted in a direct message channel.

    • app_mention: Listens for only message events that mention your app or bot.

      Choose the app_mention entry in normal font, not the app_mention entry that is in bold font.

  6. Click Save Changes.

  7. On the Assistant setup page, click Next.

Connect your assistant

  1. On the Slack app settings page, go to Features > AppHome and click Edit next to App Display Name.

  2. Click Save once you have made the changes.

  3. Switch the toggle Always Show My Bot as Online toggle to on.

  4. Go to the Show Tabs section and switch the Messages Tab toggle to on.

  5. Check the Allow users to send Slash commands and messages from the messages tab checkbox.

  6. If you want to add support for showing buttons, menus, and disambiguation options in the Slack app, do the following steps:

    1. Go to the Interactivity & Shortcuts tab and enable the feature
    2. Paste your request URL in the provided text entry field.
    3. Click Save Changes.
  7. On the Assistant setup page, click Finish.

If a token field required for authentication is changed, then all entries in related fields must be filled and validated again.

Action considerations

The rich responses that you add to an action are displayed in a Slack channel with the following exceptions:

  • Connect to live agent: This response type is ignored.

  • Option: This response type shows a list of options that the user can choose from.

    • After a user clicks one of the options, the existing selections disappear and replaces the selections with the user input that is generated by the user's selection. If you include multiple response types in a single response, you must position the option response type at the end to avoid confusions due to mix of responses and user inputs.

    • If the options are displayed in a drop-down list, then each option value must be 75 characters or fewer in length. When a list includes 5 or more options, it is displayed in a drop-down list.

Chatting with the assistant

To start a chat with the assistant, complete the following steps:

  1. Open Slack, and go to the workspace associated with your app.
  2. Click the application that you created from the Apps section.
  3. Chat with the assistant.

The welcome action is not processed by the Slack integration. The welcome message is not displayed in the Slack channel like it is in the assistant preview. It is not triggered from here because nodes with the welcome special condition are skipped in action flows that are started by users. Slack waits for the user to initiate the conversation.

The action flow for the current session is restarted after 60 minutes of inactivity (5 minutes for Lite and Standard plans). This means that if a user stops interacting with the assistant, after 60 (or 5) minutes, any context variable values that were set during the previous conversation are set to null or back to their default values.