Go to Slack

An introduction to Slack apps

The rundown
Read this if:You're still experimenting, prototyping, and exploring.
Read next:Planning your Slack app

Slack apps extend and expand the capabilities of your Slack workspace. Cultivate conversation, customize functionality, or integrate ingenious services by building an app.

The workspace is your sandbox, and this guide will show you some of the toys.

Building Slack apps

In this guide, we'll give you an overview of the Slack app platform. We'll point you in the right direction to find out even more about each aspect along the way, helping you to build a brilliant Slack app.

What can apps do?

Slack apps enhance internal communication and automate all kinds of marvelous or mundane tasks.

An app can pipe context and data from tools and services to messages in Slack, letting users get work done faster and smarter.

To make this magic happen, every Slack app has access to a bag of tricks—a range of APIs that provide access to read, write, and update all kinds of data in Slack.

Some of these features mirror what users can do in Slack clients:

Send messages to all kinds of conversations using webhooks and Web APIs.

Read messages, conversations, and other data with Web, RTM, and Events APIs.

Create, archive, and manage conversations using conversation-specific Web APIs.

Manage user accounts and groups using SCIM APIs.

Act on mentions, or receive notifications about various goings-on via Events APIs.

Apps can also do things in Slack that no human user can, with no illusions or hocus-pocus involved:

Add interactive components to messages to enable action and reaction.

Empower users to invoke workflows at will using slash commands or custom message actions.

Choose from these features—and many more like them—to conjure the app that you need. There are many different spell-binding combinations that can be created—from a simple, single-purpose tool, to a complex, interactive service integration.

They say a magician never reveals their secrets. But in our guides to planning your Slack app we reveal the process of choosing features for your app.

You'll also want to read our guides to designing a great app experience for tips and advice about defining the look and feel of your Slack app.

Keep reading this guide to learn more about how you can create Slack apps, and to understand what type of authentication to use with your app.

Creating, managing, and building apps

Whether a first-time Slack app integrator or a seasoned veteran, it's often best to just get started and learn what's what along the way.

Create a Slack app

Here's what's in store for you while taking this heroic first step:

Creating an app dialog

Pick a name for your new app and a workspace to associate it with. You can change the app's name as often as you want. The app's associated workspace is a permanent choice, but you can still distribute your app to other workspaces.

That's it. Once created, you have a Slack app to build and manage.

Management of apps

Name, configure, twist, shape, and install your Slack apps by travelling to the app dashboard. There you'll find a list of the apps you own or collaborate with. Just click on the name of an app to configure that app's settings.

Can't find the app you're looking for? Make sure you're signed in to the associated workspace and reload as necessary. You can sign in to multiple workspaces at once on the Slack API site.

Building your app

The blank canvas of a freshly-unwrapped Slack app can be a little daunting. To give you a nudge in the right direction, we've created a series of guides to help plan the app you'll build.

We also provide a set of resources, SDKs, and tools to make the app building process faster and easier. Read our guide to building a Slack app to discover them.

Keep reading to learn about how you can install and distribute the Slack apps that you've built.

Installing and distributing apps

Slack apps are installed to workspaces by the consent of users via a process called authorization.

If authorized by a user, an app can take action on behalf of that user, or access permitted data visible to that user. A user's authorization also allows the app to take action as the app—publishing messages from the app, for example.

This authorization process can look a little different depending on how the app is distributed. Let's run through the different types of distribution, and how they affect the type of authorization flow you'll need to build.

Apps for a single workspace

When you created your Slack app, you associated it with a workspace. Your app can be installed to its associated workspace easily with a couple of clicks in the app dashboard.

After installing your app, you'll get a single user access token that can be used to authenticate API calls. The app will be able to make these calls on behalf of either you, or most commonly, on its own behalf.

Slack apps built to use this type of installation method are referred to as internal integrations. These apps can use the full range of app capabilities, but can't be distributed to any other workspaces.

A lot of apps will be completely content staying at home like this—public distribution is a completely optional step that isn't right for every app.

Read more about how to build an app for your workspace in our guide to internal integrations.

If your app needs to take action on behalf of other users, you'll need to build an OAuth 2.0 flow.

Apps distributed to multiple workspaces

By default, newly built Slack apps can only be installed in their birthplace workspace. Installing your app on other workspaces means learning the sad songs and waltzes of OAuth 2.0.

Once you've built an authorization flow using OAuth 2.0, your app will be able to generate access tokens for each workspace—and user—on the fly. This is one of the key steps to letting your app roam free.

Read more about enabling public distribution.

Once public distribution is enabled, you'll get access to an embeddable Add to Slack button, a shareable URL that kicks off the installation process when clicked, and an HTML meta tag to enable Slack app suggestions.

Apps distributed via the App Directory

The Slack App Directory is a carefully curated selection of publicly distributed Slack apps.

When your app is capable of being distributed to multiple workspaces, there are a few adjustments you'll need to make to the app before submitting it for App Directory consideration.

To learn more, read our App Directory checklist which explains how to increase the chances of your app's approval. That guide also outlines the entire review and submission process.

If your app is approved for listing in the App Directory, it will gain a listing page. Use this space to tell your app's story, compellingly preview your app's capabilities and user experience, and ultimately attract users. We have some guidelines to help you build a great App Directory page.

Finally, you can take advantage of direct installs, which allow any user to install your app straight from the App Directory in a couple of clicks.

Your next steps

You might have found something to pique your interest as you went through this overview. But if you kept diligently reading to this point, here's a reminder of what we recommend as next steps.

We explained some of the features available to Slack apps, but how do you know which your app should use? We have a section dedicated to planning your Slack app that will guide you on the right course.

It's extremely likely that the app you plan will be sending some messages. If so, read our section on designing a great app experience.

When it comes time to build that app, you don't need to write everything from scratch. Take advantage of our SDKs and developer tools to make the job simpler and quicker.