Apps in the Slack Platform7% of the exam
Choosing surfaces: App Home, modals and messages
Which surface fits which job: the per-user Home tab published with views.publish, modals that need a fresh trigger_id, and channel, DM or ephemeral messages chosen by who should see them, plus how to combine surfaces in one feature.
Recommend when to use Slack's different surfaces (user touchpoints including App home, modals and messages) for a range of use cases.
~8 min read · 9 practice questions ·
What the exam expects
- Recommend the Home tab for a persistent, personal dashboard, and know it is published per user with
views.publish, refreshed onapp_home_openedor when data changes, and unavailable to Deno Slack SDK apps. - Recommend a modal to collect structured input, and know a modal needs a valid
trigger_idfrom a user interaction, so a system-initiated form starts with a message button. - Choose between a channel message, a DM and an ephemeral message by who should see the content and whether a user action prompted it.
- Diagnose Home tab buttons that show an error icon (interactivity not enabled) and combine surfaces into one feature.
Key terms: App Home (the private user-app space with Home, Messages and About tabs); Home tab (the ever-present per-user view the app publishes); modal (a focused input dialog of up to three views); trigger_id (a short-lived, single-use value from an interaction that lets the app open a modal); ephemeral message (seen by one user, not persisted).
Key facts
App Home availability
- Detail
- Granular-permission apps only; not Deno Slack SDK apps or workflows
Home tab scope
- Detail
- At least one scope of any kind; Messages tab needs
chat:write
Home tab size
- Detail
- One view, up to 100 blocks,
type: home
Publishing
- Detail
views.publishwithuser_idand the view; same call updates
Home tab persistence
- Detail
- Keeps content and state until the app updates it
Home tab buttons
- Detail
- Without interactivity enabled, clicks show an error icon
Opening a modal
- Detail
- Needs a valid
trigger_id; expires 3 seconds after sending
trigger_id reuse- Detail
- Single use; reuse returns
trigger_exchanged
Ephemeral rules
- Detail
- One viewer, no persistence, only after a user action
Ephemeral delivery
- Detail
- User must be active and in the channel, else
user_not_in_channel
Sources for this section (6)
- Why can't an app open a modal the moment an external alert arrives?
- When should a reminder to one person be a DM rather than an ephemeral message?
- Which event tells an app that a user opened its App Home?
- Why do Home tab buttons show an error icon even though the view published fine?
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