Duvet DOCS
GitHub

Webhook Resource

A webhook allows external services or integrations to send messages into a room without a user account.

Webhook Object

FieldTypeDescription
id stringThe webhook's UUID (v7, time-ordered)
room_id stringRoom this webhook posts to
username stringDisplay name for webhook messages
avatar string?Avatar attachment ID
created_at ISO 8601When the webhook was created
updated_at ISO 8601When the webhook was last updated

Field token_hash is never included in API responses.

Example

{
  "id": "019cf96a-3d5b-72c5-830f-75e85355d078",
  "room_id": "019cf96a-4a1c-72c5-830f-8b2e44a19c03",
  "username": "GitHub Notifications",
  "avatar": "9bd6da82-c850-424b-89a0-9e4733263a45",
  "created_at": "2025-10-30T00:22:21.000Z",
  "updated_at": "2026-04-06T12:00:00.000Z"
}

WebhookAuthor Object

When a webhook sends a message, the webhook’s username and avatar at the time of sending are stored in the message’s webhook_author JSONB field. This preserves the author information even if the webhook is later updated or deleted.

FieldTypeDescription
username stringWebhook username at time of message
avatar string?Webhook avatar at time of message

Example

{
  "username": "GitHub Notifications",
  "avatar": "9bd6da82-c850-424b-89a0-9e4733263a45"
}