Choosing Between Slack Socket Mode and Events API for Your App
Learn how Socket Mode and the Events API differ, when to use each, and how to migrate a Slack app with minimal code changes using the Bolt framework.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
Learn how Socket Mode and the Events API differ, when to use each, and how to migrate a Slack app with minimal code changes using the Bolt framework.
Learn how to reliably process Slack events with Bolt, handle the retry header, and decide between the HTTP Event API and Socket Mode for your bot.
I'm building a Slack workspace app that needs to receive events (messages, reactions) and interactive payloads such as button clicks. The server hosting the app sits behind a corporate firewall with no publicly reachable HTTPS endpoint, and opening inbound traffic requires a lengthy security review. Slack documents two delivery models. The Events API pushes
Slack App Manifest setup for repeatable development I am defining a Slack app entirely through an App Manifest (YAML) so the same bot user, event subscriptions, and OAuth scopes can be recreated across disposable workspaces for development and CI. The manifest itself is under version control, while the bot token, app-level token, and signing secret are injec
Slack CLI slack run : pinning a stable tunnel URL across local sessions Slack's CLI supports repeatable local development: slack run starts the app locally, connects over Socket Mode for events, and provisions a tunnel so HTTP endpoints — slash commands, interactivity, OAuth redirects — stay reachable. Configuration lives in manifest.yaml with secrets in .en