ChaosDesk ChaosDesk

Webhooks

Push ticket activity into Slack, Teams, Discord or your own endpoint, and turn inbound email into tickets.

Outbound webhooks

Configure channels per site under Site settings, then Notifications, or through the API. Each channel subscribes to the events you choose.

POST /api/v1/sites/{site}/webhook-channels

{
  "name": "Engineering Slack",
  "type": "slack",          // slack | teams | discord | custom
  "webhook_url": "https://hooks.slack.com/services/…",
  "events": ["ticket.created", "ticket.replied", "ticket.sla_warning"],
  "is_active": true
}

Slack, Teams and Discord payloads are formatted for each platform. A custom channel receives the raw payload:

{
  "title": "SLA Warning: Ticket #01J…",
  "body": "…",
  "url": "https://chaosdesk.eu/support/tickets/01J…",
  "metadata": {
    "ticket_ulid": "01J…",
    "sla_type": "first_response",
    "minutes_remaining": 45
  }
}

Delivery is retried three times. A channel that fails ten times in a row is disabled automatically; re-enable it once the endpoint is healthy.

SLA notifications

A scheduled scan runs every minute. It warns once per clock when a ticket passes its warning threshold, defaulting to 80% of the target, and records a breach once the deadline passes. Warnings reach the assigned agent by email and every subscribed webhook channel. Paused and resolved tickets are skipped.

Inbound email

Each site has a secret inbound webhook URL for Postmark. Find it under Site settings, then Inbound Addresses.

POST /api/webhooks/postmark/inbound/{secret}

Replies are threaded automatically: ChaosDesk addresses outbound mail as ticket+{ulid}@your-inbound-domain and matches incoming mail back to the ticket. A reply to a resolved ticket reopens it.

Inbound rules

Rules run in order against each incoming message and can set the category, priority and assignee, add tags or metadata, or discard and forward the mail. A rule marked stop_processing ends the chain.