Chanl

Calls Commands

Import, list, get, and delete calls from the CLI

Manage the full lifecycle of call data -- import transcripts and audio, list and filter calls, get details with analysis, and clean up old records.

Commands

CommandDescription
chanl calls importImport a call from transcript, audio, or file
chanl calls listList calls with filters and pagination
chanl calls get <id>Get call details, analysis, and transcript
chanl calls delete <id>Delete a call (single or bulk)

Import a Call

From transcript string

chanl calls import \
  --transcript "Agent: Hello, how can I help you?\nCustomer: I have a billing question."
Call Imported
─────────────────────────────────
ID:      695d6957e21c0ceb325c394d
Status:  processing

From transcript file

chanl calls import --transcript-file ./call-transcript.txt

From audio URL

chanl calls import --audio-url "https://storage.example.com/call-123.mp3"

With metadata and analysis

chanl calls import \
  --transcript-file ./transcript.txt \
  --customer-name "Maria Chen" \
  --customer-phone "+1234567890" \
  --agent-name "Sarah" \
  --direction inbound \
  --external-ref orderId=ORDER-55821 \
  --external-ref customerId=cust_abc123 \
  --analysis-fields sentiment,topics,quality \
  --scorecard scorecard_abc123

From JSON file

chanl calls import --file call-data.json

Import options

OptionDescription
--transcriptTranscript text string
--transcript-filePath to transcript file
--audio-urlURL to audio recording
--audio-idReference to uploaded audio
--fileJSON file with all import data
--customer-nameCustomer's name
--customer-phoneCustomer's phone number
--agent-nameAgent's name
--directioninbound, outbound, or web
--external-refExternal reference key=value (repeatable)
--analysis-fieldsComma-separated: sentiment, topics, quality, keywords, followups, predictions, metrics
--scorecardScorecard ID to auto-evaluate
--webhook-urlOverride webhook URL

List Calls

chanl calls list
Calls
──────────────────────────────────────────────────────────────
ID                        Customer      Duration  Status  Sentiment
695d6957e21c0ceb325c394d  Maria Chen    3m 45s    ended   neutral
695d6957e21c0ceb325c394e  Jane Smith    2m 30s    ended   positive
695d6957e21c0ceb325c394f  Bob Wilson    1m 15s    ended   negative

With filters

chanl calls list --status ended --direction inbound
chanl calls list --customer-name "Maria"
chanl calls list --start-date 2026-01-01 --end-date 2026-01-31
chanl calls list --external-ref orderId=ORDER-55821

With pagination

chanl calls list --page 2 --limit 50

JSON output

chanl calls list --json
{
  "calls": [
    {
      "id": "695d6957e21c0ceb325c394d",
      "customerName": "Maria Chen",
      "duration": 225,
      "status": "ended",
      "sentiment": "neutral"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 3
  }
}

List options

OptionDescription
--statusFilter: queued, processing, ended, failed
--directionFilter: inbound, outbound, web
--customer-nameFilter by customer name (partial match)
--start-dateFilter by start date (YYYY-MM-DD)
--end-dateFilter by end date (YYYY-MM-DD)
--external-refFilter by external reference key=value (repeatable)
--pagePage number (default: 1)
--limitItems per page (default: 20)
--jsonOutput as JSON

Get a Call

chanl calls get 695d6957e21c0ceb325c394d
Call: 695d6957e21c0ceb325c394d
────────────────────────────────────
Customer:  Maria Chen (+1234567890)
Agent:     Sarah
Duration:  3m 45s
Status:    ended
Direction: inbound

Analysis:
  Sentiment:       negative → neutral (improving)
  Topics:          damaged item, refund request, shipping
  Keywords:        laptop, damaged, replacement
  Quality Score:   78%

External References:
  orderId:    ORDER-55821
  customerId: cust_abc123

Transcript Preview:
  Agent: Thank you for calling Acme Support...
  Customer: I received a damaged laptop...
  [Use --full-transcript to see complete transcript]

Full transcript

chanl calls get 695d6957e21c0ceb325c394d --full-transcript

JSON output

chanl calls get 695d6957e21c0ceb325c394d --json

Delete Calls

Single delete

chanl calls delete 695d6957e21c0ceb325c394d
Are you sure you want to delete call 695d6957e21c0ceb325c394d? (y/N) y
✓ Deleted call: 695d6957e21c0ceb325c394d

Skip confirmation:

chanl calls delete 695d6957e21c0ceb325c394d --force

Bulk delete

chanl calls delete --bulk 695d6957e21c0ceb325c394d,695d6957e21c0ceb325c394e,695d6957e21c0ceb325c394f
Deleting 3 calls...
✓ Deleted 3 calls

Delete options

OptionDescription
--bulkComma-separated IDs for bulk delete
--delete-filesAlso delete associated storage files
--forceSkip confirmation prompt

Scripting Examples

Import and evaluate in one step

chanl calls import \
  --transcript-file ./transcript.txt \
  --customer-name "Maria Chen" \
  --scorecard scorecard_abc123 \
  --analysis-fields sentiment,topics,quality

Find calls by external reference

chanl calls list --external-ref orderId=ORDER-55821 --json | \
  jq -r '.calls[].id'

Export today's call IDs

chanl calls list --start-date $(date +%Y-%m-%d) --json | \
  jq -r '.calls[].id' > today-calls.txt

Batch import from directory

for file in ./transcripts/*.txt; do
  chanl calls import --transcript-file "$file"
  sleep 1
done

Export transcripts

chanl calls list --json | \
  jq -r '.calls[].id' | \
  while read id; do
    chanl calls get "$id" --full-transcript --json | \
      jq -r '.transcript' > "${id}.txt"
  done

Clean up old calls

chanl calls list --end-date 2025-12-01 --json | \
  jq -r '.calls[].id' | \
  xargs -I {} chanl calls delete {} --force

Analyze Calls

Full user story: importing and analyzing calls

Evaluate Quality

Score calls with scorecards

SDK: Calls

Manage calls programmatically with the SDK

API: Calls

REST API for call operations

On this page