# Notification etiquette, message cleanup and error replies

*Slack Developer Study Guide · Design a Great User Experience · Last updated October 21, 2026 · https://www.certifyforce.com/study-guide/slack-developer/design-a-great-user-experience/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.

- Certification: Salesforce Slack Developer
- Exam section: Design a Great User Experience
- Study guide: https://www.certifyforce.com/study-guide/slack-developer

**Official exam objective:**

> Build a great user experience that aligns with Slack’s commitment; to make work life simpler, more pleasant and more productive.

## 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_url` reply that should be visible to the channel.
- Clean up finished interactive messages, knowing what `chat.update` cannot edit and when the `response_url` must 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

| Fact | Detail | Source |
|---|---|---|
| High-volume automatic events | Offer a digest instead of one alert per event | [App design](https://docs.slack.dev/surfaces/app-design/) |
| Broad mentions | Only for critical, immediate-action alerts, with the installer's explicit permission | [App design](https://docs.slack.dev/surfaces/app-design/) |
| User time zone | `users.info` returns `tz`, `tz_label` and `tz_offset` | [users.info method](https://docs.slack.dev/reference/methods/users.info) |
| DM content | Users assume it is private; tell them before sharing results in a channel | [App design](https://docs.slack.dev/surfaces/app-design/) |
| `response_url` default | Ephemeral; `response_type: in_channel` publishes to the conversation | [Handling user interaction](https://docs.slack.dev/interactivity/handling-user-interaction) |
| Ephemeral visibility | Cannot change to `in_channel` once issued | [Handling user interaction](https://docs.slack.dev/interactivity/handling-user-interaction) |
| `chat.update` scope of edits | Only the token's own messages, including those posted as the app | [Modifying messages](https://docs.slack.dev/messaging/modifying-messages) |
| Ephemeral edits | Not with `chat.update` or `chat.delete`; yes via the interaction's `response_url` | [Modifying messages](https://docs.slack.dev/messaging/modifying-messages) |
| Duplicate command names | A newer app's same-named command overrides the existing one | [App design](https://docs.slack.dev/surfaces/app-design/) |
| Unknown command input | Respond with usage instructions | [Submission guidelines](https://docs.slack.dev/slack-marketplace/slack-marketplace-app-guidelines-and-requirements/) |

## Check yourself

- 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?

## Sources

- [App design](https://docs.slack.dev/surfaces/app-design/)
- [Submission guidelines and requirements](https://docs.slack.dev/slack-marketplace/slack-marketplace-app-guidelines-and-requirements/)
- [Designing with Block Kit](https://docs.slack.dev/concepts/designing-with-block-kit/)
- [Modifying messages](https://docs.slack.dev/messaging/modifying-messages)
- [Handling user interaction in your Slack apps](https://docs.slack.dev/interactivity/handling-user-interaction)
- [chat.update method](https://docs.slack.dev/reference/methods/chat.update)
- [users.info method](https://docs.slack.dev/reference/methods/users.info)

## About the full unit

The "Core concepts", "Exam traps" and "Worked scenario" sections of this unit, its 10 linked practice questions, and unlimited timed mock exams are included with the Slack Developer pack (USD $19): https://www.certifyforce.com/practice-exams
