# Request URLs, 3-second acknowledgement and response_url

*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/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.

- 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:**

> Recommend an app design that interacts effectively with Slack's architecture.

## 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

| Fact | Detail | Source |
|---|---|---|
| Interaction acknowledgement | HTTP 200 OK within 3 seconds | [Handling user interaction](https://docs.slack.dev/interactivity/handling-user-interaction/) |
| Slash command timeout | 3000 ms, else `operation_timeout` | [Implementing slash commands](https://docs.slack.dev/interactivity/implementing-slash-commands/) |
| Interaction body | Form-encoded with a JSON `payload` parameter | [Handling user interaction](https://docs.slack.dev/interactivity/handling-user-interaction/) |
| `response_url` limit | Up to 5 responses within 30 minutes | [Handling user interaction](https://docs.slack.dev/interactivity/handling-user-interaction/) |
| `response_url` default visibility | Ephemeral; set `response_type: in_channel` to share | [Handling user interaction](https://docs.slack.dev/interactivity/handling-user-interaction/) |
| `trigger_id` | Expires in three seconds; usable once | [Handling user interaction](https://docs.slack.dev/interactivity/handling-user-interaction/) |
| Routing several commands | `command` field; `api_app_id` for several apps | [Implementing slash commands](https://docs.slack.dev/interactivity/implementing-slash-commands/) |
| `ssl_check=1` | Certificate check on command URLs of publicly distributed apps | [Implementing slash commands](https://docs.slack.dev/interactivity/implementing-slash-commands/) |
| Event subscriptions disabled | Over 95% failed deliveries within 60 minutes; owner emailed; re-enable after fixing | [The Events API](https://docs.slack.dev/apis/events-api/) |
| Events API-only bot presence | Toggle under App Home in the app settings | [The Events API](https://docs.slack.dev/apis/events-api/) |

## Check yourself

- 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?

## Sources

- [Handling user interaction in your Slack apps](https://docs.slack.dev/interactivity/handling-user-interaction/)
- [Implementing slash commands](https://docs.slack.dev/interactivity/implementing-slash-commands/)
- [The Events API](https://docs.slack.dev/apis/events-api/)
- [App design](https://docs.slack.dev/surfaces/app-design/)
- [App Home](https://docs.slack.dev/surfaces/app-home/)
- [chat.postMessage method](https://docs.slack.dev/reference/methods/chat.postMessage)
- [Implementing shortcuts](https://docs.slack.dev/interactivity/implementing-shortcuts/)

## About the full unit

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