Step 1: Retrieve credentials for third-party apps

Connections

Slack OAuth 2.0

The vast majority of actions in this component use OAuth 2.0 for authentication. To create a Slack OAuth 2.0 connection, first create and configure a Slack App by visiting the Slack Developer App Portal:

  • Click Create New App
  • Choose to create the app From scratch
  • Give your app a name and select your workspace. We'll configure it to be multi-workspace capable in a moment
  • Select OAuth & Permissions from the sidebar
    • Under Redirect URLs, add
    <https://oauth2.integration-platform.anduin.app/callback>
    
    <https://oauth2.integration-platform.eu.anduin.app/callback>
    
    • At the bottom, add some User Token Scopes if you plan for this integration to send messages, or Bot Token Scopes if a Slack "bot" will send the messages. What scopes you need is dependent on what types of things your Slack integration will need to do (create channels, send messages, etc). If you just need to send messages to a channel as a bot, add these scopes: chat:write chat:write.public. If you want to send messages as a user, edit the Auth URL add chat:write to a user_scope query parameter on the Authorization URL to get a User token. To manage channels, add the channels:write scope. Your Auth URL, then, will look something like this: https://slack.com/oauth/v2/authorize?user_scope=chat:write
  • Next, select Distribute App under Manage Distribution. Confirm that you have "removed hard coded information" and select Activate Public Distribution. Your app needs to be publicly distributed for your customers to install it in their Slack workspaces.
  • Finally, open Basic Information. Take note of the Client ID, Client Secret and Signing Secret.
    Now it's time to configure your integration to use your Slack OAuth 2.0 app. Add a Slack step to your integration - that'll create a connection config variable for you. Open up that connection config variable.

Enter Client ID, Signing Secret and Client Secret that you noted before.

The Scopes that you need to enter depends on what Slack actions your integration includes:

If you're just sending messages to a channel, you can enter the scopes chat:write chat:write.public and that will assign you a bot token that can write messages to public channels.

  • Conversation and channel-related actions require admin.conversations:write.
  • Enter scopes with spaces in between them (e.g. chat:write users:read users:read.email).

A list of all Slack OAuth scopes and what each does are available in their docs.