Distributing Slack apps

When you create a Slack app, it resides in one workspace. You can also distribute Slack apps in either listed or unlisted fashion. In this guide, we'll take a look at the different types of distribution available and explain how to set up installation flows and authenticate users for each.


Undistributed apps

When you create a Slack app, you associate it with a workspace: to do this, open the app dashboard for your app and click Install App to Workspace within the Install App section.

After installing your app, you'll get a single access token that can be used to authenticate API method calls on behalf of the app.

Undistributed apps exist on a single workspace and can use the full range of app capabilities, but they can't be distributed to other workspaces. In addition, if your single-workspace app needs to take action on behalf of other users, you'll need to build an OAuth 2.0 flow.


Unlisted distributed apps

By default, a newly built Slack app can only be installed in its associated workspace as mentioned above. Installing your app on other workspaces means that you'll need to set up an OAuth 2.0 flow. Once you've done that, your app will be able to generate access tokens for each workspace and user.

Distributing your unlisted app is perfect for when you want to test out your app by running a pilot for early customers; however, apps intended for commercial distribution should be submitted and approved for listing in the Slack Marketplace. Unlike unlisted distributed apps, apps listed in the Slack Marketplace are reviewed against our requirements & guidelines to ensure a quality experience for end users.

Preparing your app for distribution

Before you can distribute your app, there are a few steps to complete that are discussed in the following sections.

Handling installations

Once created, your app can be installed to its associated workspace without any code for handling authorization. The one-click install for an unlisted single-workspace app generates an access token, which can then be used to authenticate API requests, but only within that associated workspace.

Therefore, when you're planning to distribute your app to other workspaces, you need to handle authorization. This will allow your app to be installed to any workspace, generating and using an access token programmatically.

✨ Read our OAuth 2.0 guide to understand the flow required for your app to request permissions and to generate access tokens.

In addition, once distributed, your app could potentially be installed to a Slack organization on Enterprise Grid.

✨ Read our guide to supporting Enterprise Grid in apps to understand how an Enterprise Grid environment can affect the way your app works.

Creating your onboarding flow

Onboarding users is an important consideration for any app. For distributed apps, it is especially crucial as your user base could grow from a single workspace to potentially hundreds. Providing direct, hands-on support may be possible with a single workspace, but won't scale once your app is shared with multiple workspaces.

✨ Read our guide to creating a helpful onboarding flow.

Enabling SSL

Slack apps open to installation by other workspaces have additional security requirements. Your app must support SSL for all of the following URLs:

Enabling admin approval

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 Marketplace.

Workspaces can also enable admin approval requirements so that users can't directly install apps, but can request installation via a guided interface. Administrators can then screen these requests and selectively approve apps for installation. The list of permissions an app requests is also important to the decisions admins make, so ensure that your app only requests the permissions it absolutely needs.

Enabling unlisted distribution

If you think your app is ready to be distributed, follow these steps:

  1. Go to your app's dashboard.
  2. Scroll to Share Your App with Other Workspaces within the Manage Distribution section.
  3. Ensure all items in the supplied checklist are completed.
  4. Click Activate Public Distribution.

Once 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, as well as an HTML meta tag to enable Slack app suggestions.

You can also go a step further and submit your app to the Slack Marketplace. This is recommended for apps intended for commercial distribution.

Disabling unlisted distribution

If distribution is enabled, you can turn it off by clicking Deactivate Public Distribution in the same location you enabled it. This will remove the app from any workspaces that have installed it, aside from the original associated workspace.

Note that you cannot disable distribution in this way once your app is published within the Slack Marketplace; instead, you must discontinue your listing there. Follow the instructions in the Slack Marketplace guide to discontinue listing your app.

Uninstalling apps

Your app can be 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.

In addition, apps will be automatically uninstalled from workspaces under the following circumstances:

  • Apps only using the following scopesβ€”bot, incoming-webhook, commands, and identifyβ€”will generally not be automatically uninstalled. However, there is one exception: in the app's associated workspace, the app will be uninstalled when the last creator or collaborator leaves the workspace or becomes a guest user.
  • Apps that use scopes beyond those listed above will be automatically uninstalled if the user who installed it leaves the workspace or becomes a guest user.

Listed distributed apps (Slack Marketplace apps)

The Slack Marketplace contains distributed Slack apps that have been reviewed to ensure they meet our standards of quality. Distributing to the Slack Marketplace is the best path for safe and trustworthy third-party apps, and is perfect for when your app has been previously tested with early customers and is ready to be distributed more broadly or at commercial scale.

You can also take advantage of direct installs, which allow any user to install your app straight from the Slack Marketplace.

Creating your app's listing page

If your app is approved for listing in the Slack Marketplace, it will have its very own listing page. Use this space to tell your app's story, to give a preview of your app's capabilities and user experience, and to attract users.

✨ Read our Slack Marketplace guide to help you build a great Slack Marketplace listing page, as well as to learn about the review and submission process.

You'll need a sandbox
Join our developer program and experiment with self-serve enterprise grid sandboxes.