List scored calls
Returns the team’s AI-scored calls, newest first, each with its scorecard. Read-only.
A call is scored when the team has call scoring on, the call has a transcript, it lasted at least the team’s minimum length (60 seconds by default), and, unless the team turned the check off, a person answered. Team owners and admins set these rules and the rubric under Settings → Coaching → Call scoring. Rescoring a call replaces its scorecard on the same record.
Each of the six facets is scored 0 to 5 and weighted by the team’s rubric (default weights: intro 10, discovery 25, pitch 20, tonality 15, objection handling 15, CTA 15). total_score is the weighted average scaled to 0 to 100. A team can add up to six custom facets: they count toward total_score but are not returned, so the six weights shown can add up to less than 100.
start_date and end_date bound createdAt, and min_score and max_score bound insight.total_score; both ends are included. There is no filter by call log; match call_log._id in the results. Rate limit: the heavy-reads bucket, 120 requests per minute per team (see Rate limits).
Which calls are scored
A call gets a scorecard when all of these are true:- Call scoring is on for the team.
- The call has a transcript.
- It lasted at least the team’s minimum length, 60 seconds by default.
- A person answered it, unless the team turned this check off.
_id stays the same
and updatedAt changes. AI roleplay sessions are scored too, but this endpoint does not return them.
How the score is built
Each facet gets ascore from 0 to 5. total_score scales each score to 100 and averages them by
weight_pct, over the facets whose weight is above 0, and rounds to one decimal.
total_score of 71: (0.8 × 10) + (0.7 × 25) + (0.7 × 20) + (0.8 × 15) + (0.6 × 15) + (0.7 × 15).
Teams can change the weights, turn a facet off, and add up to six custom facets:
- A facet that is turned off is still scored, but its
weight_pctis0and it does not count towardtotal_score. - Custom facets count toward
total_scorebut are not returned by the API, so the six weights you see can add up to less than 100.
weight_pct from each scorecard rather than assuming the defaults. A scorecard keeps the
weights in force when the call was scored.
Other scales: gaps.skill, gaps.playbook, metadata.asr_confidence_avg,
metadata.talk_listen_ratio_rep and the open_question_ratio fields run from 0 to 1.
Examples
start_date and end_date bound createdAt, and min_score and max_score bound
insight.total_score; both ends are included.
user_id must be a 24-character hex ID from Get the current team.
Any other value is ignored, and every rep’s scorecards come back.
From a scorecard to its call
call_log._id is the call log’s ID: pass it to Get a call log
for the full record, including the transcript. There is no filter that goes the other way, from a
call log to its scorecard; page through this list and match call_log._id.Authorizations
Team-scoped API key generated in the Salesfinity dashboard under Settings → Connections → API & Webhooks. A missing or invalid key returns HTTP 403.
Query Parameters
Page number, 1-based.
x >= 1Items per page. Default 10. Above 100 is treated as 100.
1 <= x <= 100Comma-separated field names; prefix - for descending. Default: -createdAt. Nested fields work, for example -insight.total_score for the highest scores first.
The earliest createdAt to include, as an ISO 8601 date.
The latest createdAt to include, as an ISO 8601 date.
The lowest insight.total_score to include, 0 to 100.
0 <= x <= 100The highest insight.total_score to include, 0 to 100.
0 <= x <= 100Only this rep's calls, by user _id from Get the current team. A value that is not a 24-character hex ID is ignored and every rep's calls come back.