Slack signs every Events API request with an HMAC-SHA256 value in theDocumentation Index
Fetch the complete documentation index at: https://supahooks.ar27111994.dev/llms.txt
Use this file to discover all available pages before exploring further.
X-Slack-Signature header using a v0=<hex> format, alongside a timestamp in X-Slack-Request-Timestamp. Use the Webhook Debugger to confirm your signing secret is correct, capture both JSON event callbacks and form-encoded interactivity payloads, and prototype immediate response bodies without deploying your real Slack backend.
Configure the actor for Slack
Start the actor with the following input. Replaceslack_signing_secret with the signing secret from your Slack app’s Basic Information page.
X-Slack-Request-Timestamp header. The tolerance value (in seconds) controls how far apart the request timestamp and server clock can be before verification fails. The default of 300 seconds matches Slack’s own tolerance window.
After the actor starts, call /info to retrieve the generated webhook URL.
Set the request URL in your Slack app
Open your Slack app settings
Go to api.slack.com/apps, select your app, and open Event Subscriptions or Interactivity & Shortcuts depending on what you want to test.
Paste the endpoint URL
Copy the
/webhook/:id URL from /info and paste it into the Request URL field.Handle the URL verification challenge
Slack immediately sends a Paste this script into the
url_verification challenge when you save the URL. The actor returns {"ok":true} by default, which does not satisfy Slack’s challenge response requirement.Use a customScript to return the challenge value:customScript field in the actor input before saving the Request URL in Slack.Test event callbacks and slash commands
After Slack delivers a callback, query/logs to see what was captured.
Filter for Events API JSON callbacks:
Prototype a custom immediate response
UsecustomScript to return a custom response body for interactivity requests without deploying your real Slack backend:
Common failure patterns
| Signal | What it usually means | What to do |
|---|---|---|
signatureValid=false | Wrong signing secret or timestamp outside tolerance | Verify the Slack signing secret and check for server clock skew |
dispatch_failed in Slack | Slack did not receive a fast enough 2xx | Keep the immediate actor response lightweight and move heavy work behind forwarding or replay |
Raw payload= body instead of nested JSON | Slack interactivity was sent as form-encoded data | Inspect the raw body string or forward it to app code that decodes Slack interactivity payloads |