WebhookWatch Guides

Slack Webhook Testen

Validate Slack slash commands, outgoing webhooks, and bot notifications in real time with WebhookWatch's dedicated debugging endpoints.

Real-time webhook debugging voor Nederlandse developers

Setup Guide

Point your Slack integration to a unique WebhookWatch endpoint and start capturing payloads instantly. No signup required — your endpoint is ready the moment you land on this page.

1. Generate Your Endpoint

Click "Create New Webhook" in the WebhookWatch dashboard. You'll receive a URL like https://webhookwatch.io/hooks/a1b2c3d4 that forwards every incoming request in real time.

🔗

2. Configure Slack

In your Slack App settings under Basic Information → App Credentials, paste the WebhookWatch URL into the Request URL field for slash commands, or add it to your Outgoing Webhooks target list.

📡

3. Trigger & Inspect

Type /deploy staging in any Slack channel. Within 200ms, WebhookWatch displays the full POST payload, headers, and raw body — including the token, team_id, user_id, and command fields.

POST https://webhookwatch.io/hooks/a1b2c3d4
Content-Type: application/x-www-form-urlencoded

token=JhR8sKl3pQmN7vBxWz2YdFgE&channel_id=C04KJ9M2N7P&channel_name=deployments&user_id=U02BEKX4T&command=/deploy&text=staging&response_url=https%3A%2F%2Fhooks.slack.com%2Fcommands%2FT04ABCD%2F12345%2Fxyz&trigger_id=12345.67890.abcdef

Payload Structure

Slack sends slash command and outgoing webhook payloads as application/x-www-form-urlencoded POST data. WebhookWatch parses and displays every field so you can verify your integration handles them correctly.

🔑

Authentication Fields

token — Your verification token from the Slack App settings. Always validate this first. team_id — The workspace identifier, e.g. T04ABCD12. user_id — The user who triggered the command, e.g. U02BEKX4T.

💬

Command Fields

command — The slash command invoked, e.g. /deploy. text — Arguments passed after the command, e.g. staging --force. channel_id and channel_name — Where the command was typed, e.g. C04KJ9M2N7P / deployments.

📤

Response Fields

response_url — Use this to post messages back to the originating channel. trigger_id — Required if you want to open a Slack modal or send an ephemeral message via the API.

{
  "token": "JhR8sKl3pQmN7vBxWz2YdFgE",
  "team_id": "T04ABCD12",
  "enterprise_id": null,
  "channel_id": "C04KJ9M2N7P",
  "channel_name": "deployments",
  "user_id": "U02BEKX4T",
  "user_name": "lotte.van.der.meer",
  "command": "/deploy",
  "text": "staging --force",
  "response_url": "https://hooks.slack.com/commands/T04ABCD/12345/xyz",
  "trigger_id": "12345.67890.abcdef",
  "api_app_id": "A08XYZQ9R"
}

Response Format

Slack expects your endpoint to respond within 3 seconds. WebhookWatch lets you test different response strategies — from inline messages to ephemeral replies and full modals.

Inline Response (200 OK)

Return text/plain or application/json directly in the HTTP response. Slack posts it as a channel message. Best for quick confirmations like "Deployment to staging started."

📨

Response URL (Async)

Return 200 OK with an empty body, then POST to the response_url within 30 seconds. Use response_type: "ephemeral" to send a message only to the triggering user, or "in_channel" to broadcast.

🪟

Modal Response

Call the Slack API endpoint https://slack.com/api/views.open with the trigger_id and a view JSON payload. WebhookWatch logs the full API response so you can debug view validation errors.

// Example: Ephemeral response via response_url
POST https://hooks.slack.com/commands/T04ABCD/12345/xyz
Content-Type: application/json

{
  "response_type": "ephemeral",
  "text": "✅ Deployment to staging initiated by lotte.van.der.meer.\nBuild #4821 is running on runner eu-west-1-prod-03."
}
// Example: In-channel broadcast
{
  "response_type": "in_channel",
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "🚀 *Deploy to staging* — Build #4821\n"
      }
    }
  ]
}