---
title: "Slack Event"
method: POST
path: "/slack"
tags: ["Webhooks"]
---

# Slack Event

`POST /slack` (webhook)

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}`.

## Payload

- SlackWebhookPayload
  - `id` string, 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
  - `timestamp` string, date-time, required
  - `data` SlackWebhookData, required
    - `identity_id` string, uuid, required
    - `connection_id` string, uuid, required
    - `workspace_id` string, required
    - `conversation_id` string, nullable
    - `message_ts` string, nullable
    - `thread_ts` string, nullable
    - `actor_id` string, nullable
    - `actor_profile` SlackActorProfile
      - `id` string, required
      - `name` string, nullable
      - `real_name` string, nullable
      - `is_bot` boolean, nullable
      - `is_app_user` boolean, nullable
      - `deleted` boolean, nullable
      - `team_id` string, nullable
      - `tz` string, nullable
      - `tz_label` string, nullable
      - `tz_offset` integer, nullable
      - `profile` SlackProfileFields
        - `display_name` string, nullable
        - `real_name` string, nullable
        - `first_name` string, nullable
        - `last_name` string, nullable
        - `email` string, nullable
        - `phone` string, nullable
        - `title` string, nullable
        - `status_text` string, nullable
        - `status_emoji` string, nullable
        - `image_48` string, nullable
        - `image_72` string, nullable
        - `image_192` string, nullable
    - `contact_id` string, uuid, nullable
    - `message_kinds` SlackMessageKind[]
    - `event` object — Event-specific content and references, excluding transport credentials.

## Acknowledgement `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/inkbox/apis/inkbox-api.md) · [All operations](https://skmtc.dev/inkbox/apis/inkbox-api/llms.txt) · [OpenAPI document](https://skmtc.dev/inkbox/apis/inkbox-api/revisions/5cbaa42f14f7?raw)
