Docs
Integrations

Webhooks

Receive real-time events from Ticket0 in your own systems.

Webhooks allow you to receive real-time notifications when things happen in Ticket0 — ticket created, resolved, assigned, message sent, etc.

Creating a webhook

  1. Go to Settings → Integrations → Webhooks → New webhook
  2. Enter your endpoint URL (must be HTTPS)
  3. Select the events you want to receive
  4. Click Save — Ticket0 sends a test ping to verify your endpoint is reachable

Available events

EventTriggered when
ticket.createdA new ticket is received
ticket.assignedA ticket is assigned to an agent
ticket.resolvedA ticket is marked resolved
ticket.reopenedA resolved ticket is reopened
ticket.taggedA tag is added to a ticket
message.sentAn agent or AI sends a reply
customer.createdA new customer record is created

Payload format

All events share a common envelope:

{
  "id": "evt_01abc...",
  "type": "ticket.created",
  "createdAt": "2025-01-15T10:30:00Z",
  "workspaceId": "ws_your_workspace_id",
  "data": {
    // event-specific payload
  }
}

Verifying signatures

Each request includes a Ticket0-Signature header. Verify it to ensure the request came from Ticket0:

import { createHmac } from "crypto"

function verifySignature(payload: string, signature: string, secret: string) {
  const expected = createHmac("sha256", secret)
    .update(payload)
    .digest("hex")
  return `sha256=${expected}` === signature
}

Your webhook secret is shown once when you create the webhook. Store it securely.

Retries

If your endpoint returns a non-2xx response, Ticket0 retries the delivery with exponential backoff: after 1 minute, 5 minutes, 30 minutes, 2 hours, and 6 hours. After 5 failed attempts the delivery is abandoned and marked failed in the webhook log.

Viewing delivery logs

Go to Settings → Integrations → Webhooks → [your webhook] → Deliveries to see all recent attempts and their response codes.

On this page