Business workflows: approvals, alerts and custom step logic
How to turn a business process into a Slack app: spotting use cases, actionable approval and alert messages, onboarding on team_join, the shortcut-to-modal helpdesk pattern, and the custom workflow step lifecycle with complete(), fail() and declared outputs.
Build common workflows (business processes) and use cases for Slack apps.
~8 min read · 11 practice questions ·
What the exam expects
- Find good app use cases in how a team already works, and reject ideas that only add noise or duplicate Slack.
- Design approval and alert flows as actionable messages: post with buttons, handle the
block_actionspayload, update the message to show who acted. - Pick the event that starts a process, such as
team_joinfor onboarding a new member. - Apply the shortcut-to-modal-to-confirmation pattern for actions that create or change data.
- Build a custom workflow step that waits for a person, returns declared outputs, and knows where it can and cannot run.
Key terms: actionable message (a notification with buttons or menus that lets the reader act in place); block_actions (the payload sent when a Block Kit interactive component is used); custom workflow step (a function in your app that Workflow Builder offers as a step); complete() / fail() (Bolt helpers that end a step successfully or unsuccessfully); home_team_only (the warning external Slack Connect members see on your org's steps).
Key facts
- Detail
- Sends a
block_actionspayload with the interactinguser
- Detail
chat.updatewithchannelandts; bots can update their own messages
- Detail
team_joinevent,users:readscope
- Detail
- Must follow up with a confirmation modal
- Detail
- Not possible: visibility is fixed for life; delete and publish new
- Detail
complete()with outputs orfail()with an error string
- Detail
function_executedbot event plus a function definition on the Workflow Steps page
- Detail
- Managed with the Slack CLI only, not the app settings
- Detail
- Step apps cannot be distributed publicly or listed in the Marketplace
Sources for this section (7)
- block_actions payloaddocs.slack.dev (opens in a new tab)
- chat.update methoddocs.slack.dev (opens in a new tab)
- team_join eventdocs.slack.dev (opens in a new tab)
- Implementing shortcutsdocs.slack.dev (opens in a new tab)
- Handling user interactiondocs.slack.dev (opens in a new tab)
- Custom Steps (Bolt for JavaScript)docs.slack.dev (opens in a new tab)
- Workflow stepsdocs.slack.dev (opens in a new tab)
- Why should an approval notification carry buttons rather than a link?
- When may a Bolt custom step skip `complete()` in its `function()` handler?
- Which event lets an onboarding app greet a new employee as soon as the account joins?
- Why must a data-changing shortcut open a modal first?
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 (11 questions for this lesson)
- An official source cited for every claim
- An AI tutor that answers from the guide
- Unlimited timed practice exams