Submit quality review
POST/omnichannel/conversations/{id}/quality-review
Records a supervisor quality-review scoring for a conversation, updating the conversation's quality_status. Use from the supervisor dashboard when manually reviewing flagged conversations. Scores from 0 to 100; status must reflect the overall assessment category.
Request
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | The numeric ID of the conversation to review. |
Request body
Content type application/json (required).
| Field | Type | Required | Description |
|---|---|---|---|
score | integer | Yes | Numeric quality score from 0 (very poor) to 100 (excellent). Minimum: 0 · Maximum: 100 |
status | string | Yes | Overall quality classification resulting from this review. One of: |
response_sla_met | boolean | No | Whether the first-response SLA target was met. |
resolution_quality | string | No | Supervisor's assessment of resolution quality. One of: |
findings_json | string | No | JSON array of structured findings (e.g. tone issues, policy breaches). |
notes | string | No | Free-text coaching notes for the assigned agent. Max length: 2000 |
Example
{
"score": 78,
"status": "watch",
"response_sla_met": true,
"resolution_quality": "adequate",
"findings_json": "[{\"type\":\"tone\",\"note\":\"Agent was brusque in message 3\"}]",
"notes": "Needs coaching on empathetic phrasing."
}
Responses
200 Quality review saved and conversation quality_status updated
422 Validation failed — score must be 0-100, status must be healthy/watch/at_risk
Example request
curl -X POST "https://{tenant}.faciotech.net/api/v1/omnichannel/conversations/{id}/quality-review" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"score": 78, "status": "watch", "response_sla_met": true, "resolution_quality": "adequate", "findings_json": "[{\"type\":\"tone\",\"note\":\"Agent was brusque in message 3\"}]", "notes": "Needs coaching on empathetic phrasing."}'