Updates a QA cohort. Send only the fields you want to change; omitted fields keep their values. Results already scored are not re-scored; the new settings apply to calls scored from now on.
Request#
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | QA cohort ID, for example qa_cohort_2c4e6a8b0d1f3e5a7c9b1d3f. |
The body takes any of the fields from Create QA cohort, all optional, with the same limits. Send null for from_timestamp, to_timestamp, min_duration_ms or max_duration_ms to clear it.
Example request#
curl -X PATCH https://api.tried.com.au/qa/cohorts/qa_cohort_2c4e6a8b0d1f3e5a7c9b1d3f \
-H "Authorization: Bearer $TRIED_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"sampling_percent": 100,
"pass_threshold": 75
}'const res = await fetch("https://api.tried.com.au/qa/cohorts/qa_cohort_2c4e6a8b0d1f3e5a7c9b1d3f", {
method: "PATCH",
headers: {
Authorization: `Bearer ${process.env.TRIED_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"sampling_percent": 100,
"pass_threshold": 75
}),
});
const cohort = await res.json();import os, requests
res = requests.patch(
"https://api.tried.com.au/qa/cohorts/qa_cohort_2c4e6a8b0d1f3e5a7c9b1d3f",
headers={"Authorization": f"Bearer {os.environ['TRIED_API_KEY']}"},
json={
"sampling_percent": 100,
"pass_threshold": 75,
},
)
cohort = res.json()Response#
200 OK
{
"qa_cohort_id": "qa_cohort_2c4e6a8b0d1f3e5a7c9b1d3f",
"name": "Booking calls",
"agent_ids": [
"agent_4b7e2c9a1f3d5e8b0c6a2d1f"
],
"from_timestamp": null,
"to_timestamp": null,
"min_duration_ms": 30000,
"max_duration_ms": null,
"disconnection_reasons": [],
"sampling_percent": 100,
"weekly_max": 200,
"criteria": [
{
"name": "Confirms the booking",
"prompt": "The agent reads back the date and time and says \"you are booked in\".",
"weight": 2
},
{
"name": "Offers a reminder",
"prompt": "The agent offers an SMS reminder before the appointment."
}
],
"created_timestamp": 1792395000000,
"last_run_timestamp": 1792395060000,
"extraction_filters": [
{
"source": "analysis",
"key": "appointment_booked",
"op": "eq",
"value": true
}
],
"metrics": [
{
"metric": "latency",
"weight": 1
},
{
"metric": "sentiment",
"weight": 1,
"threshold": 60
}
],
"pass_threshold": 75,
"calibration": null
}Returns the updated cohort.
| Field | Type | Description |
|---|---|---|
qa_cohort_id |
string | Cohort ID, prefixed qa_cohort_. |
last_run_timestamp |
integer or null | Unix ms of the last run. |
calibration |
object or null | Result of the last applied calibration. |
The other fields echo the cohort settings. See Create QA cohort.
Errors#
| Status | When |
|---|---|
400 |
Body validation failed. |
401 |
Missing or invalid API key. |
403 |
The key's IP allowlist or scopes reject the request. This route needs the analytics scope. Dashboard users with the member role get The member role is read-only. |
404 |
No cohort with that ID in the workspace: QA cohort <id> not found. |
429 |
Rate limit exceeded. See Rate limits. |
See Errors for the body format.
Retell compatibility#
Retell's public API reference has no AI QA endpoints, so this route has no Retell SDK equivalent.