Slack Webhooks

Slack Webhook Guide

A Slack webhook usually means one of three workflows: posting messages into Slack with an incoming webhook, receiving Slack Events API callbacks from a Slack app, or routing provider webhooks into Slack as operational alerts. FastHook can sit in the middle of these flows as the receiving endpoint, routing layer, and Slack delivery system, with inspection, filtering, retries, and replay before messages reach a channel.

Use this page as the Slack webhook overview. If your job is specifically to send Stripe, GitHub, Shopify, or custom webhook events into a channel, use the focused webhook to Slack guide.

Slack webhook meanings

Search intentWhat it usually meansFastHook fit
Slack incoming webhookA Slack-provided URL that accepts a JSON message and posts into one channel.FastHook can route to Slack with a bot-token destination while keeping logs and replay.
Slack Events API webhookA Slack app callback URL that receives signed Slack events such as app mentions or interactions.Use the Slack webhooks integration guide
Webhook to SlackA provider or internal webhook should create a Slack alert.Use the webhook to Slack guide

Choose the right Slack webhook path

QuestionBest next stepWhy
Do you need Slack to call your app?Read the Slack Events API guideThis is an inbound Slack callback problem with Slack signatures and app event types.
Do you need a system to post into Slack?Read the webhook to Slack guideThis is an outbound alerting problem with templates, filters, retries, and delivery logs.
Do you only need a single simple Slack URL?Use Slack Incoming Webhooks directly or route through FastHook when reliability matters.Incoming webhooks are simple, but FastHook adds auditability, replay, and control.

When Slack should receive webhook alerts

  • A payment, subscription, repository, order, or internal workflow needs team attention.
  • The event is useful for humans, not just machines.
  • The receiving system is allowed to fail without losing the original webhook evidence.
  • The Slack message should be filtered, templated, throttled, or replayed after a fix.
  • Several providers should post into one operational channel through the same control layer.

How FastHook fits Slack webhook workflows

  1. Use a FastHook source when Slack, Stripe, GitHub, Shopify, or a custom app needs to send webhook events.
  2. Use filters and transformations to separate raw event ingestion from team-facing notifications.
  3. Use a Slack destination when an event should become a Slack channel message.
  4. Use attempt logs, retries, and replay so Slack history is not your only operational record.

Slack destination shape

FastHook Slack delivery uses a SLACK destination with a channel, text template, optional Block Kit template, and bot token. The full setup belongs on the focused webhook-to-Slack page; this compact shape shows the fields involved.

Create Slack destination body
{
  "name": "Slack ops alerts",
  "type": "SLACK",
  "config": {
    "channel": "#ops-alerts",
    "text_template": "Stripe {{payload.type}} for {{payload.data.object.customer}}",
    "blocks_template": "[{\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"*Stripe {{payload.type}}*\\nCustomer: {{payload.data.object.customer}}\\nEvent: {{payload.id}}\"}}]",
    "auth_type": "SLACK_BOT_TOKEN",
    "auth": {
      "bot_token": "xoxb-your-slack-bot-token"
    },
    "rate_limit": 1,
    "rate_limit_period": "second"
  }
}

Common Slack webhook examples

SourceSlack channelMessage intent
Stripe#billing-alertsinvoice.payment_failed or subscription cancellation needs follow-up.
GitHub#engineering-alertsworkflow_run failed, deployment failed, or release published.
Shopify#ops-alertsorder or fulfillment exception needs human review.
Custom app#customer-eventshigh-value signup, account risk event, or approval request.

Avoid noisy Slack webhooks

  • Do not send every successful event unless the channel is explicitly a log stream.
  • Filter by provider event type, severity, customer tier, environment, or payload state.
  • Use separate Slack destinations for incident, billing, support, and engineering workflows.
  • Rate-limit noisy routes and test replay in a staging channel first.
  • Keep large raw payloads in FastHook evidence instead of dumping them into Slack.

Debug Slack webhook delivery

  • invalid_auth usually means the bot token is missing, revoked, or lacks permission.
  • channel_not_found or not_in_channel usually means the bot is not in the target channel.
  • Malformed Block Kit JSON can turn a good webhook into a rejected Slack API call.
  • Temporary Slack failures, rate limits, and timeouts should be retried with delivery evidence.
  • FastHook attempt logs show the Slack response before you retry or replay a batch.

Slack is not the source of truth

Slack is excellent for attention and coordination, but it is weak as a durable webhook archive. FastHook keeps the request, routed event, destination attempt, response body, and replay path available outside the channel. That matters when a teammate asks whether the provider sent the webhook, whether Slack rejected it, or whether an old event was replayed.

Related guides