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.
Command Description 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)
chanl calls import \
--transcript "Agent: Hello, how can I help you?\nCustomer: I have a billing question."
Call Imported
─────────────────────────────────
ID: 695d6957e21c0ceb325c394d
Status: processing
chanl calls import --transcript-file ./call-transcript.txt
chanl calls import --audio-url "https://storage.example.com/call-123.mp3"
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
chanl calls import --file call-data.json
Option Description --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
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
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
chanl calls list --page 2 --limit 50
{
"calls" : [
{
"id" : "695d6957e21c0ceb325c394d" ,
"customerName" : "Maria Chen" ,
"duration" : 225 ,
"status" : "ended" ,
"sentiment" : "neutral"
}
],
"pagination" : {
"page" : 1 ,
"limit" : 20 ,
"total" : 3
}
}
Option Description --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
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]
chanl calls get 695d6957e21c0ceb325c394d --full-transcript
chanl calls get 695d6957e21c0ceb325c394d --json
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
chanl calls delete --bulk 695d6957e21c0ceb325c394d,695d6957e21c0ceb325c394e,695d6957e21c0ceb325c394f
Deleting 3 calls...
✓ Deleted 3 calls
Option Description --bulkComma-separated IDs for bulk delete --delete-filesAlso delete associated storage files --forceSkip confirmation prompt
chanl calls import \
--transcript-file ./transcript.txt \
--customer-name "Maria Chen" \
--scorecard scorecard_abc123 \
--analysis-fields sentiment,topics,quality
chanl calls list --external-ref orderId=ORDER-55821 --json | \
jq -r '.calls[].id'
chanl calls list --start-date $( date +%Y-%m-%d ) --json | \
jq -r '.calls[].id' > today-calls.txt
for file in ./transcripts/*.txt ; do
chanl calls import --transcript-file " $file "
sleep 1
done
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
chanl calls list --end-date 2025-12-01 --json | \
jq -r '.calls[].id' | \
xargs -I {} chanl calls delete {} --force