Setting up a Slack Surface

Use a Slack Surface to let people interact with a Product from Slack. It works well for direct messages, mentions, channels, and threaded replies.

Before you begin, create a Product and decide which Capability will handle Slack messages. You will also need access to your Slack workspace so you can create and install a Slack app.

Create the Slack Surface

  1. Open the Product you want to connect to Slack.
  2. Go to Surfaces and click Add Surface.
  3. Select Slack.
  4. Enter a name for the Slack app.
  5. Review the manifest preview and create the app in Slack.

The setup wizard guides you through the Slack app fields Runtype needs to connect the Surface.

Connect the Slack app

  1. In Slack, open the app you created and go to Basic Information, then find the App Credentials section.
  2. Copy the Client ID, Client Secret, and Signing Secret into the Runtype setup wizard.
  3. Click Add to Slack. A popup opens Slack’s authorization page.
  4. Approve the requested permissions in Slack.

Runtype completes the install automatically and shows the connected workspace when setup is complete. The bot token is captured securely on the server and never passes through your browser.

Choose how the Surface responds

A Slack Surface can receive direct messages, channel messages, mentions, and replies in threads. After the Surface is connected, attach the right Capability so incoming Slack messages route to the Flow or Agent you want to run.

If you have not attached a Capability yet, see Adding Capabilities to a Product.

Test the connection

  1. Send a direct message to the Slack app or mention it in a channel where it is available.
  2. Confirm the message reaches your Product.
  3. Check that the response appears in Slack.

If verification succeeds, your Slack Surface is ready to use.

Start with direct messages while you test. Once the response looks right, expand to channels or mention-based workflows.

Building headlessly through the Runtype MCP server or an agent? Call get_surface_setup with the Product and Surface IDs to check whether the Slack Surface is live yet. If it still needs the OAuth install, the response returns the dashboard link to complete it; get_product_setup reports the same for every Surface on the Product at once.

Next steps

To understand how Surfaces work across Products, read What are Surfaces?. If you are still deciding how to expose your Product, compare this setup with Setting up a chat Surface and Setting up an API Surface. When the Surface exposes more than one Capability, see Surface orchestration modes for how requests get routed.