Build
Ticket API
Read, synchronize, and respond to Concierge service requests from a site-scoped external system.
List and retrieve tickets
Ticket endpoints include only conversations created through the ticket route for the site in the URL. Lists are sorted by most recently updated.
| Operation | Scope | Notes |
|---|---|---|
| GET /v1/sites/{siteId}/tickets | tickets:read | status, limit, and skip query parameters |
| GET /v1/sites/{siteId}/tickets/{ticketId} | tickets:read | Returns one site-scoped ticket |
| PATCH /v1/sites/{siteId}/tickets/{ticketId} | tickets:write | Updates status, priority, and external link data |
| POST /v1/sites/{siteId}/tickets/{ticketId}/comments | tickets:write | Adds a specialist message and escalates the ticket |
curl --fail-with-body \
"$CONCIERGE_API_BASE/v1/sites/$CONCIERGE_SITE_ID/tickets?status=open&limit=25&skip=0" \
-H "x-concierge-api-key: $CONCIERGE_API_KEY"Understand the ticket object
Keep the Concierge ticket ID as your stable link. Store external identifiers back on the ticket so operators can move safely between systems.
| Field | Meaning |
|---|---|
| id | Ticket identifier used by get, update, and comment operations. |
| status | open, escalated, or resolved. |
| priority | normal, high, or urgent. |
| visitor | Captured name, email, and phone when available. |
| request | The visitor request, including the ticket form data. |
| messages | The service-request conversation history. |
| externalTicketId | Your system's ticket or record identifier. |
| externalTicketUrl | An absolute HTTPS link back to your ticket. |
| externalSystem | The external system responsible for the update. |
| createdAt / updatedAt | ISO timestamps for ordering and synchronization. |
{
"id": "64f...",
"siteId": "site_...",
"status": "open",
"priority": "high",
"summary": "Customer needs installation help",
"visitor": {
"name": "Taylor",
"email": "taylor@example.com",
"phone": null
},
"externalTicketId": null,
"externalTicketUrl": null,
"externalSystem": null,
"createdAt": "2026-07-29T18:10:00.000Z",
"updatedAt": "2026-07-29T18:12:00.000Z"
}Link your ticket and send a reply
After your system creates its record, patch the Concierge ticket with the external identity. Add a comment only when the text should be visible as a specialist message in the Concierge conversation.
- status accepts open, escalated, or resolved.
- priority accepts normal, high, or urgent.
- externalTicketUrl must be an absolute HTTP or HTTPS URL.
- A comment changes the ticket to escalated and records the named specialist.
Link and update
curl --fail-with-body -X PATCH \
"$CONCIERGE_API_BASE/v1/sites/$CONCIERGE_SITE_ID/tickets/$TICKET_ID" \
-H "Content-Type: application/json" \
-H "x-concierge-api-key: $CONCIERGE_API_KEY" \
--data '{
"status": "escalated",
"priority": "high",
"externalTicketId": "HELP-1042",
"externalTicketUrl": "https://support.example.com/tickets/HELP-1042",
"externalSystem": "Example Support",
"agentNote": "Assigned to installation team"
}'Add a specialist comment
curl --fail-with-body -X POST \
"$CONCIERGE_API_BASE/v1/sites/$CONCIERGE_SITE_ID/tickets/$TICKET_ID/comments" \
-H "Content-Type: application/json" \
-H "x-concierge-api-key: $CONCIERGE_API_KEY" \
--data '{"content":"We are reviewing your installation now.","authorName":"Example Support"}'Next guide
CRM Webhook