Get conversation time by ids
/v1/conversations/times/{ids}org.permission.conversation.readorg.user.conversation.readThe API key or user must hold at least one of them. Legacy roles still work; prefer the others for new keys.
Retrieves conversation_times base on the unique ID or the IDs of conversation_time(s).
Conversation time
Conversation time records how long agents actively spent working on a conversation in Kustomer. Each record is one handle session, and the records together are the source for handle time reporting.
While an agent has a conversation open in the agent desktop, Kustomer times how long they work on it. Each stretch of work is saved as a conversation_time record linked to the conversation, its customer and the agent who did the work. One conversation collects many records over its life, across agents and separate sessions of work. Kustomer creates these records itself; the API only reads them. Use them to calculate handle time per conversation, per agent or per team in your own reporting.
What a record holds
handleAt is when the session started and handleTime is how long it lasted. messageAt and messageTime cover the part of it the agent spent composing replies. Each record also captures the context at that moment: channels of the conversation, its assignedUsers and assignedTeams, and createdByTeams, the agent's teams.
v1 and v2
Kustomer has two handle timers, and each API version reads one of them.
GET /v1/conversations/{id}/times |
GET /v2/conversations/{id}/times |
|
|---|---|---|
| Time unit | Seconds | Milliseconds |
| Records returned | The conversation's records | Only records from the v2 timer (timerVersion: "v2"), filtered by your org's handle time settings |
| Extra detail | None | Who handled it (handleBy), pauses, browser focus, the action that triggered the record, and what changed |
The v2 filtering follows your org's average handle time settings: how focus is handled, which conversation statuses are excluded, and whether time without an assigned agent counts. v2 records also say which agent action triggered the capture, in agentActionTrigger: reply_sent, note_sent, conversation_done, conversation_reopened, conversation_snoozed or kobject_status_change. isFocused tells you whether the browser tab was in focus. touched, resolved, snoozed and reopened show what happened to the conversation during the session, and messagesSent, notesSent, noteAt and noteTime break down the agent's activity.
Which endpoint to use
| To | Call |
|---|---|
| Get handle time for a conversation, with full detail, matching your org's settings | GET /v2/conversations/{id}/times |
| Get all handle time records for a conversation, in seconds | GET /v1/conversations/{id}/times |
| Fetch specific records by ID | GET /v1/conversations/times/{ids}, with a comma-separated list |
Don't mix units: convert v1 seconds or v2 milliseconds before you add them together. Both list endpoints return the newest records first and are paginated with page and pageSize; pass sort=asc for oldest first. Reading conversation time needs conversation read access.
Path parameters
Comma-separated resource IDs.
"60254e3ec413ae00571e3c96"Responses
Success