Skip to main content

Quality API

Quality endpoints exposed by the Devotel CPaaS API Base path: /api/v1/quality Endpoint count: 8

List calibration sessions

GET /api/v1/quality/calibrations
List calibration sessions with optional status / call filters. Each row carries session-level submission counts only — never any individual reviewer’s score. Reviewer scope (owner / admin / supervisor).
string (enum: open|closed)
string
integer

Get a calibration session

GET /api/v1/quality/calibrations/{id}
Session detail for the blind-scoring view — roster, submission counts, and the caller’s OWN submitted score only. Never returns another reviewer’s or the AI’s scores; those are revealed by the report once the caller submits. Reviewer scope (owner / admin / supervisor).
string
required

Get the calibration agreement report

GET /api/v1/quality/calibrations/{id}/report
The agreement report — per-criterion variance, overall agreement, each reviewer’s delta from the group consensus, and the AI auto-score’s drift. BLIND-GATED: an invited reviewer who has not yet submitted their own score receives 403. The numeric report is meaningful only once at least two human reviewers have submitted. Reviewer scope (owner / admin / supervisor).
string
required

Self-scope gamification card — the caller’s own points, badges and anonymised rank

GET /api/v1/quality/gamification/me
Any authenticated agent fetches THEIR OWN gamification slice (points, badges, rank, totalAgents) for the requested window. Reviewer-scope roles (owner/admin/supervisor/superAdmin) may pass an explicit agent_id; a non-reviewer requesting another agent returns 403. The board is computed with the DEFAULT ruleset so the agent’s rank always agrees with the supervisor leaderboard, and only the caller’s own slice is returned (no other agent identity is leaked).
string (enum: day|week|month)
string

Org-wide quality-management summary

GET /api/v1/quality/summary
Cross-channel quality-management rollup for supervisors and admins. Aggregates LLM-judged conversation outcomes across inbox and voice into one org-wide view, returning overall totals (conversations scored, pass rate, average judge confidence), a per-channel breakdown, the top rubrics by evaluation volume with their pass rates, and the most recent low-confidence failures for triage. Use it to power a Quality Management overview page instead of navigating agent-by-agent. Read-only; requires an owner, admin, or supervisor role.
string
Look-back window in days over each outcome’s evaluation time (1-90). Defaults to 30, capped at 90; an out-of-range or non-numeric value falls back to 30.
string
Restrict the rollup to a single conversation channel - inbox, voice, or all for both. Defaults to all; any unrecognised value falls back to all.

Create a calibration session

POST /api/v1/quality/calibrations
Open a QM calibration session pinned to one call and one evaluation form, and invite a roster of reviewers. The creator is always added to the roster. If the call already has an AI auto-scored evaluation against the same form, that score is copied in read-only as a drift baseline. Reviewer scope (owner / admin / supervisor).
string
required
Evaluation form to calibrate against (must be active).
string
required
Call the roster will score.
string
Optional human-readable session title.
string[]
Invited reviewer ids. De-duplicated server-side; the creator is added implicitly.

Close a calibration session

POST /api/v1/quality/calibrations/{id}/close
Close an open calibration session. Idempotency-guarded: closing an already-closed session returns 409. Reviewer scope (owner / admin / supervisor).
string
required

Submit a blind calibration score

POST /api/v1/quality/calibrations/{id}/scores
Submit your blind score for a calibration session. One submission per reviewer — a second attempt returns 409. total_score is re-derived server-side from the form weights; clients cannot supply it. The session must be open and you must be an invited reviewer. Reviewer scope (owner / admin / supervisor).
string
required
object
required
Map of criterion_id to raw score (0-100). The server re-derives the weighted total against the form definition.