Chanl

Scorecards Commands

Create, manage, and evaluate scorecards from the CLI

Full command reference for scorecards -- create rubrics, add categories and criteria, evaluate calls, and view results.

Commands

CommandDescription
chanl scorecards listList all scorecards
chanl scorecards get <id>Get scorecard details with categories and criteria
chanl scorecards createCreate a new scorecard
chanl scorecards update <id>Update a scorecard
chanl scorecards delete <id>Delete a scorecard
chanl scorecards categories <id> [action]Manage categories
chanl scorecards criteria <id> [action]Manage criteria
chanl scorecards evaluate <call-id>Evaluate a call
chanl scorecards results <call-id>View evaluation results

List Scorecards

chanl scorecards list
Scorecards
──────────────────────────────────────────────────────────────
ID                  Name                    Status   Categories
scorecard_abc123    Customer Service QA     active   3
scorecard_def456    Compliance Check        active   2
scorecard_ghi789    Sales Performance       draft    4
OptionDescription
--statusFilter: active, draft
--jsonOutput as JSON

Get a Scorecard

chanl scorecards get scorecard_abc123
Scorecard: Customer Service QA
────────────────────────────────
ID:        scorecard_abc123
Status:    active
Threshold: 75%
Version:   2

Categories:
  Communication (40%)
    ✓ Proper Greeting (prompt)
    ✓ Clear Explanation (prompt)
    ✓ Active Listening (prompt)

  Resolution (35%)
    ✓ Issue Identified (prompt)
    ✓ Solution Provided (prompt)

  Compliance (25%)
    ✓ Recording Disclosure (keyword)
    ✓ Verification Complete (prompt)

Create a Scorecard

chanl scorecards create \
  --name "Customer Service QA" \
  --description "Evaluates customer service interactions" \
  --threshold 75 \
  --status draft
✓ Created scorecard: scorecard_abc123

From a JSON file:

chanl scorecards create --file scorecard.json

scorecard.json:

{
  "name": "Customer Service QA",
  "description": "Evaluates customer service interactions",
  "status": "draft",
  "passingThreshold": 75
}

Update a Scorecard

chanl scorecards update scorecard_abc123 \
  --name "Updated Scorecard Name" \
  --threshold 80 \
  --status active
✓ Updated scorecard: scorecard_abc123

From file:

chanl scorecards update scorecard_abc123 --file updates.json

Delete a Scorecard

chanl scorecards delete scorecard_abc123
Are you sure you want to delete Customer Service QA? (y/N) y
✓ Deleted scorecard: scorecard_abc123
OptionDescription
--forceSkip confirmation prompt

Manage Categories

List categories

chanl scorecards categories scorecard_abc123

Add a category

chanl scorecards categories scorecard_abc123 add \
  --name "Communication" \
  --description "Evaluates communication skills" \
  --weight 40
✓ Added category: cat_comm01

Update a category

chanl scorecards categories scorecard_abc123 update cat_comm01 \
  --name "Updated Name" \
  --weight 35

Delete a category

chanl scorecards categories scorecard_abc123 delete cat_comm01

Manage Criteria

List criteria

chanl scorecards criteria scorecard_abc123

Add prompt criteria (AI-evaluated)

chanl scorecards criteria scorecard_abc123 add \
  --category cat_comm01 \
  --key proper_greeting \
  --name "Proper Greeting" \
  --type prompt \
  --description "Agent greeted customer professionally with name and company"
✓ Added criterion: proper_greeting

Add keyword criteria (pattern matching)

chanl scorecards criteria scorecard_abc123 add \
  --category cat_comp01 \
  --key recording_disclosure \
  --name "Recording Disclosure" \
  --type keyword \
  --keywords "this call may be recorded,call is being recorded" \
  --match-type must_contain

Criteria types

TypeDescriptionKey Options
promptAI evaluates the transcript--description "..."
keywordMatches specific phrases--keywords "...,..." --match-type must_contain|must_not_contain
response_timeMeasures response latency--max-ms 3000
talk_timeSpeaking duration ratio--min-percent 30 --max-percent 70
silenceDetects excessive silence--max-silence-ms 5000 --max-count 3
interruptionsDetects speaking overlap--max-count 2

Evaluate a Call

chanl scorecards evaluate 695d6957e21c0ceb325c394d \
  --scorecard scorecard_abc123
Evaluation Complete
───────────────────────────────
Call:      695d6957e21c0ceb325c394d
Scorecard: Customer Service QA
Score:     85%
Status:    PASSED ✓

Category Scores:
  Communication:  90%
  Resolution:     80%
  Compliance:     85%
OptionDescription
--scorecard <id>Scorecard to evaluate against (required)
--forceRe-evaluate even if results exist
--jsonOutput as JSON

View Results

chanl scorecards results 695d6957e21c0ceb325c394d
Evaluation Results: 695d6957e21c0ceb325c394d
─────────────────────────────────────────────

Customer Service QA (85% - PASSED)
  Communication (90%)
    ✓ Proper Greeting: 100%
      "Thank you for calling Acme Corp, this is Sarah speaking."
    ✓ Clear Explanation: 80%
      "Agent explained the refund process clearly."

  Resolution (80%)
    ✓ Issue Identified: 90%
    ✗ Solution Provided: 70%
      Suggestion: Could have offered expedited processing.

  Compliance (85%)
    ✓ Recording Disclosure: 100%
      Matched: "this call may be recorded"
OptionDescription
--scorecard <id>Filter results by scorecard
--jsonOutput as JSON

JSON output

chanl scorecards results 695d6957e21c0ceb325c394d --json
{
  "results": [
    {
      "scorecardId": "scorecard_abc123",
      "scorecardName": "Customer Service QA",
      "score": 85,
      "passed": true,
      "criteriaResults": [
        {
          "key": "proper_greeting",
          "name": "Proper Greeting",
          "score": 100,
          "passed": true,
          "evidence": "Thank you for calling Acme Corp, this is Sarah speaking."
        }
      ]
    }
  ]
}

Batch Evaluate

chanl calls list --status ended --limit 100 --json | \
  jq -r '.calls[].id' | \
  xargs -I {} chanl scorecards evaluate {} --scorecard scorecard_abc123

Evaluate Quality

Full user story: building and using scorecards

Calls Commands

Import calls to evaluate

SDK: Scorecards

Manage scorecards programmatically

API: Scorecards

REST API for scorecard operations

On this page