If you're still reading, we suspect that you either have an existing legacy custom integration, or that you stumbled across this page looking for a general overview of what you can do with apps on Slack.
For developers with those existing legacy integrations, the old docs for each feature are still available, and we'll keep them around in case you need them.
If you're just starting out, we recommend that you learn instead about the replacement for legacy integrations - Slack apps. You'll find a section below filled with tips about the right learning path to take!
If you dream it, you can do it. The Slack platform offers a range of ways for users and apps to interact, all the APIs you need to read and write data from and to conversations and users, and various methods of distribution.
Slack apps can interact with users in lots of different ways, and we leave it up to developers like you to pick the interactions most suited to their audiences.
Once users start interacting with your Slack app, our APIs will let you retrieve the data you need from the various resources in Slack, and send data back to make updates or publish something new.
If you want to build an app that's just for your workspace, you can do that. If you want to build an app to share with the wide world, you can do that too.
If you've built a legacy custom integration in the past, you'll find all of the same functionality available to use in Slack apps. The implementation of these functions has changed though, so below is a handy list of how to replace your legacy features.
You'll need to make a new Slack app before adding in any of the features you want. Slack apps come in two flavours - our preference is the newer workspace apps. These apps have a new type of workspace-centric app token used for interacting with the Slack API, and a new progressive permissions model for those tokens.
There are also traditional apps which generate a new token for every user, and where each user has their own set of permissions granted. These types of apps will soon also be called legacy, so we encourage you to create a workspace app if you're starting from scratch.
You can read more about the differences between these types of apps in our workspace tokens guide. To create either type of app, just follow the instructions in their respective docs.
Slash Commands let users trigger an interaction with your app directly from the message box in Slack. You can create custom commands for Slack apps quickly and easily by following our Getting Started guide.
The process of handling and responding to those commands is almost identical compared to the legacy process you might have already built.
Let users converse with your app in Slack by building bots. Our guide to Enabling Interactions with Bots will help you recreate any existing legacy bot functionality you might already have in a Slack app.
The Events API provides a fully functional alternative for the features of Outgoing Webhooks.
More specifically, Outgoing Webhooks are used to send a notification to an app about the following activities:
When an app receives that data payload, it'll be able to see both the source
channel and the
text of the posted message. Using
channel will help replicate the first Outgoing Webhook feature, and looking for the trigger words in the
text string will replicate the second.
Even better, while Outgoing Webhooks only worked for public channels, the Events API can be used with private channels, direct message conversations, or multi-party direct message conversations. There are also dozens of other event types available for subscription, and for your app to react to. Read the Events API overview for a better idea of all the things you can use it for.
If you were using a legacy token to make calls with the Web API, you'll need to generate a new one for your new Slack app. If you chose to build a workspace app, you can install it to your own workspace in a couple of clicks. Then prepare it for distribution by following our guide to using OAuth to generate workspace tokens. Traditional apps can follow our guide to the OAuth flow.
Once it's installed, use the app's settings to progressively add the permission scopes you need for your testing.