Shortcuts give users clear invocation points to your Slack app. There are two varieties of shortcuts: global shortcuts appear in the composer menu behind the plus button, and globally within search; message shortcuts appear in the context menu on the upper-right of every message.
Your app's shortcuts are an action the end-user may take and are a specific point of entry to your app. Starting your shortcut name with a verb is clear to the user and prompts specific intention upon shortcut invocation.
As an example, imagine you were building a polling app. If you were building a global shortcut, it would be more intuitive for a user to click
Create a poll rather than a variation such as
Modals offer a consistent, predictable user experience when invoking your app. It offers the user peace of mind that they know exactly what the shortcut does. Also, if applicable to your app, it ensures that the user is aware what channel they'll send messages to.
default_to_current_conversation parameter parameter in block kit elements to make it easy for users to send messages to the same channel your shortcut was invoked in.
Think about what app invocation points belong in a global context (global shortcuts), versus which belong in a message context (message shortcuts).
For example, pretend you're building a task management app. An example of a shortcut that makes sense in a global context would be
Create a task, whereas a shortcut that belongs in a message context would be
Attach to a task, which could attach the specific message to an existing task.
If your app’s core features are paid-only and you plan to expose them via shortcuts, you should make it apparent for non-paying users that the reason they can’t use the shortcut is because they must have a paid plan for your app. Rather than silently failing, we recommend opening an explanatory modal (or posting an ephemeral message) that explains why they can't use the shortcut.
Whenever a user completes an action with your app (even when it isn't associated with shortcuts), provide confirmation and details about what they just did. And for third-party service, include relevant links out to your service.
As an example, if the user performed an action like creating a new helpdesk ticket in a third-party service, include a link to where they can view more information about that ticket.