Integrations

Slack Events API Setup and Verification

Slack webhooks can power support alerts, approval workflows, incident automation, internal bot events, and collaboration triggers. Slack Events API delivery is signed and starts with a URL verification challenge, so the receiver needs to handle both validation and normal event callbacks correctly.

FastHook gives Slack a stable source URL, verifies signed requests, stores inbound evidence, routes event callbacks to destinations, and keeps retry and replay controls outside the Slack app configuration.

How to receive events from Slack

Create a Slack app, enable Event Subscriptions, and paste the FastHook Slack Source URL into Slack's Request URL field. FastHook answers the url_verification challenge, verifies later callbacks with the app Signing Secret, and records accepted and rejected requests before routing them.

Subscribe only to the bot or workspace events the integration actually needs. Slack sends those events to the same Request URL, so filters should use the callback event type rather than separate public endpoints.

Keep Slack request verification at the source boundary, then route accepted callbacks to the services that own each automation.

Slack delivery model

  1. Create a Slack app and enable the Events API.
  2. Paste the FastHook Source URL into Slack's Request URL field.
  3. Slack sends a signed url_verification challenge.
  4. FastHook verifies the signature and returns the challenge string.
  5. Slack sends normal signed event callbacks to the same source URL.
  6. FastHook routes accepted events to destinations through connection rules.

Signature headers

HeaderUse
x-slack-signaturev0 HMAC-SHA256 request signature.
x-slack-request-timestampUnix timestamp included in the signed input.
challengeReturned during Slack url_verification setup.

Acknowledge Slack within three seconds

Slack expects a successful HTTP acknowledgement within three seconds and retries failed or timed-out deliveries. Keep the source response fast, then perform routing and downstream work asynchronously. Store the Slack event id so retries do not apply the same business action twice.

Create a Slack source

Create Slack source
curl -X POST "https://api.fasthook.io/v1/sources" \
  -H "Authorization: Bearer $FASTHOOK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Slack production",
    "type": "SLACK",
    "config": {
      "auth_type": "PROVIDER_SIGNATURE",
      "auth": {
        "provider": "SLACK",
        "webhook_signing_secret": "slack-signing-secret"
      },
      "allowed_http_methods": ["POST", "PUT", "PATCH", "DELETE"]
    }
  }'

Routing Slack events

  • Route app mentions and bot events to automation services.
  • Route incident-channel events to alerting or support destinations.
  • Route approval events to workflow services with idempotency checks.
  • Keep noisy event families out of destinations that do not need them.

Related guides