> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Elenca ticket di conversazione del workspace

GET https://api.elevenlabs.io/v1/convai/triage-tickets

List conversation triage tickets across every agent in the workspace, ordered by most recently created first. Use this to build a workspace-wide view (for example, tickets assigned to the caller). Supports the same filters, sorting and search as the per-agent endpoint. Tickets for agents the caller cannot access are omitted.

Reference: https://elevenlabs.io/docs/eleven-agents/api-reference/triage-tickets/list-for-workspace

## Servers

- `https://api.elevenlabs.io` (Production, default)
- `https://api.us.elevenlabs.io` (Production US)
- `https://api.eu.residency.elevenlabs.io` (Production EU)
- `https://api.in.residency.elevenlabs.io` (Production India)
- `https://api.sg.residency.elevenlabs.io` (Production Singapore)

## Request

### Query parameters

- `page_size` (integer, optional, default: 100) — Numero di ticket di conversazione dell'agente da restituire. Non può superare 100.
- `agent_id` (string, optional) — Only tickets for this agent.
- `status` (enum, optional) — Filtra i ticket in base allo stato.
  - Allowed values: `open`, `in_progress`, `resolved`, `cancelled`, `merged`
- `sources` (enum, optional) — Filtra i ticket in base alla modalità con cui sono stati creati (qa, agent, manual). Ripeti il parametro per filtrare in base a più fonti.
  - Allowed values: `qa`, `agent`, `manual`
- `priorities` (enum, optional) — Filtra i ticket in base alla priorità. Ripeti il parametro per filtrare in base a più priorità.
  - Allowed values: `low`, `medium`, `high`, `urgent`
- `sort_by` (enum, optional) — Ordina per data di creazione più recente o per priorità, prima i più urgenti e poi i più recenti.
  - Allowed values: `created_at`, `priority`
- `owner_user_id` (string, optional) — Filtra i ticket in base al creatore. Usa 'agent' per i ticket creati dall'agente.
- `assignee_user_id` (string, optional) — Filtra i ticket in base all'assegnatario. Usa 'unassigned' per i ticket senza assegnatario.
- `issue_type` (enum, optional) — Filtra i cluster in base al tipo di problema.
  - Allowed values: `knowledge_gap`, `incorrect_information`, `documentation_gap`, `product_feedback`, `platform_bug`, `tool_issue`, `missing_tool`, `unnecessary_escalation`, `wrong_action`
- `label` (string, optional) — Filtra i ticket in base a un'etichetta esatta.
- `merged_into_ticket_id` (string, optional) — Filtra i ticket uniti a questo ticket.
- `search` (string, optional) — Ricerca full-text senza distinzione tra maiuscole e minuscole nel titolo, nella descrizione, nei commenti e nei commenti dei turni del ticket.
- `cursor` (string, optional) — Usato per recuperare la pagina successiva. Il cursore viene restituito nella risposta.

## Response

### 200

Risposta riuscita

- `agent_conversation_tickets` (list of AgentConversationTicketResponseModel, required)
- `has_more` (boolean, required)
- `next_cursor` (string, optional)

## Errors

### 422 Triage Tickets List for Workspace Request Unprocessable Entity Error

Errore di convalida

- `detail` (list of ValidationError, optional)

## Types

### AgentConversationTicketResponseModel

- `agentqa_ticket_id` (string, required)
- `workspace_id` (string, required)
- `owner_user_id` (string, required)
- `agent_id` (string, required)
- `needs_clustering` (boolean, required)
- `labels` (list of string, required)
- `conversation_ids` (list of string, required)
- `ticket_comments` (list of TicketCommentResponseModel, required)
- `turn_comments` (list of TurnCommentResponseModel, required)
- `status` (enum, required)
  - Allowed values: `open`, `in_progress`, `resolved`, `cancelled`, `merged`
- `priority_changes` (list of TicketPriorityChangeResponseModel, required)
- `source` (enum, required)
  - Allowed values: `qa`, `agent`, `manual`
- `created_at_unix_secs` (integer, required)
- `updated_at_unix_secs` (integer, required)
- `title` (string, optional) — Titolo di una riga per il ticket. None è previsto solo per i ticket creati prima dell'introduzione dei titoli.
- `issue_type` (enum, optional)
  - Allowed values: `knowledge_gap`, `incorrect_information`, `documentation_gap`, `product_feedback`, `platform_bug`, `tool_issue`, `missing_tool`, `unnecessary_escalation`, `wrong_action`
- `first_seen_unix_secs` (integer, optional)
- `last_seen_unix_secs` (integer, optional)
- `qa_comment` (string, optional)
- `priority` (enum, optional)
  - Allowed values: `low`, `medium`, `high`, `urgent`
- `merged_into_ticket_id` (string, optional) — Il ticket in cui è stato unito questo ticket, impostato quando il suo stato è 'merged'.
- `assignee_user_id` (string, optional)
- `search_match` (TicketSearchMatchResponseModel, optional) — Indica dove ha trovato corrispondenza la query `search` dell'elenco. Impostato solo negli elenchi sottoposti a ricerca.

### ValidationError

- `loc` (list of ValidationErrorLocItem, required)
- `msg` (string, required)
- `type` (string, required)

### TicketCommentResponseModel

- `comment` (string, required)
- `created_at_unix_secs` (integer, required)
- `owner_user_id` (string, optional)

### TurnCommentResponseModel

- `turn_index` (integer, required)
- `comment` (string, required)
- `created_at_unix_secs` (integer, required)
- `owner_user_id` (string, optional)

### TicketPriorityChangeResponseModel

