Slack apps start life residing in one workspace. Distribution allows apps to spread their wings and take off for new pastures.
The type of distribution you choose for your app will determine which installation flows you'll need to build.
In this overview, we'll run through the different types of distribution, and explain how to install and authenticate users for each.
When you create your Slack app, you associate it with a workspace. Your app can be installed to its associated workspace easily with a couple of clicks.
Just open the app dashboard for your app, select the Install App section, and click the Install App to Workspace button.
Single-workspace apps can use the full range of app capabilities, but can't be distributed to any other workspaces.
If your single-workspace app needs to take action on behalf of other users, you'll need to build an OAuth 2.0 flow.
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 on to learn why you might want to distribute your app.
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.
Before your app can soar from workspace to workspace, there's some preparation required.
When first created, your app can be installed to its associated workspace without any code for handling authorization.
When you're planning to share your app with other workspaces - whether one or one thousand - you need to handle authorization. This will allow your app to be installed to any arbitrary workspace, generating and using an access token programmatically.
Once in the wild, your app could be installed to a Slack organization that uses Enterprise Grid. So it makes sense to understand how Grid can affect the way your app works, to prevent buggy behavior.
Read our guide to supporting Enterprise Grid in apps to prepare properly.
Onboarding users is an important consideration for any app. For those apps that are publicly distributed, it is especially crucial—your user base could grow from a single workspace to potentially hundreds.
While it might be simpler to provide direct, hands-on support with a single workspace, this won't scale once your app is shared with multiple workspaces.
Creating a helpful and engaging onboarding flow will help your potential users become experts without any hands-on support.
Slack apps open to installation by other workspaces have additional security requirements. Your app must support SSL for all:
Some workspaces will restrict app installation so that only workspace administrators can provide authorization. Other workspaces may only allow the installation of apps officially listed in the Slack app directory.
Workspaces can also enable admin approval features where users can't directly install apps but can solicit for installation through a guided interface. Administrators may then screen these requests and selectively approve for installation.
We don't have any technical guidelines for handling this, your app either will or won't be approved. However, ensuring that your app design follow our guidelines might improve your chances of admin approval.
The list of permissions that an app requests will also be important to the decision an admin makes—ensure that your app only requests permissions it absolutely needs.
If you think you're ready to takeoff, it's very simple for your app to launch into the world of 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.
That's it! Your app is now soaring through the skies of the Slack app ecosystem. We hope your journey is a great success.
You can also go a step further and submit your app to the Slack App Directory.
After distribution has been activated, you have the option of deactivating by clicking on the Deactivate Public Distribution button in the same location you enabled it.
This will remove the app from any workspaces that have installed it, aside from the originally associated workspace.
You can not deactivate distribution in this way after your app is published in the App Directory. Follow the instructions in the App Directory guide to discontinue your listing.
Your app can be purposefully uninstalled at any time from a workspace. Subscribe to the
app_uninstalled event if you want your app to receive a notification when this happens.
Apps will be automatically uninstalled from workspaces under a limited set of circumstances:
identifywill generally not be automatically uninstalled.
The Slack App Directory lists publicly distributed Slack apps that have been reviewed to ensure they meet high standards of quality and usefulness.
When your app is capable of being distributed to multiple workspaces, there are a few other adjustments you'll need to make to the app before submitting it for App Directory consideration.
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.