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
- Go to Settings → Integrations → Webhooks → New webhook
- Enter your endpoint URL (must be HTTPS)
- Select the events you want to receive
- Click Save — Ticket0 sends a test ping to verify your endpoint is reachable
Available events
| Event | Triggered when |
|---|---|
ticket.created | A new ticket is received |
ticket.assigned | A ticket is assigned to an agent |
ticket.resolved | A ticket is marked resolved |
ticket.reopened | A resolved ticket is reopened |
ticket.tagged | A tag is added to a ticket |
message.sent | An agent or AI sends a reply |
customer.created | A 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.