Skip to content
Coritan Docs

Organization API: Staff Support: Chat

The 46 Organization API operations for chat.

View as Markdown

Part of Staff Support.

Method Path Summary
GET /api/v1/orgs/{org_slug}/chat/conversations List customer conversations
POST /api/v1/orgs/{org_slug}/chat/conversations Create customer conversation
GET /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id} Get customer conversation
POST /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/attachments Upload customer attachment
GET /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/attachments/{attachment_id} Download customer attachment
GET /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/attachments/{attachment_id}/thumbnail Lets a thread show an image inline instead of a download link
POST /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/close Close customer conversation
POST /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/csat Rate customer conversation
GET /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/messages Get customer messages
POST /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/messages Send customer message
POST /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/read Mark customer conversation read
POST /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/reopen Reopen customer conversation
POST /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/requests/{request_id}/approve Approve ticket request
POST /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/requests/{request_id}/decline Decline ticket request
POST /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/requests/{request_id}/revoke Take back access given from this ticket, before it closes
GET /api/v1/orgs/{org_slug}/chat/meta Get customer support meta
GET /api/v1/orgs/{org_slug}/chat/staff/canned-responses List org canned responses
POST /api/v1/orgs/{org_slug}/chat/staff/canned-responses Create org canned response
PUT /api/v1/orgs/{org_slug}/chat/staff/canned-responses/{response_id} Update org canned response
DELETE /api/v1/orgs/{org_slug}/chat/staff/canned-responses/{response_id} Delete org canned response
GET /api/v1/orgs/{org_slug}/chat/staff/conversations Tickets, newest activity first
POST /api/v1/orgs/{org_slug}/chat/staff/conversations Open a ticket on a customer's behalf
POST /api/v1/orgs/{org_slug}/chat/staff/conversations/bulk Bulk org staff conversations
GET /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id} Get org staff conversation
PATCH /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id} Priority, department, status, and (Tier 3 and above) which customer the ticket belongs to
POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/assign Claim a ticket, or with agentid (Tier 3 and above) give it to a teammate
GET /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/attachments/{attachment_id} The file a customer attached, for the staff member reading the ticket
POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/close Close org staff conversation
POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/duplicate Close this ticket as a duplicate of another of the same customer's
POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/escalate Escalate org conversation
POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/escalate-tier Pass a ticket up to Tier 2 or Tier 3, back into the queue there
POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/internal-note A note for the desk, on any ticket the caller may read
GET /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/messages Get org staff messages
POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/messages A reply to a closed ticket reopens it first
POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/release Give a claimed ticket back to the queue
POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/reopen Reopen org staff conversation
GET /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/requests Every request on the ticket, newest first, as its card shows it
POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/requests Create ticket request
POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/requests/{request_id}/cancel Withdraw a request the customer has not answered yet
POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/requests/{request_id}/release Give back server access before the ticket closes: done with it, or handing the work on
POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/transfer Transfer org conversation
POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/viewing Org ticket viewing
GET /api/v1/orgs/{org_slug}/chat/staff/departments Departments with their names and SLAs, for anything staff-side that shows a ticket
GET /api/v1/orgs/{org_slug}/chat/staff/queue Unclaimed tickets waiting for an answer, at the caller's tier or below
POST /api/v1/orgs/{org_slug}/chat/staff/queue/take-next Claim the ticket at the front of the queue and hand it back
GET /api/v1/orgs/{org_slug}/chat/staff/stats The figures above the inbox, under the audience the request carries

GET /api/v1/orgs/{org_slug}/chat/conversations

Name In Type Required Description
org_slug path string yes
status query string no
priority query string no
q query string no
page query integer no Default: 1.
limit query integer no Default: 20.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

A 200 response is a list; each item has these fields:

Field Type
[].id integer
[].conversation_number integer
[].scope string
[].subject string
[].status string
[].priority string
[].department string or null
[].assigned_agent_id integer or null
[].assigned_agent_name string or null
[].user_id integer or null
[].user_email string or null
[].user_name string or null
[].customer_id integer or null
[].channel string
[].email_from string or null
[].last_message_at string (date-time) or null
[].last_message_preview string or null
[].tags array of string or null
[].unread_count integer
[].waiting_seconds integer or null
[].sla_first_response_due_at string (date-time) or null
[].sla_resolution_due_at string (date-time) or null
[].sla_breached_first_response boolean
[].sla_breached_resolution boolean
[].first_response_at string (date-time) or null
[].csat_score integer or null
[].created_at string (date-time)
[].updated_at string (date-time)
[].is_free boolean or null
[].viewers array of string
[].escalated_tier integer or null

POST /api/v1/orgs/{org_slug}/chat/conversations

Name In Type Required
org_slug path string yes

application/json (required)

Field Type Required
subject string yes
department string or null no
priority string no
body string yes
service_id integer or null no
tags array of string or null no
client_request_id string or null no
Status Meaning
201 Success.
422 The request is not valid. detail lists each problem.

Fields of a 201 response:

