Question 1
Choose 1
You have built an application to send a response when a user posts a message containing "hello" in public
channels the application is in. Your manager asks you to release the application tomorrow to the employees at
your job and then add additional functionality next year for the application to be able to join channels and also
react to messages within channels.
Which two Bot token scopes should you request permissions for when releasing the app tomorrow?
Correct answer:
D. chat:write and channels:history
Explanation:
The app must respond when a user posts a message containing "hello" in public channels the app is in. To do that, the app needs two capabilities:
Read message content in those public channels so it can detect "hello" — this requires channels:history (read messages in public channels the app is a member of).
Send its response back into the channel — this requires chat:write (post messages as the app/bot).
So the two scopes needed tomorrow are chat:write and channels:history. Note the key exam concept: request only the scopes you need now — do not pre-request scopes for the "next year" features (joining channels, reacting to messages), because Slack reviews require scopes to map to existing functionality.
✅ D. chat:write and channels:history – Reading messages (channels:history) and posting responses (chat:write) cover the app's current functionality.
❌ Why Other Options Are Incorrect
A. chat:write and channels:join – channels:join supports the future "join channels" feature, which isn't needed tomorrow. It also omits channels:history, which is required to read messages.
B. channels:join and reactions:write – Both relate to future features (joining channels and reacting). Neither covers reading messages, and the response scope should be chat:write, not reactions:write.
C. channels:read and reactions:write – channels:read lists channel info but does not read message content (that's channels:history), and reactions:write is for the future feature. Neither matches tomorrow's needs.
📚 References
Slack API Docs – Scopes (chat:write, channels:history) – channels:history reads messages in public channels; chat:write posts messages.
Slack API Docs – Scope best practices / App review – Request only scopes used by current functionality; future features require a new submission.
The app must respond when a user posts a message containing "hello" in public channels the app is in. To do that, the app needs two capabilities:
Read message content in those public channels so it can detect "hello" — this requires channels:history (read messages in public channels the app is a member of).
Send its response back into the channel — this requires chat:write (post messages as the app/bot).
So the two scopes needed tomorrow are chat:write and channels:history. Note the key exam concept: request only the scopes you need now — do not pre-request scopes for the "next year" features (joining channels, reacting to messages), because Slack reviews require scopes to map to existing functionality.
✅ D. chat:write and channels:history – Reading messages (channels:history) and posting responses (chat:write) cover the app's current functionality.
❌ Why Other Options Are Incorrect
A. chat:write and channels:join – channels:join supports the future "join channels" feature, which isn't needed tomorrow. It also omits channels:history, which is required to read messages.
B. channels:join and reactions:write – Both relate to future features (joining channels and reacting). Neither covers reading messages, and the response scope should be chat:write, not reactions:write.
C. channels:read and reactions:write – channels:read lists channel info but does not read message content (that's channels:history), and reactions:write is for the future feature. Neither matches tomorrow's needs.
📚 References
Slack API Docs – Scopes (chat:write, channels:history) – channels:history reads messages in public channels; chat:write posts messages.
Slack API Docs – Scope best practices / App review – Request only scopes used by current functionality; future features require a new submission.
