# Entry points: slash commands, shortcuts, mentions and unfurls

*Slack Developer Study Guide · Design the Interactive Flow of Your App · Last updated October 21, 2026 · https://www.certifyforce.com/study-guide/slack-developer/design-the-interactive-flow-of-your-app/entry-points-slash-commands-shortcuts-mentions-and-unfurls*

How users start an app's workflow and what each entry point delivers: slash commands and their limits, global versus message shortcuts and their payload types, app_mention versus message.im, and link unfurling with link_shared and chat.unfurl, including composer previews.

- Certification: Salesforce Slack Developer
- Exam section: Design the Interactive Flow of Your App
- Study guide: https://www.certifyforce.com/study-guide/slack-developer

**Official exam objective:**

> Handle possible user entry points for an app's workflow.

## What the exam expects

- Pick the entry point from the context the workflow needs: a typed command, a global shortcut, a message shortcut, a mention, a DM or a pasted link.
- Configure shortcuts correctly: `commands` scope and reinstall, Interactivity Request URL, 3-second acknowledgement, the five-and-five limit, verb-first names.
- Route shortcut payloads by `type` (`shortcut` or `message_action`) and `callback_id`.
- Know where entry points don't work: slash commands in threads, message shortcuts on ephemeral messages, replies into a thread, some guest accounts.
- Receive mentions with `app_mention` and DMs with `message.im`.
- Unfurl links with `link_shared` and `chat.unfurl`, including composer previews and new domains.

Key terms: **entry point** (an app feature users invoke to start an interaction); **global shortcut** (available from the composer's shortcuts button and search, no message context); **message shortcut** (in a message's context menu, carries that message); **`callback_id`** (the ID you give a shortcut, sent in its payload); **`link_shared`** (the event sent when a link to your registered domain is posted or pasted).

## Key facts

| Fact | Detail | Source |
|---|---|---|
| Developer slash commands in threads | Not supported; only built-in and Giphy commands | [Implementing slash commands](https://docs.slack.dev/interactivity/implementing-slash-commands/) |
| Duplicate command names | The most recently installed app's command runs | [Implementing slash commands](https://docs.slack.dev/interactivity/implementing-slash-commands/) |
| Shortcut limits | 5 global and 5 message shortcuts per app | [Implementing shortcuts](https://docs.slack.dev/interactivity/implementing-shortcuts/) |
| Shortcut scope | `commands`; reinstall if not requested before | [Implementing shortcuts](https://docs.slack.dev/interactivity/implementing-shortcuts/) |
| Shortcut payload `type` | `shortcut` (global) or `message_action` (message) | [Shortcuts interaction payloads](https://docs.slack.dev/reference/interaction-payloads/shortcuts-interaction-payload) |
| DMs to the bot | Not sent as `app_mention`; subscribe to `message.im` | [app_mention event](https://docs.slack.dev/reference/events/app_mention) |
| Unfurl domains | Up to five; changes require reinstall | [Unfurling links in messages](https://docs.slack.dev/messaging/unfurling-links-in-messages) |
| Composer unfurl | `channel_id` is always `COMPOSER`; unfurl with `unfurl_id` and `source` (or `COMPOSER` and `ts`) | [Unfurling links in messages](https://docs.slack.dev/messaging/unfurling-links-in-messages) |

## Check yourself

- Why does a message shortcut suit "attach this message to a task" better than a global shortcut?
- When must an app be reinstalled to unfurl links?
- Why doesn't a help bot see questions sent to it by DM with only `app_mention`?
- Which name follows the shortcut naming guidance: "Log a visit" or "Visit logger"?

## Sources

- [Implementing shortcuts](https://docs.slack.dev/interactivity/implementing-shortcuts/)
- [Shortcuts interaction payloads](https://docs.slack.dev/reference/interaction-payloads/shortcuts-interaction-payload)
- [Implementing slash commands](https://docs.slack.dev/interactivity/implementing-slash-commands/)
- [app_mention event](https://docs.slack.dev/reference/events/app_mention)
- [Unfurling links in messages](https://docs.slack.dev/messaging/unfurling-links-in-messages)
- [Handling user interaction in your Slack apps](https://docs.slack.dev/interactivity/handling-user-interaction/)
- [Interactivity overview](https://docs.slack.dev/interactivity/)
- [App design](https://docs.slack.dev/surfaces/app-design/)

## About the full unit

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