Field Type
id integer
conversation_number integer
scope string
org_id integer or null
user_id integer or null
user_email string or null
user_name string or null
customer_id integer or null
channel string
email_from string or null
email_mailbox string or null
subject string
department string or null
priority string
status string
assigned_agent_id integer or null
assigned_agent_name string or null
assigned_at string (date-time) or null
service_id integer or null
last_message_at string (date-time) or null
last_message_preview string or null
closed_at string (date-time) or null
reopened_count integer
tags array of string or null
first_response_at string (date-time) or null
first_response_by_id integer or null
resolved_at string (date-time) or null
sla_first_response_due_at string (date-time) or null
sla_resolution_due_at string (date-time) or null
sla_breached_first_response boolean
sla_breached_resolution boolean
csat_score integer or null
csat_comment string or null
csat_rated_at string (date-time) or null
unread_count integer
messages array of ChatMessageResponse
messages[].id integer
messages[].conversation_id integer
messages[].sender_type string
messages[].sender_id integer or null
messages[].sender_name string or null
messages[].body string or null
messages[].content_type string
messages[].is_internal boolean
messages[].attachments array of AttachmentResponse
messages[].read_at string (date-time) or null
messages[].created_at string (date-time)
messages[].client_request_id string or null
messages[].request object or null
created_at string (date-time)
updated_at string (date-time)
is_free boolean or null
escalated_tier integer or null

GET /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}

Name In Type Required
conversation_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
conversation_number integer
scope string
org_id integer or null
user_id integer or null
user_email string or null
user_name string or null
customer_id integer or null
channel string
email_from string or null
email_mailbox string or null
subject string
department string or null
priority string
status string
assigned_agent_id integer or null
assigned_agent_name string or null
assigned_at string (date-time) or null
service_id integer or null
last_message_at string (date-time) or null
last_message_preview string or null
closed_at string (date-time) or null
reopened_count integer
tags array of string or null
first_response_at string (date-time) or null
first_response_by_id integer or null
resolved_at string (date-time) or null
sla_first_response_due_at string (date-time) or null
sla_resolution_due_at string (date-time) or null
sla_breached_first_response boolean
sla_breached_resolution boolean
csat_score integer or null
csat_comment string or null
csat_rated_at string (date-time) or null
unread_count integer
messages array of ChatMessageResponse
messages[].id integer
messages[].conversation_id integer
messages[].sender_type string
messages[].sender_id integer or null
messages[].sender_name string or null
messages[].body string or null
messages[].content_type string
messages[].is_internal boolean
messages[].attachments array of AttachmentResponse
messages[].read_at string (date-time) or null
messages[].created_at string (date-time)
messages[].client_request_id string or null
messages[].request object or null
created_at string (date-time)
updated_at string (date-time)
is_free boolean or null
escalated_tier integer or null

POST /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/attachments

Name In Type Required
conversation_id path integer yes
org_slug path string yes

multipart/form-data (required)

Field Type Required
file string (binary) yes
Status Meaning
201 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/attachments/{attachment_id}

Name In Type Required
conversation_id path integer yes
attachment_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Lets a thread show an image inline instead of a download link

Section titled Lets a thread show an image inline instead of a download link

GET /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/attachments/{attachment_id}/thumbnail

Lets a thread show an image inline instead of a download link.

Name In Type Required
conversation_id path integer yes
attachment_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/close

Name In Type Required
conversation_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
conversation_number integer
scope string
org_id integer or null
user_id integer or null
user_email string or null
user_name string or null
customer_id integer or null
channel string
email_from string or null
email_mailbox string or null
subject string
department string or null
priority string
status string
assigned_agent_id integer or null
assigned_agent_name string or null
assigned_at string (date-time) or null
service_id integer or null
last_message_at string (date-time) or null
last_message_preview string or null
closed_at string (date-time) or null
reopened_count integer
tags array of string or null
first_response_at string (date-time) or null
first_response_by_id integer or null
resolved_at string (date-time) or null
sla_first_response_due_at string (date-time) or null
sla_resolution_due_at string (date-time) or null
sla_breached_first_response boolean
sla_breached_resolution boolean
csat_score integer or null
csat_comment string or null
csat_rated_at string (date-time) or null
unread_count integer
messages array of ChatMessageResponse
messages[].id integer
messages[].conversation_id integer
messages[].sender_type string
messages[].sender_id integer or null
messages[].sender_name string or null
messages[].body string or null
messages[].content_type string
messages[].is_internal boolean
messages[].attachments array of AttachmentResponse
messages[].read_at string (date-time) or null
messages[].created_at string (date-time)
messages[].client_request_id string or null
messages[].request object or null
created_at string (date-time)
updated_at string (date-time)
is_free boolean or null
escalated_tier integer or null

POST /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/csat

Rating is only meaningful once the ticket is done, so it is refused while the conversation is still open.

Name In Type Required
conversation_id path integer yes
org_slug path string yes

application/json (required)

Field Type Required
score integer yes
comment string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/messages

Name In Type Required Description
conversation_id path integer yes
org_slug path string yes
before_id query integer no
after_id query integer no
limit query integer no Default: 50.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

A 200 response is a list; each item has these fields:

Field Type
[].id integer
[].conversation_id integer
[].sender_type string
[].sender_id integer or null
[].sender_name string or null
[].body string or null
[].content_type string
[].is_internal boolean
[].attachments array of AttachmentResponse
[].attachments[].id integer
[].attachments[].file_name string
[].attachments[].file_size integer
[].attachments[].mime_type string
[].attachments[].created_at string (date-time)
[].read_at string (date-time) or null
[].created_at string (date-time)
[].client_request_id string or null
[].request object or null

POST /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/messages

Name In Type Required
conversation_id path integer yes
org_slug path string yes

application/json (required)

