You must enable javascript in order to use the Slack API Documentation. You can do this in your browser settings.
Go to Slack

Moving on from custom integrations

You're reading this because you're looking for info on legacy custom integrations - an outdated way for teams to integrate with Slack. These integrations lack newer features and they will be deprecated and possibly removed in the future. We do not recommend their use.
Instead, we suggest that you read about their replacement - Slack apps. Slack apps can be built just for your own workspace or distributed through the App Directory, and they can use the latest and greatest APIs and UI features.

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 want to learn how to move your legacy integration to a new Slack app, we have some tips for you below.


What can I do with a Slack app?

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.

Enabling interactions with users

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.

Empower users to invoke workflows at will using slash commands.

Let users do things with messages by creating custom message actions.

Keep things friendly and conversational by turning your app into a bot.

Create interactive messages to act as starting points for complex workflows.

Reading and writing data

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.

The Web API is the best way to access historical data in Slack workspaces, and make changes to them - like sending messages.

Use the Events API to get pushes about all sorts of activities in workspaces the minute they happen.

Manage and monitor your workspaces programmatically using the SCIM and Audit Logs.

Choose how to share your apps

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.

Build an internal integration with workspace apps and install for your workspace with just one click.

Use OAuth installation to allow your app to be distributed beyond your workspace.

Prepare your app for the App Directory to boost distribution and discovery.


Moving to Slack apps from Custom Integrations

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.

Creating a Slack app

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.

Incoming Webhooks

Incoming Webhooks are a simple way to post messages from apps into Slack. Creating an Incoming Webhook gives you a unique URL to which you send a JSON payload with the message text and some options.

Using Incoming Webhooks with Slack apps is very similar to the legacy process you're familiar with. Follow our Getting Started guide to set up new webhooks for use with Slack apps.

Slash Commands

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.

Bot Users

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.

Outgoing Webhooks

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:

  1. A message was posted in a particular public channel
  2. A message was posted containing specific trigger words

The Events API can be used to replace this by subscribing to the message.channels event type. This will push a data payload to an app every time a message is posted to a public channel.

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.

Web API

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.

For testing and development, you can quickly and easily create a new workspace app and install it in two clicks - just follow our Getting Started guide.

Once it's installed, use the app's settings to progressively add the permission scopes you need for your testing.