For the complete documentation index, see llms.txt. This page is also available as Markdown.

Call Trace Analysis

Deep call understanding with emotional arcs, key decision moments, coaching recommendations, and signal-response alignment.

Call trace analysis explains why a call unfolded as it did through emotional dynamics, key decisions, coaching recommendations, counterfactuals, and interaction patterns. Call intelligence provides operational scores; trace analysis provides the deeper narrative.

Analysis starts on demand. The first detail request checks for a stored result and can schedule a best-effort analysis run when the call exists but no result is available. Poll while the status is pending. unavailable means the analytical read was temporarily unavailable. The list operation returns stored analyses and does not start missing analyses.

Both operations require viewer+ access and are workspace-scoped.

List Trace Analyses

List trace analyses

get

Paginated list of trace analyses for the workspace. Use this instead of paginating /calls and fetching traces one-by-one (N+1).

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
outcomestring · enum · nullableOptional

Filter by overall outcome

Possible values:
min_computed_atstring · date-time · nullableOptional

Only include analyses computed at or after this time

max_computed_atstring · date-time · nullableOptional

Only include analyses computed strictly before this time

limitinteger · max: 100Optional

Max rows per page (1-100)

Default: 20
continuation_tokenintegerOptional

Offset from the previous page (0 for the first page)

Default: 0
Responses
200

Successful Response

application/json

Paginated list response for trace analyses.

has_morebooleanOptional

Whether more rows are available beyond this page

Default: false
continuation_tokeninteger · nullableOptional

Token to pass as continuation_token for the next page (None when exhausted)

get/v1/{workspace_id}/calls/traces
GET /v1/{workspace_id}/calls/traces HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "items": [
    {
      "call_sid": "text",
      "call_entity_id": "123e4567-e89b-12d3-a456-426614174000",
      "outcome": "succeeded",
      "summary": "text",
      "emotional_arc": "text",
      "key_moment_count": 0,
      "computed_at": "2026-01-01T00:00:00.000Z"
    }
  ],
  "has_more": false,
  "continuation_token": 1
}

Get Trace Analysis

The call identifier can be a call SID or call entity ID.

Deep call understanding

get

Audio-native intelligence for a completed call: emotional arc, key decision moments with causal attribution, counterfactual reasoning, and actionable coaching. Produced by the Amigo intelligence pipeline from the raw call recording.

Latency: 500ms-2s (reads from analytics warehouse, not transactional store).

Status values: ready = analysis complete, pending = analysis started on first request (typically ready in 2-5 minutes; poll again), unavailable = no recording or analysis transiently unavailable (retry later).

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
call_idstring · min: 1 · max: 128RequiredPattern: ^[A-Za-z0-9][A-Za-z0-9_-]*$
Responses
200

Analysis ready or status indicating progress

application/json

Deep call understanding produced by the Amigo intelligence pipeline.

Analyzes the raw call audio to identify emotional dynamics, key decision moments, and actionable coaching - understanding that exceeds what either participant had during the call itself.

Latency note: This endpoint reads from the analytics data warehouse. Expect 500ms-2s response time, not sub-10ms like transactional endpoints.

call_sidstring · min: 1 · max: 128Required

Call identifier (Twilio call SID or direct session ID)

statusstring · enumOptional

ready: analysis complete. pending: call completed, analysis processing. unavailable: analysis not possible for this call.

Default: readyPossible values:
summarystring · min: 1 · max: 2000 · nullableOptional

2-3 sentence narrative of the call - the emotional story, not just what happened

outcomestring · enum · nullableOptional

Overall call outcome

Possible values:
key_moment_countintegerOptional

Number of key decision moments identified (typically 3-8)

Default: 0
emotional_arcstring · min: 1 · max: 2000 · nullableOptional

Caller emotional trajectory as a readable sequence (e.g. 'curious -> confused -> frustrated -> relieved')

deep_understandingstring · min: 1 · max: 10000 · nullableOptional

Synthesis of why this call went the way it did - combining audio perception with execution data

missed_opportunitiesstring[] · max: 50Optional

Moments where the agent could have taken a better action

emergent_patternsstring[] · max: 50Optional

Cross-call or cross-turn patterns detected by the analysis

call_entity_idstring · uuid · nullableOptional

UUID string of the associated world.entities_synced call row (if resolved)

computed_atstring · date-time · nullableOptional

When the analysis was produced by the pipeline

get/v1/{workspace_id}/calls/{call_id}/trace-analysis
GET /v1/{workspace_id}/calls/{call_id}/trace-analysis HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "call_sid": "CA493e4610386f87f43b02102068eb6ad3",
  "deep_understanding": "The call failed not because of agent behavior but because of environmental factors - the caller was pulled into a side conversation that the agent could not compete with.",
  "emotional_arc": "neutral -> cooperative -> distracted -> disengaged",
  "key_moment_count": 2,
  "outcome": "abandoned",
  "status": "ready",
  "summary": "The caller initially cooperated with scheduling but became distracted by a nearby conversation, ultimately abandoning the call without booking."
}

Last updated

Was this helpful?