Skip to main content
Give your integration tickets:read and tickets:write. Add ticket_fields:read if you use custom fields. Your company must have Desk entitlement.

Create a ticket from your source system

Store the returned data.id alongside your source record. API-created ticket numbers use the API- prefix and a unique identifier. The external integration is recorded as the ticket’s creator. If you lose the response, retry the same payload with the same key. See idempotency.

Update progress

Updates accept status, priority, assignee, group name, and custom fields. An assignee must be an active member in your company. Send assignee_id as an empty string to remove the assignee. Custom field keys are the UUIDs returned by GET /api/v1/ticket-fields; supplied values merge with existing values. Required fields cannot be cleared. Retrieve a conversation using a credential with conversations:read, then supply its opaque ID as conversation_id when creating a ticket. This additionally requires Chat entitlement. A conversation from another company is unavailable.

Retrieve changes

Poll GET /api/v1/tickets?updated_since=2026-10-01T00:00:00Z, follow pagination, and upsert results into your system by ticket ID. Use overlapping windows to account for live updates. Customer webhook subscriptions are not included in this release.