Quality Management
Update a quality scorecard
PATCH /quality/scorecard/{id}
PATCH /quality/scorecard/{id}
Update an existing quality scorecard. Requires qualityManageScorecards permission.
Path parameters
idintegerpathrequiredScorecard ID
Request body
namestringbodyName of the scorecard
stateenumbodyState of the scorecard Options: draft, active, retired, deleted
categoriesobject[]bodyCategories with nested criteria definitions
assignmentobjectbodyAssignment rules (optional). Omitted fields are cleared to empty (no filter).
liveCoachobjectbodyLive Quality Coach configuration. Only updated when the field is present in the payload.
createNewRevisionbooleanbodyDefault: trueIf true (default) and the scorecard is active, creates a new revision instead of overwriting.
Request Example
{
"name": "string",
"state": "draft",
"categories": [
null
],
"assignment": {
"ticketTags": [
1
],
"teams": [
1
],
"channels": [
"string"
],
"responseContexts": [
"afterCustomerMessage"
],
"excludeTicketTags": [
1
],
"excludeTeams": [
1
],
"excludeChannels": [
"string"
]
},
"liveCoach": {
"enabled": true,
"threshold": 1
},
"createNewRevision": true
}Responses
200 — Scorecard updated successfully
Response Example
{
"scorecard": {
"id": 1,
"baseId": 1,
"revision": 1,
"name": "Junior agent standard review",
"state": "active",
"categoryCount": 3,
"categories": [
{
"categoryId": 1,
"label": "string",
"order": 1,
"criteria": [
{
"id": 1,
"label": "string",
"description": "string",
"maxPoints": 1,
"scoringType": "metNotMet",
"autoGenerateByAi": true,
"assessmentPrompt": "string",
"makeOrBreakForCategory": true,
"makeOrBreakForAssessment": true
}
]
}
],
"assignment": {
"ticketTags": [
1
],
"teams": [
1
],
"channels": [
"string"
],
"responseContexts": [
"afterCustomerMessage"
]
},
"liveCoach": {
"enabled": false,
"threshold": 85
},
"createdBy": 1,
"modifiedBy": 1,
"createdAt": "2026-01-01T12:00:00Z",
"modifiedAt": "2026-01-01T12:00:00Z",
"canEdit": true
},
"message": "string"
}403 — Unauthorized
404 — Scorecard not found
500 — Internal error