Supporting Slack Connect channels in your app
How to decide which app features work in Slack Connect channels: detecting external shares with is_ext_shared, what external members can and cannot trigger, authorized_users and sensitive-data checks, changing channel IDs, check_file_info, and the inviteShared and acceptSharedInvite API methods.
Recommend when to add support for channels that are shared externally with Slack Connect.
~8 min read · 9 practice questions ·
What the exam expects
- Decide which app features should work in Slack Connect channels, and test before calling the app compatible.
- Tell an externally shared channel from an org-internal one with
is_ext_shared, notis_shared, usingconversations.info. - Predict what external members can do when their organization has not installed the app (slash commands, message actions, unfurls, interactive elements).
- Protect sensitive data with confirmation prompts and
authorized_userschecks. - Handle Slack Connect quirks:
channel_id_changed,check_file_infoplaceholders, and invitations throughconversations.inviteSharedandconversations.acceptSharedInvite.
Key terms: Slack Connect channel (a channel shared with people at other organizations); multi-workspace channel (shared between workspaces of one Enterprise org); external member (a member of another team who shares a channel with the app); stranger (an external user the app shares no channel with); authorized_users (the installing users or bots allowed to see an event).
Key facts
- Detail
is_ext_shared;is_sharedalso covers org-internal shares
- Detail
- Only the installing team can invoke them
- Detail
- No
link_sharedevent unless the app is installed for them
- Detail
- G ID becomes C at once;
channel_id_changed
- Detail
check_file_infoplaceholder; callfiles.info
- Detail
- Slack Connect not available to all of them
inviteShared per call- Detail
- One email or one user ID
external_limited- Detail
- Defaults to true: recipients can only send messages
- Detail
shared_channel_invite_receivedwithconversations.connect:read
- Detail
conversations.connect:manage; owner or admin install
- Why can't an app trust `is_shared` to decide whether to hide internal data?
- When does a private channel's ID change from G to C?
- Why do an external member's links never unfurl?
- How does an app invited with `conversations.inviteShared` accept automatically?
The questions are free to read. Answers with their sources and self-grading are included with the pack.
Keep reading with the Slack Developer pack
- Core concepts
- Exam traps
- Worked scenario
The pack includes:
- All 38 lessons of the Slack Developer guide, with reading progress
- Interactive decision walks and step-by-step sequence steppers
- Inline practice questions and one-click topic practice (9 questions for this lesson)
- An official source cited for every claim
- An AI tutor that answers from the guide
- Unlimited timed practice exams