Several aspects of the Web API & Events API are retiring or changing on February 24, 2021.
Moving on from custom integrations
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!
- What can I do with a Slack app?
- Moving to Slack apps from Custom Integrations
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.
Make a new Slack app and add in any of the features you want.
Slack apps generate a new token for every user, and each user has their own set of permissions granted.
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:
- A message was posted in a particular public channel
- A message was posted containing specific trigger words
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.
Once it's installed, use the app's settings to add the permission scopes you need for your testing.