# Evaluating app scopes and tokens against policy

*Slack Administrator Study Guide · App and AI Administration and Automations · Last updated October 21, 2026 · https://www.certifyforce.com/study-guide/slack-administrator/app-and-ai-administration-and-automations/evaluating-app-scopes-and-tokens-against-policy*

How to read an app's requested scopes and token types against a security policy: bot versus user tokens, the scopes that reach private conversations, email addresses or another identity, why scopes cannot be removed from a token, and how AI agent apps and org-level API apps get their access.

- Certification: Salesforce Slack Administrator
- Exam section: App and AI Administration and Automations
- Study guide: https://www.certifyforce.com/study-guide/slack-administrator

**Official exam objective:**

> Given a scenario, evaluate the app scopes for compliance to security policies.

## What the exam expects

- Judge an app's permissions by what information it can access and what it can do with it, and know where to find installed apps' access and a Marketplace app's security details.
- Choose bot or user tokens for a policy, knowing what a user token inherits and what happens when the installer is deactivated.
- Flag the specific scopes that break a policy: private channel and DM history, posting where the app was not added, posting under a custom identity, reading email addresses.
- Explain why a removed scope stays on a token, and what an approval call grants when it does not list scopes.
- Predict what AI agent apps and org-level Discovery API apps can reach.

Key terms:
- **Scope:** a permission an app requests; an app has no access by default and can do only what its scopes allow.
- **Bot token (`xoxb-`):** tied to the app, not to a person.
- **User token (`xoxp-`):** acts on behalf of the member who authorized it, with that member's access.
- **Legacy `bot` scope:** the old umbrella bot permission that bundled many permissions.
- **Agent:** an app that takes multi-step actions in Slack on a member's behalf.

## Key facts

| Fact | Detail | Source |
|---|---|---|
| Legacy `bot` scope | Older app with wide access | [Understand app permissions](https://slack.com/help/articles/115003461503-Understand-app-permissions) |
| Token prefixes | Bot `xoxb-`, user `xoxp-`, app-level `xapp-` | [Tokens](https://docs.slack.dev/authentication/tokens/) |
| Installer deactivated | User token revoked; bot app stays installed | [Installing with OAuth](https://docs.slack.dev/authentication/installing-with-oauth/), [Tokens](https://docs.slack.dev/authentication/tokens/) |
| `channels:history` as user scope | Any public channel | [Tokens](https://docs.slack.dev/authentication/tokens/) |
| `chat:write.public` | Posts to channels the app isn't in | [chat:write.public](https://docs.slack.dev/reference/scopes/chat.write.public/) |
| Email field | Needs `users:read.email` | [users:read.email](https://docs.slack.dev/reference/scopes/users.read.email) |
| Removing a scope | Revoke the token and reinstall | [Installing with OAuth](https://docs.slack.dev/authentication/installing-with-oauth/) |
| `admin.apps.approve` without scope lists | Grants every requested scope | [Managing app approvals](https://docs.slack.dev/admins/managing-app-approvals/) |
| Developer security details | Security & Compliance tab on the Marketplace page | [Security recommendations](https://slack.com/help/articles/360001670528-Security-recommendations-for-approving-apps) |
| Agent permissions | Follow app scopes, not native AI settings | [Understand app permissions](https://slack.com/help/articles/115003461503-Understand-app-permissions) |
| Discovery, admin, SCIM API apps | Org data once installed at org level | [Manage apps in an Enterprise organization](https://slack.com/help/articles/360000281563-Manage-apps-in-an-Enterprise-organization) |

## Check yourself

- Why does a request for the `bot` scope deserve extra scrutiny?
- When does an app's `groups:history` bot scope let it read a private channel?
- Which scope lets an app post with a custom username and avatar?
- Where does a Workspace Owner see who installed an app and what it can access?
- Why can an org-level Discovery API app collect from workspaces it was never added to?

## Sources

- [Understand app permissions](https://slack.com/help/articles/115003461503-Understand-app-permissions)
- [Tokens](https://docs.slack.dev/authentication/tokens/)
- [Scopes](https://docs.slack.dev/reference/scopes/)
- [Installing with OAuth](https://docs.slack.dev/authentication/installing-with-oauth/)
- [channels:history scope](https://docs.slack.dev/reference/scopes/channels.history)
- [groups:history scope](https://docs.slack.dev/reference/scopes/groups.history/)
- [im:history scope](https://docs.slack.dev/reference/scopes/im.history/)
- [chat:write.public scope](https://docs.slack.dev/reference/scopes/chat.write.public/)
- [chat:write.customize scope](https://docs.slack.dev/reference/scopes/chat.write.customize/)
- [users:read.email scope](https://docs.slack.dev/reference/scopes/users.read.email)
- [Security recommendations for approving apps](https://slack.com/help/articles/360001670528-Security-recommendations-for-approving-apps)
- [Work with AI agents in Slack](https://slack.com/help/articles/33076000248851-Work-with-AI-agents-in-Slack)
- [Managing app approvals](https://docs.slack.dev/admins/managing-app-approvals/)
- [Manage apps in an Enterprise organization](https://slack.com/help/articles/360000281563-Manage-apps-in-an-Enterprise-organization)

## About the full unit

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