# Public distribution and Add to Slack installs

*Slack Developer Study Guide · Distribute Your App · Last updated October 21, 2026 · https://www.certifyforce.com/study-guide/slack-developer/distribute-your-app/public-distribution-and-add-to-slack-installs*

How to share an app with other workspaces: the Manage Distribution checklist (OAuth flow, HTTPS URLs), Activate Public Distribution and the Add to Slack button and shareable URL it unlocks, admin approval and minimal scopes, and what deactivating distribution or losing the installer does to existing installs.

- Certification: Salesforce Slack Developer
- Exam section: Distribute Your App
- Study guide: https://www.certifyforce.com/study-guide/slack-developer

**Official exam objective:**

> Share an app with other workspaces.

## What the exam expects

- Share an existing app with other workspaces from **Manage Distribution** by completing the checklist and clicking **Activate Public Distribution**.
- Name what must be in place first: an OAuth 2.0 flow that generates and stores a token per installation, and HTTPS on every redirect and Request URL.
- Identify what activation unlocks (Add to Slack button, shareable install URL, app-suggestion meta tag) and what needs a Marketplace listing instead.
- Help workspaces that require admin approval by requesting only the scopes the app needs.
- Predict what happens when distribution is deactivated or when the installing user leaves or becomes a guest.

Key terms: **public distribution** (the setting that lets any workspace install the app through OAuth, without a listing); **Add to Slack button** (an embeddable link to the authorize URL); **shareable URL** (a link that starts the install flow); **Approve apps** (a workspace setting where members request apps and admins approve them); **`app_uninstalled`** (the event sent when the app is completely uninstalled).

## Key facts

| Fact | Detail | Source |
|---|---|---|
| Where to share | Manage Distribution > Share Your App with Other Workspaces > Activate Public Distribution | [App lifecycle & distribution](https://docs.slack.dev/app-management/distribution/) |
| OAuth requirement | Installing on other workspaces needs an OAuth 2.0 flow producing per-workspace tokens | [App lifecycle & distribution](https://docs.slack.dev/app-management/distribution/) |
| HTTPS | Redirect, interactivity, slash command, options load and Events API URLs must support SSL | [App lifecycle & distribution](https://docs.slack.dev/app-management/distribution/) |
| Unlocked on activation | Add to Slack button, shareable install URL, app-suggestion meta tag | [App lifecycle & distribution](https://docs.slack.dev/app-management/distribution/) |
| App suggestions | Shown only once the app is listed in the Slack Marketplace | [Slack Marketplace review process](https://docs.slack.dev/slack-marketplace/slack-marketplace-review-guide) |
| Direct install | A Marketplace listing feature, not available to unlisted apps | [App lifecycle & distribution](https://docs.slack.dev/app-management/distribution/) |
| Admin approval | Request only the permissions the app absolutely needs | [App lifecycle & distribution](https://docs.slack.dev/app-management/distribution/) |
| Deactivate | Removes the app from every installing workspace except the associated one | [App lifecycle & distribution](https://docs.slack.dev/app-management/distribution/) |
| Published apps | Cannot deactivate distribution; discontinue the listing | [App lifecycle & distribution](https://docs.slack.dev/app-management/distribution/) |
| Installer leaves or becomes guest | Apps with scopes beyond `bot`, `incoming-webhook`, `commands`, `identify` are uninstalled | [App lifecycle & distribution](https://docs.slack.dev/app-management/distribution/) |
| `app_uninstalled` | Sent when the app is completely uninstalled; no scopes required | [app_uninstalled](https://docs.slack.dev/reference/events/app_uninstalled) |

## Check yourself

- Why must an app have an OAuth flow before other workspaces can install it?
- Which three items does Activate Public Distribution give you?
- When does an app with `chat:write` get uninstalled without anyone clicking Remove?
- Why should a distributed app keep its scope list short?

## Sources

- [App lifecycle & distribution](https://docs.slack.dev/app-management/distribution/)
- [Installing via OAuth authorization code flow](https://docs.slack.dev/authentication/installing-with-oauth/)
- [Managing app approvals](https://docs.slack.dev/admins/managing-app-approvals/)
- [Submission guidelines and requirements](https://docs.slack.dev/slack-marketplace/slack-marketplace-app-guidelines-and-requirements/)
- [Slack Marketplace review process](https://docs.slack.dev/slack-marketplace/slack-marketplace-review-guide)
- [app_uninstalled event type](https://docs.slack.dev/reference/events/app_uninstalled)
- [Using token rotation](https://docs.slack.dev/authentication/using-token-rotation)
- [Tokens](https://docs.slack.dev/authentication/tokens/)

## About the full unit

The "Core concepts", "Exam traps" and "Worked scenario" sections of this unit, its 6 linked practice questions, and unlimited timed mock exams are included with the Slack Developer pack (USD $19): https://www.certifyforce.com/practice-exams
