Skip to main content
GET
List scored calls

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.
Team owners and admins change these rules, the facet weights and the scoring guidance under Settings → Coaching → Call scoring. Rescoring a call replaces its scorecard: _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 a score 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. With the default weights, facet scores of 4, 3.5, 3.5, 4, 3 and 3.5 (in table order) give a 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_pct is 0 and it does not count toward total_score.
  • Custom facets count toward total_score but are not returned by the API, so the six weights you see can add up to less than 100.
Read 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

x-api-key
string
header
required

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
integer
default:1

Page number, 1-based.

Required range: x >= 1
limit
integer
default:10

Items per page. Default 10. Above 100 is treated as 100.

Required range: 1 <= x <= 100
sort
string

Comma-separated field names; prefix - for descending. Default: -createdAt. Nested fields work, for example -insight.total_score for the highest scores first.

start_date
string<date-time>

The earliest createdAt to include, as an ISO 8601 date.

end_date
string<date-time>

The latest createdAt to include, as an ISO 8601 date.

min_score
number

The lowest insight.total_score to include, 0 to 100.

Required range: 0 <= x <= 100
max_score
number

The highest insight.total_score to include, 0 to 100.

Required range: 0 <= x <= 100
user_id
string

Only 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.

Response

One page of scored calls.

data
object[]
pagination
object