Field Type Required
body string yes
client_request_id string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
conversation_id integer
sender_type string
sender_id integer or null
sender_name string or null
body string or null
content_type string
is_internal boolean
attachments array of AttachmentResponse
attachments[].id integer
attachments[].file_name string
attachments[].file_size integer
attachments[].mime_type string
attachments[].created_at string (date-time)
read_at string (date-time) or null
created_at string (date-time)
client_request_id string or null
request object or null

Mark customer conversation read

Section titled Mark customer conversation read

POST /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/read

Name In Type Required
conversation_id path integer yes
org_slug path string yes

application/json (required)

Field Type Required
up_to_message_id integer or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/reopen

Name In Type Required
conversation_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
conversation_number integer
scope string
org_id integer or null
user_id integer or null
user_email string or null
user_name string or null
customer_id integer or null
channel string
email_from string or null
email_mailbox string or null
subject string
department string or null
priority string
status string
assigned_agent_id integer or null
assigned_agent_name string or null
assigned_at string (date-time) or null
service_id integer or null
last_message_at string (date-time) or null
last_message_preview string or null
closed_at string (date-time) or null
reopened_count integer
tags array of string or null
first_response_at string (date-time) or null
first_response_by_id integer or null
resolved_at string (date-time) or null
sla_first_response_due_at string (date-time) or null
sla_resolution_due_at string (date-time) or null
sla_breached_first_response boolean
sla_breached_resolution boolean
csat_score integer or null
csat_comment string or null
csat_rated_at string (date-time) or null
unread_count integer
messages array of ChatMessageResponse
messages[].id integer
messages[].conversation_id integer
messages[].sender_type string
messages[].sender_id integer or null
messages[].sender_name string or null
messages[].body string or null
messages[].content_type string
messages[].is_internal boolean
messages[].attachments array of AttachmentResponse
messages[].read_at string (date-time) or null
messages[].created_at string (date-time)
messages[].client_request_id string or null
messages[].request object or null
created_at string (date-time)
updated_at string (date-time)
is_free boolean or null
escalated_tier integer or null

POST /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/requests/{request_id}/approve

Share the logs asked for, or give the engineer who asked subuser access until the ticket closes.

Name In Type Required
conversation_id path integer yes
request_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/requests/{request_id}/decline

Name In Type Required
conversation_id path integer yes
request_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Take back access given from this ticket, before it closes

Section titled Take back access given from this ticket, before it closes

POST /api/v1/orgs/{org_slug}/chat/conversations/{conversation_id}/requests/{request_id}/revoke

Take back access given from this ticket, before it closes.

Name In Type Required
conversation_id path integer yes
request_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/chat/meta

Name In Type Required
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/chat/staff/canned-responses

Name In Type Required
org_slug path string yes
department query string no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

A 200 response is a list; each item has these fields:

Field Type
[].id integer
[].org_id integer or null
[].title string
[].shortcut string
[].body string
[].department string or null
[].is_shared boolean
[].created_at string (date-time)
[].updated_at string (date-time)

POST /api/v1/orgs/{org_slug}/chat/staff/canned-responses

Name In Type Required
org_slug path string yes

application/json (required)

Field Type Required
title string yes
shortcut string yes
body string yes
department string or null no
is_shared boolean no
Status Meaning
201 Success.
422 The request is not valid. detail lists each problem.

Fields of a 201 response:

Field Type
id integer
org_id integer or null
title string
shortcut string
body string
department string or null
is_shared boolean
created_at string (date-time)
updated_at string (date-time)

PUT /api/v1/orgs/{org_slug}/chat/staff/canned-responses/{response_id}

Name In Type Required
response_id path integer yes
org_slug path string yes

application/json (required)

Field Type Required
title string or null no
shortcut string or null no
body string or null no
department string or null no
is_shared boolean or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
org_id integer or null
title string
shortcut string
body string
department string or null
is_shared boolean
created_at string (date-time)
updated_at string (date-time)

DELETE /api/v1/orgs/{org_slug}/chat/staff/canned-responses/{response_id}

Name In Type Required
response_id path integer yes
org_slug path string yes
Status Meaning
204 Success.
422 The request is not valid. detail lists each problem.

Tickets, newest activity first

Section titled Tickets, newest activity first

GET /api/v1/orgs/{org_slug}/chat/staff/conversations

