|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.
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.
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 various spaces 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:
Apps can also do things in Slack that no human user can, with no illusions or hocus-pocus involved:
Choose from these features—and many more like them—to conjure the app that you need. Implement these features in one of the various surfaces available for use by apps.
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 to discover the real estate within Slack that's available for habitation by your app.
Create welcoming spaces for people to use your Slack app by using the range of possible app surfaces.
A surface is anywhere an app can express itself through communication or interaction.
Read our overview of app surfaces to see more about each of these spaces, and what your app can do with each.
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.
Here's what's in store for you while taking this heroic first step:
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.
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.
The development of Slack apps doesn't have to be a solo endeavour. Add App Collaborators to help manage the app's settings and App Directory listings.
Collaborators are able to perform important actions like installing single workspace apps to their associated workspace, deleting apps, and managing and removing other collaborators (including you, the app creator). With that in mind, be very deliberate about who you add as a collaborator.
Within your app dashboard, you'll find a Collaborators tab that will allow you to add and remove collaborators, and also allow you to leave any apps that you are a collaborator of.
The app's associated workspace Slackbot will dispatch messages to fellow collaborators as changes to the roster are made — or in the event that a Slack app is deleted.
If you have them, you may assign your workspace's single or multi-channel guests as App Collaborators. These guests cannot delete a Slack app, nor modify your carefully pruned roster of co-conspirators.
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.
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. There are four levels of distribution that apps can progress through during their development lifecycle:
Your new app is created devoid of features, uninstalled. After you implement some features, it'll become installable.
Sometimes that's all you need. Many apps are used this way, as internal apps exclusive to a company's workspace. Perhaps your app integrates with your hand-rolled bug tracker or that funky old database running on a 286 under the boss' desk. Perhaps it just provides some unique benefits to your company culture.
Whatever your single-workspace apps do is your business.
Building an authorization flow using OAuth 2.0 will let your app generate access tokens for each workspace — and user — on the fly. This optional step allows your app to be distributed to multiple workspaces.
The Slack App Directory lists publicly distributed Slack apps that have been reviewed to ensure they meet high standards of quality and usefulness.
Listing on the App Directory is another completely optional step that won't be necessary (or even possible) for many Slack apps.
Read our overview of app distribution to learn more about these different methods of sharing and installing your apps.
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 communicating with users. 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.