Skip to content

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

NameTypeRequiredDescription
idintegerYes

The numeric ID of the conversation to review.

Request body

Content type application/json (required).

FieldTypeRequiredDescription
scoreintegerYes

Numeric quality score from 0 (very poor) to 100 (excellent).

Minimum: 0 · Maximum: 100

statusstringYes

Overall quality classification resulting from this review.

One of: "healthy", "watch", "at_risk"

response_sla_metbooleanNo

Whether the first-response SLA target was met.

resolution_qualitystringNo

Supervisor's assessment of resolution quality.

One of: "excellent", "adequate", "poor"

findings_jsonstringNo

JSON array of structured findings (e.g. tone issues, policy breaches).

notesstringNo

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."}'
Loading