Tickets, newest activity first. Tier 1 sees only the queue and its own; assigned_to (one engineer's claims) is for Tier 3 and above, escalated narrows to tickets escalated to a higher tier.

Name In Type Required Description
org_slug path string yes
status query string no
priority query string no
q query string no
assigned_to_me query boolean no Default: False.
assigned_to query integer or null no
escalated query boolean no Default: False.
audience query string no
page query integer no Default: 1.
limit query integer no Default: 20.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

A 200 response is a list; each item has these fields:

Field Type
[].id integer
[].conversation_number integer
[].scope string
[].subject string
[].status string
[].priority string
[].department string or null
[].assigned_agent_id integer or null
[].assigned_agent_name string or null
[].user_id integer or null
[].user_email string or null
[].user_name string or null
[].customer_id integer or null
[].channel string
[].email_from string or null
[].last_message_at string (date-time) or null
[].last_message_preview string or null
[].tags array of string or null
[].unread_count integer
[].waiting_seconds integer or null
[].sla_first_response_due_at string (date-time) or null
[].sla_resolution_due_at string (date-time) or null
[].sla_breached_first_response boolean
[].sla_breached_resolution boolean
[].first_response_at string (date-time) or null
[].csat_score integer or null
[].created_at string (date-time)
[].updated_at string (date-time)
[].is_free boolean or null
[].viewers array of string
[].escalated_tier integer or null

Open a ticket on a customer's behalf

Section titled Open a ticket on a customer's behalf

POST /api/v1/orgs/{org_slug}/chat/staff/conversations

Open a ticket on a customer's behalf. The customer sees a system line saying staff opened it, then the staff member's message, and is emailed like any reply; the paid-support gate does not apply because staff chose to reach out.

Name In Type Required
org_slug path string yes

application/json (required)

Field Type Required
customer_id integer yes
subject string yes
body string yes
priority string no
department string or null no
service_id integer or null no
assign_to_me boolean no
Status Meaning
201 Success.
422 The request is not valid. detail lists each problem.

Fields of a 201 response:

Field Type
id integer
conversation_number integer
scope string
org_id integer or null
user_id integer or null
user_email string or null
user_name string or null
customer_id integer or null
channel string
email_from string or null
email_mailbox string or null
subject string
department string or null
priority string
status string
assigned_agent_id integer or null
assigned_agent_name string or null
assigned_at string (date-time) or null
service_id integer or null
last_message_at string (date-time) or null
last_message_preview string or null
closed_at string (date-time) or null
reopened_count integer
tags array of string or null
first_response_at string (date-time) or null
first_response_by_id integer or null
resolved_at string (date-time) or null
sla_first_response_due_at string (date-time) or null
sla_resolution_due_at string (date-time) or null
sla_breached_first_response boolean
sla_breached_resolution boolean
csat_score integer or null
csat_comment string or null
csat_rated_at string (date-time) or null
unread_count integer
messages array of ChatMessageResponse
messages[].id integer
messages[].conversation_id integer
messages[].sender_type string
messages[].sender_id integer or null
messages[].sender_name string or null
messages[].body string or null
messages[].content_type string
messages[].is_internal boolean
messages[].attachments array of AttachmentResponse
messages[].read_at string (date-time) or null
messages[].created_at string (date-time)
messages[].client_request_id string or null
messages[].request object or null
created_at string (date-time)
updated_at string (date-time)
is_free boolean or null
escalated_tier integer or null

POST /api/v1/orgs/{org_slug}/chat/staff/conversations/bulk

The same change to many tickets at once: take them, drop them, close them, or set their priority or department. Tickets outside this org are skipped, not refused, so one bad id cannot spoil a selection.

Name In Type Required
org_slug path string yes

application/json (required)

Field Type Required
ids array of integer yes
action string yes
value string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}

Name In Type Required
conversation_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
conversation_number integer
scope string
org_id integer or null
user_id integer or null
user_email string or null
user_name string or null
customer_id integer or null
channel string
email_from string or null
email_mailbox string or null
subject string
department string or null
priority string
status string
assigned_agent_id integer or null
assigned_agent_name string or null
assigned_at string (date-time) or null
service_id integer or null
last_message_at string (date-time) or null
last_message_preview string or null
closed_at string (date-time) or null
reopened_count integer
tags array of string or null
first_response_at string (date-time) or null
first_response_by_id integer or null
resolved_at string (date-time) or null
sla_first_response_due_at string (date-time) or null
sla_resolution_due_at string (date-time) or null
sla_breached_first_response boolean
sla_breached_resolution boolean
csat_score integer or null
csat_comment string or null
csat_rated_at string (date-time) or null
unread_count integer
messages array of ChatMessageResponse
messages[].id integer
messages[].conversation_id integer
messages[].sender_type string
messages[].sender_id integer or null
messages[].sender_name string or null
messages[].body string or null
messages[].content_type string
messages[].is_internal boolean
messages[].attachments array of AttachmentResponse
messages[].read_at string (date-time) or null
messages[].created_at string (date-time)
messages[].client_request_id string or null
messages[].request object or null
created_at string (date-time)
updated_at string (date-time)
is_free boolean or null
escalated_tier integer or null

Priority, department, status, and (Tier 3 and above) which customer the ticket belongs to

Section titled Priority, department, status, and (Tier 3 and above) which customer the ticket belongs to

PATCH /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}

Priority, department, status, and (Tier 3 and above) which customer the ticket belongs to. A status of closed closes it the way the close button does, and moving a closed ticket to any other status reopens it first, so whatever a close or a reopen sets in motion runs either way.

Name In Type Required
conversation_id path integer yes
org_slug path string yes

application/json (required)

Field Type Required
priority string or null no
department string or null no
status string or null no
tags array of string or null no
subject string or null no
customer_id integer or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
conversation_number integer
scope string
org_id integer or null
user_id integer or null
user_email string or null
user_name string or null
customer_id integer or null
channel string
email_from string or null
email_mailbox string or null
subject string
department string or null
priority string
status string
assigned_agent_id integer or null
assigned_agent_name string or null
assigned_at string (date-time) or null
service_id integer or null
last_message_at string (date-time) or null
last_message_preview string or null
closed_at string (date-time) or null
reopened_count integer
tags array of string or null
first_response_at string (date-time) or null
first_response_by_id integer or null
resolved_at string (date-time) or null
sla_first_response_due_at string (date-time) or null
sla_resolution_due_at string (date-time) or null
sla_breached_first_response boolean
sla_breached_resolution boolean
csat_score integer or null
csat_comment string or null
csat_rated_at string (date-time) or null
unread_count integer
messages array of ChatMessageResponse
messages[].id integer
messages[].conversation_id integer
messages[].sender_type string
messages[].sender_id integer or null
messages[].sender_name string or null
messages[].body string or null
messages[].content_type string
messages[].is_internal boolean
messages[].attachments array of AttachmentResponse
messages[].read_at string (date-time) or null
messages[].created_at string (date-time)
messages[].client_request_id string or null
messages[].request object or null
created_at string (date-time)
updated_at string (date-time)
is_free boolean or null
escalated_tier integer or null

