The Slack platform lets you extend, expand, and automate your workspaces. Cultivate conversation, inspire action, and integrate services by building apps or workflows.
The workspace is your sandbox, and this guide will show you some of the toys.
Keep reading to get an overview of our platform's features. We'll point you in the right direction to learn even more about each piece along the way.
The Slack platform offers a couple of different routes to automate and enhance your Slack workspaces:
You can use workflows and apps on their own, or combine them as your needs demand. Read on to learn more and decide the best route for you.
Slack workflows are no-code solutions that automate routine tasks in Slack. Workflows are built with Workflow Builder using a limited set of triggers and steps.
Triggers initiate a workflow. They may be user-invoked actions, like selecting a shortcut or reacting with an emoji. Or they could be automatic, like scheduled dates and times, or posting to a webhook.
Steps follow the trigger’s lead. A step can perform a basic task such as post a message into a conversation or prompt a user for short-form information in a modal.
You can build custom workflows from within Slack, or start off with templates like daily stand-ups or request triaging.
If you want greater customization and extensibility, read on to learn about apps and the surfaces in which they appear.
Apps have access to the full scope of the platform, paving the way for more enhanced, custom, and powerful experiences in Slack.
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:
They say a magician never reveals their secrets. But we're bound to a different kind of code, so here are some revelatory guides to explore:
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.
An App Home is a private, one-to-one space in Slack shared by the user and the app. The user can reach the App Home from a workspace's conversation list or by clicking on the app's name in messages.
Within any App Home, there are multiple tabs. Some tabs like About and Messages are fixed, but Home tabs can be fully customized by apps.
A Home tab is a persistent app space that can be enriched with intricate layouts and deep interactivity, and updated whenever the app wants.
Modals are app-triggered popups ideal for requesting and collecting data from users, or temporarily displaying dynamic and interactive information.
App-published messages are dynamic yet transient spaces. They allow users to complete workflows among their Slack conversations, forming a conversational interface of potentially limitless complexity.
Read our overview of app surfaces to see more about each of these spaces, and what your app can do with each.
Stay with this guide to learn more about how you can create Slack apps, and to understand what type of authentication to use with your app.
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 Manage your apps
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 share your app with other workspace members to help manage the app's settings and App Directory listings.
Collaborators are able to perform important actions such as installing single workspace apps to their associated workspace, deleting apps, and managing other collaborators (including you, the app creator). With that in mind, be very deliberate about who you add as a collaborator. Note that primary workspace owners are not automatically added as collaborators for apps created on their workspace.
Within the app dashboard, anyone who is identified as an owner of the app will find a Collaborators tab that allows them to add or remove collaborators. From here, existing collaborators can also leave any apps they are currently collaborating on.
Only members on the same workspace as the app can be added as collaborators. This is particularly important on Enterprise Grid, since the member must be a part of the Enterprise Grid workspace where the app was created. If you have single or multi-channel guests in your workspace, you may assign them as collaborators. Guests cannot delete a Slack app; they also cannot modify your carefully pruned roster of co-conspirators.
The app's associated workspace Slackbot will dispatch messages to fellow collaborators as roster changes are made or in the event that a Slack app is deleted.
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.
Apps can be installed with a couple of clicks to their associated workspace. These single-workspace apps can use the full range of app capabilities, but can't be distributed to any other workspaces.
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.