Webhooks

Slack Event

Identity-owned Slack activity, connection changes, and send outcomes. Access is limited to the connection's granted permissions. Payloads contain event-local content and references, not an automatic conversation-history archive. Events may be delivered more than once; deduplicate with the stable event id. A successful HTTP response acknowledges receipt and does not post a reply.

If your organization has a signing key, every webhook includes three headers:

  • X-Inkbox-Request-ID — UUID for deduplication.
  • X-Inkbox-Timestamp — Unix timestamp in seconds.
  • X-Inkbox-Signature — sha256={HMAC-SHA256 hex digest} over {request_id}.{timestamp}.{raw_body}.
postWebhook/slack

Payload

idstring required
event_type'slack.dm_received' | 'slack.group_dm_received' | 'slack.channel_message_received' | 'slack.mention_received' | 'slack.thread_reply_received' | 'slack.message_updated' | 'slack.message_deleted' | 'slack.reaction_added' | 'slack.reaction_removed' | 'slack.member_joined' | 'slack.member_left' | 'slack.channel_updated' | 'slack.file_shared' | 'slack.file_changed' | 'slack.file_deleted' | 'slack.pin_added' | 'slack.pin_removed' | 'slack.connection_changed' | 'slack.message_sent' | 'slack.message_send_failed' | 'slack.message_send_unknown' | 'slack.interaction' | 'slack.session_stopped' required
timestampstring date-time required

Response

Successful Response

{"stackTrail":"webhooks:/slack:post:responses:200:content:application/json:schema","oasType":"schema","type":"unknown"}

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.