Claim a ticket, or with agentid (Tier 3 and above) give it to a teammate

Section titled Claim a ticket, or with agentid (Tier 3 and above) give it to a teammate

POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/assign

Claim a ticket, or with agent_id (Tier 3 and above) give it to a teammate. Either way the new holder must be able to take it and have room under their claim limit.

Name In Type Required
conversation_id path integer yes
org_slug path string yes

application/json (required)

Field Type Required
agent_id integer or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
conversation_number integer
scope string
org_id integer or null
user_id integer or null
user_email string or null
user_name string or null
customer_id integer or null
channel string
email_from string or null
email_mailbox string or null
subject string
department string or null
priority string
status string
assigned_agent_id integer or null
assigned_agent_name string or null
assigned_at string (date-time) or null
service_id integer or null
last_message_at string (date-time) or null
last_message_preview string or null
closed_at string (date-time) or null
reopened_count integer
tags array of string or null
first_response_at string (date-time) or null
first_response_by_id integer or null
resolved_at string (date-time) or null
sla_first_response_due_at string (date-time) or null
sla_resolution_due_at string (date-time) or null
sla_breached_first_response boolean
sla_breached_resolution boolean
csat_score integer or null
csat_comment string or null
csat_rated_at string (date-time) or null
unread_count integer
messages array of ChatMessageResponse
messages[].id integer
messages[].conversation_id integer
messages[].sender_type string
messages[].sender_id integer or null
messages[].sender_name string or null
messages[].body string or null
messages[].content_type string
messages[].is_internal boolean
messages[].attachments array of AttachmentResponse
messages[].read_at string (date-time) or null
messages[].created_at string (date-time)
messages[].client_request_id string or null
messages[].request object or null
created_at string (date-time)
updated_at string (date-time)
is_free boolean or null
escalated_tier integer or null

The file a customer attached, for the staff member reading the ticket

Section titled The file a customer attached, for the staff member reading the ticket

GET /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/attachments/{attachment_id}

The file a customer attached, for the staff member reading the ticket. The customer route is scoped to the owner; this one to the org.

Name In Type Required
conversation_id path integer yes
attachment_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/close

Name In Type Required
conversation_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
conversation_number integer
scope string
org_id integer or null
user_id integer or null
user_email string or null
user_name string or null
customer_id integer or null
channel string
email_from string or null
email_mailbox string or null
subject string
department string or null
priority string
status string
assigned_agent_id integer or null
assigned_agent_name string or null
assigned_at string (date-time) or null
service_id integer or null
last_message_at string (date-time) or null
last_message_preview string or null
closed_at string (date-time) or null
reopened_count integer
tags array of string or null
first_response_at string (date-time) or null
first_response_by_id integer or null
resolved_at string (date-time) or null
sla_first_response_due_at string (date-time) or null
sla_resolution_due_at string (date-time) or null
sla_breached_first_response boolean
sla_breached_resolution boolean
csat_score integer or null
csat_comment string or null
csat_rated_at string (date-time) or null
unread_count integer
messages array of ChatMessageResponse
messages[].id integer
messages[].conversation_id integer
messages[].sender_type string
messages[].sender_id integer or null
messages[].sender_name string or null
messages[].body string or null
messages[].content_type string
messages[].is_internal boolean
messages[].attachments array of AttachmentResponse
messages[].read_at string (date-time) or null
messages[].created_at string (date-time)
messages[].client_request_id string or null
messages[].request object or null
created_at string (date-time)
updated_at string (date-time)
is_free boolean or null
escalated_tier integer or null

Close this ticket as a duplicate of another of the same customer's

Section titled Close this ticket as a duplicate of another of the same customer's

POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/duplicate

Close this ticket as a duplicate of another of the same customer's.

The customer is told which ticket the conversation continues in; the other ticket gets an internal note pointing back, so whoever answers it knows there was a second report. Only tickets of the same customer can be folded together, because folding two customers' tickets is always a mistake.

Name In Type Required
conversation_id path integer yes
org_slug path string yes

application/json (required)

Field Type Required Description
of integer yes The ticket this one duplicates
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
conversation_number integer
scope string
org_id integer or null
user_id integer or null
user_email string or null
user_name string or null
customer_id integer or null
channel string
email_from string or null
email_mailbox string or null
subject string
department string or null
priority string
status string
assigned_agent_id integer or null
assigned_agent_name string or null
assigned_at string (date-time) or null
service_id integer or null
last_message_at string (date-time) or null
last_message_preview string or null
closed_at string (date-time) or null
reopened_count integer
tags array of string or null
first_response_at string (date-time) or null
first_response_by_id integer or null
resolved_at string (date-time) or null
sla_first_response_due_at string (date-time) or null
sla_resolution_due_at string (date-time) or null
sla_breached_first_response boolean
sla_breached_resolution boolean
csat_score integer or null
csat_comment string or null
csat_rated_at string (date-time) or null
unread_count integer
messages array of ChatMessageResponse
messages[].id integer
messages[].conversation_id integer
messages[].sender_type string
messages[].sender_id integer or null
messages[].sender_name string or null
messages[].body string or null
messages[].content_type string
messages[].is_internal boolean
messages[].attachments array of AttachmentResponse
messages[].read_at string (date-time) or null
messages[].created_at string (date-time)
messages[].client_request_id string or null
messages[].request object or null
created_at string (date-time)
updated_at string (date-time)
is_free boolean or null
escalated_tier integer or null

POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/escalate

Name In Type Required
conversation_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
conversation_number integer
scope string
org_id integer or null
user_id integer or null
user_email string or null
user_name string or null
customer_id integer or null
channel string
email_from string or null
email_mailbox string or null
subject string
department string or null
priority string
status string
assigned_agent_id integer or null
assigned_agent_name string or null
assigned_at string (date-time) or null
service_id integer or null
last_message_at string (date-time) or null
last_message_preview string or null
closed_at string (date-time) or null
reopened_count integer
tags array of string or null
first_response_at string (date-time) or null
first_response_by_id integer or null
resolved_at string (date-time) or null
sla_first_response_due_at string (date-time) or null
sla_resolution_due_at string (date-time) or null
sla_breached_first_response boolean
sla_breached_resolution boolean
csat_score integer or null
csat_comment string or null
csat_rated_at string (date-time) or null
unread_count integer
messages array of ChatMessageResponse
messages[].id integer
messages[].conversation_id integer
messages[].sender_type string
messages[].sender_id integer or null
messages[].sender_name string or null
messages[].body string or null
messages[].content_type string
messages[].is_internal boolean
messages[].attachments array of AttachmentResponse
messages[].read_at string (date-time) or null
messages[].created_at string (date-time)
messages[].client_request_id string or null
messages[].request object or null
created_at string (date-time)
updated_at string (date-time)
is_free boolean or null
escalated_tier integer or null

Pass a ticket up to Tier 2 or Tier 3, back into the queue there

Section titled Pass a ticket up to Tier 2 or Tier 3, back into the queue there

POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/escalate-tier

Pass a ticket up to Tier 2 or Tier 3, back into the queue there.

Tiers 1 and 2 may only send a ticket above themselves. Tier 3 and above may also lower an escalation or clear it (tier: null). note tells the next engineer what has been tried, as an internal note.

Name In Type Required
conversation_id path integer yes
org_slug path string yes

application/json (required)

Field Type Required
tier integer or null no
note string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
conversation_number integer
scope string
org_id integer or null
user_id integer or null
user_email string or null
user_name string or null
customer_id integer or null
channel string
email_from string or null
email_mailbox string or null
subject string
department string or null
priority string
status string
assigned_agent_id integer or null
assigned_agent_name string or null
assigned_at string (date-time) or null
service_id integer or null
last_message_at string (date-time) or null
last_message_preview string or null
closed_at string (date-time) or null
reopened_count integer
tags array of string or null
first_response_at string (date-time) or null
first_response_by_id integer or null
resolved_at string (date-time) or null
sla_first_response_due_at string (date-time) or null
sla_resolution_due_at string (date-time) or null
sla_breached_first_response boolean
sla_breached_resolution boolean
csat_score integer or null
csat_comment string or null
csat_rated_at string (date-time) or null
unread_count integer
messages array of ChatMessageResponse
messages[].id integer
messages[].conversation_id integer
messages[].sender_type string
messages[].sender_id integer or null
messages[].sender_name string or null
messages[].body string or null
messages[].content_type string
messages[].is_internal boolean
messages[].attachments array of AttachmentResponse
messages[].read_at string (date-time) or null
messages[].created_at string (date-time)
messages[].client_request_id string or null
messages[].request object or null
created_at string (date-time)
updated_at string (date-time)
is_free boolean or null
escalated_tier integer or null

A note for the desk, on any ticket the caller may read

Section titled A note for the desk, on any ticket the caller may read

POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/internal-note

A note for the desk, on any ticket the caller may read. Tier 2 can leave one on a colleague's ticket it may not answer.

Name In Type Required
conversation_id path integer yes
org_slug path string yes

application/json (required)

Field Type Required
body string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
conversation_id integer
sender_type string
sender_id integer or null
sender_name string or null
body string or null
content_type string
is_internal boolean
attachments array of AttachmentResponse
attachments[].id integer
attachments[].file_name string
attachments[].file_size integer
attachments[].mime_type string
attachments[].created_at string (date-time)
read_at string (date-time) or null
created_at string (date-time)
client_request_id string or null
request object or null

GET /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/messages

Name In Type Required Description
conversation_id path integer yes
org_slug path string yes
before_id query integer no
limit query integer no Default: 50.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

A 200 response is a list; each item has these fields:

Field Type
[].id integer
[].conversation_id integer
[].sender_type string
[].sender_id integer or null
[].sender_name string or null
[].body string or null
[].content_type string
[].is_internal boolean
[].attachments array of AttachmentResponse
[].attachments[].id integer
[].attachments[].file_name string
[].attachments[].file_size integer
[].attachments[].mime_type string
[].attachments[].created_at string (date-time)
[].read_at string (date-time) or null
[].created_at string (date-time)
[].client_request_id string or null
[].request object or null

A reply to a closed ticket reopens it first

Section titled A reply to a closed ticket reopens it first

POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/messages

