This is unreleased documentation for Rasa Open Source Documentation Master/Unreleased version.
For the latest released documentation, see the latest version (2.0.x).

Version: Master/Unreleased


SlackBot Objects

class SlackBot(OutputChannel)

A Slack communication channel

SlackInput Objects

class SlackInput(InputChannel)

Slack input channel implementation. Based on the HTTPInputChannel.


| __init__(slack_token: Text, slack_channel: Optional[Text] = None, proxy: Optional[Text] = None, slack_retry_reason_header: Optional[Text] = None, slack_retry_number_header: Optional[Text] = None, errors_ignore_retry: Optional[List[Text]] = None, use_threads: Optional[bool] = False) -> None

Create a Slack input channel.

Needs a couple of settings to properly authenticate and validate messages. Details to setup:


  • slack_token - Your Slack Authentication token. You can create a Slack app and get your Bot User OAuth Access Token here <>_.
  • slack_channel - the string identifier for a channel to which the bot posts, or channel name (e.g. '#bot-test') If not set, messages will be sent back to the "App" DM channel of your bot's name.
  • proxy - A Proxy Server to route your traffic through
  • slack_retry_reason_header - Slack HTTP header name indicating reason that slack send retry request.
  • slack_retry_number_header - Slack HTTP header name indicating the attempt number
  • errors_ignore_retry - Any error codes given by Slack included in this list will be ignored. Error codes are listed here <>_.
  • use_threads - If set to True, your bot will send responses in Slack as a threaded message. Responses will appear as a normal Slack message if set to False.


| async process_message(request: Request, on_new_message: Callable[[UserMessage], Awaitable[Any]], text, sender_id: Optional[Text], metadata: Optional[Dict]) -> Any

Slack retries to post messages up to 3 times based on failure conditions defined here:


| get_metadata(request: Request) -> Dict[Text, Any]

Extracts the metadata from a slack API event (


  • request - A Request object that contains a slack API event in the body.


Metadata extracted from the sent event payload. This includes the output channel for the response, and users that have installed the bot.