Design the Interactive Flow of Your App20% of the exam
Message delivery options and the modal view stack
When to post to a channel, a DM, an ephemeral message or a scheduled message, how to deep-link to App Home tabs, and how a modal's three-view stack works: views.open, push and update, private_metadata, view_closed, external_id and the response_action replies to a submission.
Recommend when to use different Slack components and features.
~7 min read · 12 practice questions ·
What the exam expects
- Choose among a channel post, a DM, an ephemeral message, a scheduled message and a modal for a given need.
- Plan for ephemeral delivery limits and the 120-day scheduling window; list, delete and reschedule pending messages.
- Open a one-to-one DM with
conversations.openand deep-link to a specific App Home tab. - Work the three-view modal stack:
views.open,views.push,views.update,private_metadata,external_id,notify_on_closeandinitial_value. - Pick the right reply to a
view_submission(empty 200,response_actionupdate,push,clear) versus ablock_actionsclick in a modal.
Key terms: ephemeral message (visible to one user, not persisted); scheduled message (posted later by Slack at post_at); view stack (up to three views in one modal); private_metadata (hidden string carried between views); response_action (the acknowledgement field that changes the modal after a submission).
Key facts
Ephemeral delivery
- Detail
- Not guaranteed; user must be active and a channel member
Ephemeral persistence
- Detail
- Gone after reload or session; not across desktop and mobile
One-to-one DM
- Detail
conversations.openwith one user, scopeim:write
Scheduling window
- Detail
- Up to 120 days in advance
Editing a scheduled message
- Detail
- Delete it, then schedule a new one
Home tab deep link
- Detail
slack://app?team={TEAM_ID}&id={APP_ID}&tab=home
View stack size
- Detail
- Up to 3 views
trigger_id lifetime- Detail
- Expires 3 seconds after it is sent
private_metadata- Detail
- Up to 3000 characters, hidden, returned on submit and actions
Sources for this section (6)
- chat.postEphemeral methoddocs.slack.dev (opens in a new tab)
- conversations.open methoddocs.slack.dev (opens in a new tab)
- Sending and scheduling messagesdocs.slack.dev (opens in a new tab)
- Deep linking into Slackdocs.slack.dev (opens in a new tab)
- Modalsdocs.slack.dev (opens in a new tab)
- Modal viewsdocs.slack.dev (opens in a new tab)
- Why is an ephemeral message a poor place for a delivery receipt the manager must find later?
- When should an app use `external_id` instead of the payload's `view.id`?
- How does an app remove pending scheduled messages whose IDs it didn't save?
- Why can't a fourth step be pushed onto a modal that already shows two pushed views?
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 (12 questions for this lesson)
- An official source cited for every claim
- An AI tutor that answers from the guide
- Unlimited timed practice exams