A reply to a closed ticket reopens it first. The composer says so, and a staff member writing to a customer means to be heard, not refused. An unassigned ticket becomes the replier's: whoever answers owns it, unless somebody already does, and within the replier's claim limit. With close the ticket is closed once the reply is in.

Name In Type Required
conversation_id path integer yes
org_slug path string yes

application/json (required)

Field Type Required
body string yes
client_request_id string or null no
close boolean no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
conversation_id integer
sender_type string
sender_id integer or null
sender_name string or null
body string or null
content_type string
is_internal boolean
attachments array of AttachmentResponse
attachments[].id integer
attachments[].file_name string
attachments[].file_size integer
attachments[].mime_type string
attachments[].created_at string (date-time)
read_at string (date-time) or null
created_at string (date-time)
client_request_id string or null
request object or null

Give a claimed ticket back to the queue

Section titled Give a claimed ticket back to the queue

POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/release

Give a claimed ticket back to the queue. The holder may release their own; Tier 3 and above may release anyone's. note is left for whoever takes it next, as an internal note.

Name In Type Required
conversation_id path integer yes
org_slug path string yes

application/json

Field Type Required
note string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
conversation_number integer
scope string
org_id integer or null
user_id integer or null
user_email string or null
user_name string or null
customer_id integer or null
channel string
email_from string or null
email_mailbox string or null
subject string
department string or null
priority string
status string
assigned_agent_id integer or null
assigned_agent_name string or null
assigned_at string (date-time) or null
service_id integer or null
last_message_at string (date-time) or null
last_message_preview string or null
closed_at string (date-time) or null
reopened_count integer
tags array of string or null
first_response_at string (date-time) or null
first_response_by_id integer or null
resolved_at string (date-time) or null
sla_first_response_due_at string (date-time) or null
sla_resolution_due_at string (date-time) or null
sla_breached_first_response boolean
sla_breached_resolution boolean
csat_score integer or null
csat_comment string or null
csat_rated_at string (date-time) or null
unread_count integer
messages array of ChatMessageResponse
messages[].id integer
messages[].conversation_id integer
messages[].sender_type string
messages[].sender_id integer or null
messages[].sender_name string or null
messages[].body string or null
messages[].content_type string
messages[].is_internal boolean
messages[].attachments array of AttachmentResponse
messages[].read_at string (date-time) or null
messages[].created_at string (date-time)
messages[].client_request_id string or null
messages[].request object or null
created_at string (date-time)
updated_at string (date-time)
is_free boolean or null
escalated_tier integer or null

POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/reopen

Name In Type Required
conversation_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
conversation_number integer
scope string
org_id integer or null
user_id integer or null
user_email string or null
user_name string or null
customer_id integer or null
channel string
email_from string or null
email_mailbox string or null
subject string
department string or null
priority string
status string
assigned_agent_id integer or null
assigned_agent_name string or null
assigned_at string (date-time) or null
service_id integer or null
last_message_at string (date-time) or null
last_message_preview string or null
closed_at string (date-time) or null
reopened_count integer
tags array of string or null
first_response_at string (date-time) or null
first_response_by_id integer or null
resolved_at string (date-time) or null
sla_first_response_due_at string (date-time) or null
sla_resolution_due_at string (date-time) or null
sla_breached_first_response boolean
sla_breached_resolution boolean
csat_score integer or null
csat_comment string or null
csat_rated_at string (date-time) or null
unread_count integer
messages array of ChatMessageResponse
messages[].id integer
messages[].conversation_id integer
messages[].sender_type string
messages[].sender_id integer or null
messages[].sender_name string or null
messages[].body string or null
messages[].content_type string
messages[].is_internal boolean
messages[].attachments array of AttachmentResponse
messages[].read_at string (date-time) or null
messages[].created_at string (date-time)
messages[].client_request_id string or null
messages[].request object or null
created_at string (date-time)
updated_at string (date-time)
is_free boolean or null
escalated_tier integer or null

Every request on the ticket, newest first, as its card shows it

Section titled Every request on the ticket, newest first, as its card shows it

GET /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/requests

Every request on the ticket, newest first, as its card shows it.

Name In Type Required
conversation_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/requests

Ask the ticket's customer for a server's logs (any tier) or for subuser access to it (Tier 2 and above). The customer answers in their thread; nothing is shared or granted until they do.

Name In Type Required
conversation_id path integer yes
org_slug path string yes

application/json (required)

Field Type Required
kind string yes
server_uuid string yes
scope string yes
note string or null no
Status Meaning
201 Success.
422 The request is not valid. detail lists each problem.

Withdraw a request the customer has not answered yet

Section titled Withdraw a request the customer has not answered yet

POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/requests/{request_id}/cancel

Withdraw a request the customer has not answered yet.

Name In Type Required
conversation_id path integer yes
request_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Give back server access before the ticket closes: done with it, or handing the work on

Section titled Give back server access before the ticket closes: done with it, or handing the work on

POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/requests/{request_id}/release

Give back server access before the ticket closes: done with it, or handing the work on.

Name In Type Required
conversation_id path integer yes
request_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/transfer

Name In Type Required
conversation_id path integer yes
org_slug path string yes

application/json (required)

