Notification etiquette, message cleanup and error replies
How often, when and where a Slack app should notify people, when output belongs in channel versus privately, how to condense or update finished interactive messages (including ephemeral ones), and how to name slash commands and write errors people can act on.
Build a great user experience that aligns with Slack’s commitment; to make work life simpler, more pleasant and more productive.
~8 min read · 10 practice questions ·
What the exam expects
- Control notification volume: configurable frequency, digests for high-volume automatic sources, and broad mentions only for critical alerts with the installer's permission.
- Time notifications for the recipient's own time zone, and keep what users tell the app in a DM private.
- Choose in-channel versus ephemeral output, and fix a
response_urlreply that should be visible to the channel. - Clean up finished interactive messages, knowing what
chat.updatecannot edit and when theresponse_urlmust be used instead. - Give slash commands unique names, answer empty or unknown input with usage help, and replace vague errors with actionable ones.
Key terms: digest (one periodic summary instead of a message per event); broad mention (@channel, @here or @everyone); ephemeral message (visible only to one user and never changes visibility); response_url (a per-payload URL for replying to, updating or deleting the source of an interaction); actionable error (says what went wrong and what to do next).
Key facts
- Detail
- Offer a digest instead of one alert per event
- Detail
- Only for critical, immediate-action alerts, with the installer's explicit permission
- Detail
users.inforeturnstz,tz_labelandtz_offset
- Detail
- Users assume it is private; tell them before sharing results in a channel
response_url default- Detail
- Ephemeral;
response_type: in_channelpublishes to the conversation
- Detail
- Cannot change to
in_channelonce issued
chat.update scope of edits- Detail
- Only the token's own messages, including those posted as the app
- Detail
- Not with
chat.updateorchat.delete; yes via the interaction'sresponse_url
- Detail
- A newer app's same-named command overrides the existing one
- Detail
- Respond with usage instructions
- Why should an app offer a digest for events from an automatic source such as service logs?
- When may an app use `@channel`?
- What makes a `response_url` reply visible to everyone in the channel?
- Why does `chat.update` fail on an ephemeral confirmation the app sent?
- When should a slash command reply with usage instructions?
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 (10 questions for this lesson)
- An official source cited for every claim
- An AI tutor that answers from the guide
- Unlimited timed practice exams