Design the Interactive Flow of Your App20% of the exam

Request URLs, 3-second acknowledgement and response_url

Where Slack sends interaction, slash command and event requests, how to acknowledge within 3 seconds and then respond, how response_url publishes, replaces and deletes messages, and how to design for payload IDs, Enterprise orgs and workspace differences.

Official exam objective
Recommend an app design that interacts effectively with Slack's architecture.

~7 min read · 12 practice questions ·

What the exam expects

  • Say which URL receives each kind of request: interactive components, shortcuts and modals; each slash command; events.
  • Acknowledge every request within 3 seconds, then do slow work asynchronously and show the user visible progress.
  • Use response_url to post ephemeral or in-channel replies, threaded replies, replacements and deletions, including where the bot is not a member.
  • Parse form-encoded payloads correctly and route on command, api_app_id and stable IDs.
  • Handle ssl_check requests, Enterprise org fields, disabled event subscriptions and bot presence.
  • Design for workspace differences such as short retention, mobile-only users and Home tab updates from outside Slack.

Key terms: Request URL (your HTTPS endpoint that Slack POSTs to); acknowledgement (an HTTP 200 within 3 seconds); response_url (a per-payload webhook for message responses); response_type (ephemeral by default, or in_channel); ssl_check (Slack's certificate probe on command URLs).

Key facts

Interaction acknowledgement
Detail
HTTP 200 OK within 3 seconds
Slash command timeout
Detail
3000 ms, else operation_timeout
Interaction body
Detail
Form-encoded with a JSON payload parameter
response_url limit
Detail
Up to 5 responses within 30 minutes
response_url default visibility
Detail
Ephemeral; set response_type: in_channel to share
trigger_id
Detail
Expires in three seconds; usable once
Routing several commands
Detail
command field; api_app_id for several apps
ssl_check=1
Detail
Certificate check on command URLs of publicly distributed apps
Event subscriptions disabled
Detail
Over 95% failed deliveries within 60 minutes; owner emailed; re-enable after fixing
Events API-only bot presence
Detail
Toggle under App Home in the app settings
Sources for this section (3)
  • Why should an app not return HTTP 500 when a command's input is invalid?
  • When does Slack temporarily disable an app's event subscriptions?
  • How should a handler read a `block_actions` payload from the raw request body?
  • Why must an app store a user's ID to keep their Home tab current?

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 (12 questions for this lesson)
  • An official source cited for every claim
  • An AI tutor that answers from the guide
  • Unlimited timed practice exams

Practice for the Slack Developer exam