- `changed_by_user_id` (string, required)
- `changed_at_unix_secs` (integer, required)
- `priority` (enum, optional)
  - Allowed values: `low`, `medium`, `high`, `urgent`

### TicketSearchMatchResponseModel

- `field` (enum, required) — Quale dei testi del ticket ha trovato una corrispondenza.
  - Allowed values: `title`, `description`, `comment`, `turn_comment`
- `snippet` (string, required) — Estratto attorno alla corrispondenza con gli spazi compressi, con puntini di sospensione nel punto in cui è stato troncato.
- `highlight_start` (integer, required) — Offset della corrispondenza in `snippet`.
- `highlight_end` (integer, required) — Offset finale esclusivo della corrispondenza in `snippet`.
- `turn_index` (integer, optional) — Il turno commentato, impostato quando `field` è 'turn_comment'.

### ValidationErrorLocItem

## Examples

**Response**

```json
{
  "agent_conversation_tickets": [
    {
      "agentqa_ticket_id": "agentqa_ticket_id",
      "workspace_id": "workspace_id",
      "owner_user_id": "owner_user_id",
      "agent_id": "agent_id",
      "needs_clustering": true,
      "labels": [
        "labels"
      ],
      "conversation_ids": [
        "conversation_ids"
      ],
      "ticket_comments": [
        {
          "comment": "comment",
          "created_at_unix_secs": 1,
          "owner_user_id": null
        }
      ],
      "turn_comments": [
        {
          "turn_index": 1,
          "comment": "comment",
          "created_at_unix_secs": 1,
          "owner_user_id": null
        }
      ],
      "status": "open",
      "priority_changes": [
        {
          "changed_by_user_id": "changed_by_user_id",
          "changed_at_unix_secs": 1,
          "priority": null
        }
      ],
      "source": "qa",
      "created_at_unix_secs": 1,
      "updated_at_unix_secs": 1,
      "title": "title",
      "issue_type": "knowledge_gap",
      "first_seen_unix_secs": 1,
      "last_seen_unix_secs": 1,
      "qa_comment": "qa_comment",
      "priority": "low",
      "merged_into_ticket_id": "merged_into_ticket_id",
      "assignee_user_id": "assignee_user_id",
      "search_match": {
        "field": "title",
        "snippet": "snippet",
        "highlight_start": 1,
        "highlight_end": 1
      }
    }
  ],
  "has_more": true,
  "next_cursor": "next_cursor"
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/convai/triage-tickets"

querystring = {"agent_id":"agent_id","assignee_user_id":"assignee_user_id","cursor":"cursor","issue_type":"knowledge_gap","label":"label","merged_into_ticket_id":"merged_into_ticket_id","owner_user_id":"owner_user_id","page_size":"1","priorities":"[\"low\"]","search":"search","sort_by":"created_at","sources":"[\"qa\"]","status":"open"}

response = requests.get(url, params=querystring)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/convai/triage-tickets?agent_id=agent_id&assignee_user_id=assignee_user_id&cursor=cursor&issue_type=knowledge_gap&label=label&merged_into_ticket_id=merged_into_ticket_id&owner_user_id=owner_user_id&page_size=1&priorities=%5B%22low%22%5D&search=search&sort_by=created_at&sources=%5B%22qa%22%5D&status=open';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.elevenlabs.io/v1/convai/triage-tickets?agent_id=agent_id&assignee_user_id=assignee_user_id&cursor=cursor&issue_type=knowledge_gap&label=label&merged_into_ticket_id=merged_into_ticket_id&owner_user_id=owner_user_id&page_size=1&priorities=%5B%22low%22%5D&search=search&sort_by=created_at&sources=%5B%22qa%22%5D&status=open"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.elevenlabs.io/v1/convai/triage-tickets?agent_id=agent_id&assignee_user_id=assignee_user_id&cursor=cursor&issue_type=knowledge_gap&label=label&merged_into_ticket_id=merged_into_ticket_id&owner_user_id=owner_user_id&page_size=1&priorities=%5B%22low%22%5D&search=search&sort_by=created_at&sources=%5B%22qa%22%5D&status=open")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.elevenlabs.io/v1/convai/triage-tickets?agent_id=agent_id&assignee_user_id=assignee_user_id&cursor=cursor&issue_type=knowledge_gap&label=label&merged_into_ticket_id=merged_into_ticket_id&owner_user_id=owner_user_id&page_size=1&priorities=%5B%22low%22%5D&search=search&sort_by=created_at&sources=%5B%22qa%22%5D&status=open")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.elevenlabs.io/v1/convai/triage-tickets?agent_id=agent_id&assignee_user_id=assignee_user_id&cursor=cursor&issue_type=knowledge_gap&label=label&merged_into_ticket_id=merged_into_ticket_id&owner_user_id=owner_user_id&page_size=1&priorities=%5B%22low%22%5D&search=search&sort_by=created_at&sources=%5B%22qa%22%5D&status=open');

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/convai/triage-tickets?agent_id=agent_id&assignee_user_id=assignee_user_id&cursor=cursor&issue_type=knowledge_gap&label=label&merged_into_ticket_id=merged_into_ticket_id&owner_user_id=owner_user_id&page_size=1&priorities=%5B%22low%22%5D&search=search&sort_by=created_at&sources=%5B%22qa%22%5D&status=open");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/convai/triage-tickets?agent_id=agent_id&assignee_user_id=assignee_user_id&cursor=cursor&issue_type=knowledge_gap&label=label&merged_into_ticket_id=merged_into_ticket_id&owner_user_id=owner_user_id&page_size=1&priorities=%5B%22low%22%5D&search=search&sort_by=created_at&sources=%5B%22qa%22%5D&status=open")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```