Read CSAT averages and distribution
Satisfaction scores for the workspace over one window, overall and per agent.
/v1/csat/aggregateViewer- Operation id
- csat_aggregate
- Access
- Any workspace role can call this.
/v1/csat/aggregateSatisfaction scores for the workspace over one window, overall and per agent.
since_days is 1 to 365 and defaults to 30. It counts back from now, so
two calls a day apart cover different windows.
avg_score is null when nothing was scored in the window rather than 0,
because no responses and a bad average are different facts.
distribution counts responses per score, keyed by the score as a string.
A per_agent row with a null assignee_id is the scores for tickets that
had no assignee. It is kept rather than dropped, so the rows still add up
to the overall count.
Tenancy: the request is scoped to one workspace, and the credential presented is what selects it. A caller with no membership in that workspace is refused with 404, which is indistinguishable from a workspace that does not exist.
Authorisation: any workspace role, including viewer. Reads are open to every member.
Access: Authorization: Bearer carrying either a realm access token or an API key. A key must hold the helpdesk-ingress:read scope, and the workspace role of the person who owns it must meet the floor above.
A realm-issued access token, presented as Authorization: Bearer <token>. It acts as the person who signed in, and every operation resolves their workspace role live from the membership record.
In: header
Query Parameters
1 <= value <= 36530Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/v1/csat/aggregate"{ "since_days": 30, "overall": { "responses": 148, "avg_score": 4.31, "distribution": { "1": 5, "2": 7, "3": 14, "4": 34, "5": 88 } }, "per_agent": [ { "assignee_id": "3fe98b76-2409-5003-b75a-93e56b450433", "assignee_name": "Dana Osei", "responses": 61, "avg_score": 4.52 }, { "responses": 9, "avg_score": 3.78 } ]}