Inbound call records ingested from CallRail and other call-tracking platforms. Each record includes recording URL, transcript, AI classification, and dispatch decision. Activates during pilot phase.
/api/v1/callsreadRoadmapFilter by status, classification (water | fire | mold | biohazard | sales | junk), and qualified flag.
{
"data": [
{
"id": "call_q4n8p2w7",
"tracking_number": "+17705550199",
"caller_number": "+14045550173",
"duration_seconds": 142,
"classification": "water",
"qualified": true,
"urgency": "high",
"dispatch_decision": "auto_dispatch",
"received_at": "2026-04-27T17:42:11.214Z"
}
],
"next_cursor": null
}/api/v1/calls/{id}readRoadmapReturns the full record: signed recording URL (1-hour TTL), transcript, AI classification with confidence, dispatch decision and reason.
{
"id": "call_q4n8p2w7",
"tracking_number": "+17705550199",
"caller_number": "+14045550173",
"duration_seconds": 142,
"recording_url": "https://signed.expertailabs.ai/recordings/q4n8p2w7?exp=1745783100&sig=...",
"transcript": "Caller: Hi, I have water coming through my basement ceiling, I think a pipe burst...",
"classification": {
"intent": "water",
"confidence": 0.96,
"urgency": "high",
"qualified": true
},
"dispatch_decision": {
"action": "auto_dispatch",
"reason": "in_service_radius + qualified + business_hours",
"sms_callback_sent": true,
"job_created_in_jobnimbus": "jn_117422"
},
"received_at": "2026-04-27T17:42:11.214Z"
}/api/v1/calls/statsreadRoadmapAggregated counts by classification and qualified flag. Default window: last 7 days. Override with ?window=24h | 7d | 30d | 90d.
{
"window": "7d",
"total_calls": 47,
"qualified": 18,
"junk_filtered": 12,
"by_intent": {
"water": 21,
"fire": 4,
"mold": 6,
"biohazard": 1,
"sales_pitch": 8,
"wrong_number": 4,
"other": 3
},
"median_classification_seconds": 11
}