Field Type Required
agent_id integer or null no
department string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
conversation_number integer
scope string
org_id integer or null
user_id integer or null
user_email string or null
user_name string or null
customer_id integer or null
channel string
email_from string or null
email_mailbox string or null
subject string
department string or null
priority string
status string
assigned_agent_id integer or null
assigned_agent_name string or null
assigned_at string (date-time) or null
service_id integer or null
last_message_at string (date-time) or null
last_message_preview string or null
closed_at string (date-time) or null
reopened_count integer
tags array of string or null
first_response_at string (date-time) or null
first_response_by_id integer or null
resolved_at string (date-time) or null
sla_first_response_due_at string (date-time) or null
sla_resolution_due_at string (date-time) or null
sla_breached_first_response boolean
sla_breached_resolution boolean
csat_score integer or null
csat_comment string or null
csat_rated_at string (date-time) or null
unread_count integer
messages array of ChatMessageResponse
messages[].id integer
messages[].conversation_id integer
messages[].sender_type string
messages[].sender_id integer or null
messages[].sender_name string or null
messages[].body string or null
messages[].content_type string
messages[].is_internal boolean
messages[].attachments array of AttachmentResponse
messages[].read_at string (date-time) or null
messages[].created_at string (date-time)
messages[].client_request_id string or null
messages[].request object or null
created_at string (date-time)
updated_at string (date-time)
is_free boolean or null
escalated_tier integer or null

POST /api/v1/orgs/{org_slug}/chat/staff/conversations/{conversation_id}/viewing

The console's heartbeat on an open ticket: "I am looking at this one", answered with who else is. One presence row per staff member follows them from ticket to ticket; a row older than VIEWING_TTL is a closed tab and is not reported.

Name In Type Required
conversation_id path integer yes
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
viewers array of object

Departments with their names and SLAs, for anything staff-side that shows a ticket

Section titled Departments with their names and SLAs, for anything staff-side that shows a ticket

GET /api/v1/orgs/{org_slug}/chat/staff/departments

Departments with their names and SLAs, for anything staff-side that shows a ticket. Tickets carry only the slug; without this the console printed billing where a customer sees "Billing".

Name In Type Required
org_slug path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Unclaimed tickets waiting for an answer, at the caller's tier or below

Section titled Unclaimed tickets waiting for an answer, at the caller's tier or below

GET /api/v1/orgs/{org_slug}/chat/staff/queue

Unclaimed tickets waiting for an answer, at the caller's tier or below.

Name In Type Required Description
org_slug path string yes
department query string no
audience query string no
page query integer no Default: 1.
limit query integer no Default: 20.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

A 200 response is a list; each item has these fields:

Field Type
[].id integer
[].conversation_number integer
[].scope string
[].subject string
[].status string
[].priority string
[].department string or null
[].assigned_agent_id integer or null
[].assigned_agent_name string or null
[].user_id integer or null
[].user_email string or null
[].user_name string or null
[].customer_id integer or null
[].channel string
[].email_from string or null
[].last_message_at string (date-time) or null
[].last_message_preview string or null
[].tags array of string or null
[].unread_count integer
[].waiting_seconds integer or null
[].sla_first_response_due_at string (date-time) or null
[].sla_resolution_due_at string (date-time) or null
[].sla_breached_first_response boolean
[].sla_breached_resolution boolean
[].first_response_at string (date-time) or null
[].csat_score integer or null
[].created_at string (date-time)
[].updated_at string (date-time)
[].is_free boolean or null
[].viewers array of string
[].escalated_tier integer or null

Claim the ticket at the front of the queue and hand it back

Section titled Claim the ticket at the front of the queue and hand it back

POST /api/v1/orgs/{org_slug}/chat/staff/queue/take-next

Claim the ticket at the front of the queue and hand it back.

One click instead of open the inbox, pick the top row, press Take. The lock means two people pressing at the same moment get two different tickets, not the same one. null when nobody is waiting. Refused with 409 when the caller already holds as many tickets as their tier may.

Name In Type Required
org_slug path string yes
department query string no
audience query string no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
id integer
conversation_number integer
scope string
subject string
status string
priority string
department string or null
assigned_agent_id integer or null
assigned_agent_name string or null
user_id integer or null
user_email string or null
user_name string or null
customer_id integer or null
channel string
email_from string or null
last_message_at string (date-time) or null
last_message_preview string or null
tags array of string or null
unread_count integer
waiting_seconds integer or null
sla_first_response_due_at string (date-time) or null
sla_resolution_due_at string (date-time) or null
sla_breached_first_response boolean
sla_breached_resolution boolean
first_response_at string (date-time) or null
csat_score integer or null
created_at string (date-time)
updated_at string (date-time)
is_free boolean or null
viewers array of string
escalated_tier integer or null

The figures above the inbox, under the audience the request carries

Section titled The figures above the inbox, under the audience the request carries

GET /api/v1/orgs/{org_slug}/chat/staff/stats

The figures above the inbox, under the audience the request carries. closed_today is the tickets closed since midnight in the brand's own timezone (OrgSettings.timezone; UTC when the brand has not set one), so "what we finished today" is the day the team is working in. Waiting counts what the caller's tier may take; claim_limit is how many the caller may hold, and Tier 3 and above also get claims per engineer.

Name In Type Required
org_slug path string yes
audience query string no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
total_waiting integer
agents_online integer
my_open integer
my_awaiting_agent integer
total_active integer
open integer
total_on_hold integer
sla_breached integer
closed_today integer
oldest_waiting_seconds integer or null
avg_first_response_seconds number or null
avg_resolution_seconds number or null
by_department By Department
by_priority By Priority
by_status By Status
claim_limit integer or null
escalated_waiting integer
claims array of object or null