Docs Blog Sign in

Webhooks

Webhooks let your application receive real-time HTTP callbacks when events occur in Helpdesk. All webhook endpoints require admin permission.

The webhook object

AttributeTypeDescription
idstringUnique identifier
namestringDisplay name
targetUrlstringHTTPS endpoint to receive events
eventsarrayList of subscribed event types
activebooleanWhether the webhook is active
signingSecretstringSigning secret (only returned on creation)
createdAtstringCreation time (ISO 8601 UTC)
updatedAtstringLast update time (ISO 8601 UTC)

Supported events

EventDescription
ticket.createdA new ticket is created
ticket.updatedA ticket is updated (status, priority, custom fields, etc.)
ticket.deletedA ticket is deleted
ticket.assignment.changedA ticket’s assignee changes
ticket.resolvedA ticket status changes to resolved

List webhooks

GET /helpdesk/api/v1/webhooks

Response

{
  "webhooks": [ ... ]
}

Retrieve a webhook

GET /helpdesk/api/v1/webhooks/:id

Create a webhook

POST /helpdesk/api/v1/webhooks

Request body

{
  "webhook": {
    "name": "My Integration",
    "targetUrl": "https://example.com/webhook",
    "events": ["ticket.created", "ticket.updated"],
    "active": true
  }
}
FieldTypeRequiredDescription
namestringyesDisplay name
targetUrlstringyesHTTPS endpoint URL
eventsarrayyesEvent types to subscribe to
activebooleannoDefaults to true

Response

Returns 201 Created. The signingSecret is included only in the creation response — store it securely.

{
  "webhook": {
    "id": "whk_abc123",
    "name": "My Integration",
    "targetUrl": "https://example.com/webhook",
    "events": ["ticket.created", "ticket.updated"],
    "active": true,
    "signingSecret": "whsec_...",
    "createdAt": "2025-01-15T10:30:00.000Z",
    "updatedAt": "2025-01-15T10:30:00.000Z"
  }
}

Update a webhook

PUT /helpdesk/api/v1/webhooks/:id

Request body

{
  "webhook": {
    "name": "Updated Name",
    "events": ["ticket.created"],
    "active": false
  }
}

All fields are optional. Only provided fields are updated.

Delete a webhook

DELETE /helpdesk/api/v1/webhooks/:id

Returns 204 No Content.

Webhook payloads

When an event fires, Helpdesk sends a POST request to your targetUrl with a JSON payload:

{
  "event": "ticket.created",
  "timestamp": "2025-01-15T10:30:00.000Z",
  "data": {
    "ticket": { ... }
  }
}

For ticket.updated, the payload includes only the changed fields:

{
  "event": "ticket.updated",
  "timestamp": "2025-01-15T10:30:00.000Z",
  "data": {
    "ticket": {
      "id": "tkt_abc123",
      "updatedFields": {
        "status": { "from": "open", "to": "pending" }
      }
    }
  }
}