Design Your Workflows: Spotlight on Slack's APIs13% of the exam

Events API subscriptions, payloads and retries

How Events API subscriptions depend on granted scopes and what the bot can see, how to read the event_callback wrapper (api_app_id, team_id, event.type), how to pick least-privilege events such as app_mention and handle app_home_opened, and how retries, redirects, failure limits and Delayed Events work.

Official exam objective
Implement the Events API in your app.

~8 min read · 8 practice questions ·

What the exam expects

  • Explain why a subscribed event does or does not arrive: granted scopes, re-authorization after adding a scope, and perspectival delivery.
  • Read the outer event_callback wrapper to route by app (api_app_id), workspace (team_id) and inner event.type.
  • Choose the least-privilege event for a requirement, such as app_mention instead of message.channels.
  • Handle app_home_opened correctly: bot user required, sent on every visit, view only after a Home tab was published.
  • Predict retries (x-slack-retry-num, x-slack-retry-reason), the two-redirect limit, the failure limits that disable subscriptions, and what Delayed Events adds.

Key terms: event subscription (an event type the app asks Slack to deliver), perspectival (only events the installing user or bot can see), outer event (the event_callback wrapper), inner event (the event object with its own type), Delayed Events (an opt-in setting that extends retries to 24 hours).

Key facts

Missing scope for a new event
Detail
Re-run OAuth for existing users to grant it
Visibility
Detail
Only events the installing user or bot can see
App identity in payload
Detail
api_app_id; workspace is team_id
Event name
Detail
Inner event.type; outer type is event_callback
Request URLs per app
Detail
One, for every workspace and event type
Least-privilege mentions
Detail
app_mention with app_mentions:read; message.channels points to it
app_home_opened
Detail
No scope, bot user required, sent on every visit
Retry schedule
Detail
3 retries: immediate, 1 minute, 5 minutes
Redirects
Detail
Up to 2 followed
Disabling
Detail
Over 95% failures in 60 minutes; not below 1,000 events per hour
Delayed Events
Detail
Hourly retries for 24 hours; default skips events over two hours late
Sources for this section (4)
  • Why does a bot subscribed to `message.groups` miss most private channels?
  • When will a newly added `reaction_added` subscription start delivering for existing installs if the app lacks `reactions:read`?
  • Which two wrapper fields identify the app and the workspace?
  • Why might `app_home_opened` arrive without a `view` field?
  • What does the `x-slack-retry-reason` value `too_many_redirects` mean?

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 (8 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