Observability
Debug behavior without guessing. Timelines, transcripts, waveforms, and latency breakdowns for every call.
What You Get
Every call exposes detailed observability data:
Timeline
Chronological events: speech, reasoning, webhooks, MCP calls. See exactly when each component fired.
Transcript
Full conversation with timestamps and ASR confidence scores. Auto-generated summary included.
Latency Breakdown
Per-component timing: ASR, TTS, conversation agent, reasoning agent, webhooks, MCP. Find bottlenecks fast.
Waveform
Audio visualization showing speech vs. silence, interruptions, and turn-taking patterns.
Timeline
The timeline shows every event in chronological order:
// GET /v1/calls/{id}/timeline
{
"call_id": "call_abc123",
"events": [
{
"type": "call_started",
"timestamp": "2024-01-15T10:30:00.000Z"
},
{
"type": "assistant_speech",
"timestamp": "2024-01-15T10:30:01.500Z",
"duration_ms": 2100,
"content": "Hi, thanks for calling Acme Corp. How can I help you today?"
},
{
"type": "user_speech",
"timestamp": "2024-01-15T10:30:04.200Z",
"duration_ms": 1800,
"content": "I need to check on my order status"
},
{
"type": "reasoning_started",
"timestamp": "2024-01-15T10:30:06.100Z",
"mode": "webhook"
},
{
"type": "webhook_called",
"timestamp": "2024-01-15T10:30:06.150Z",
"url": "https://api.example.com/aployee",
"duration_ms": 245
},
{
"type": "reasoning_completed",
"timestamp": "2024-01-15T10:30:06.400Z",
"duration_ms": 300
},
{
"type": "assistant_speech",
"timestamp": "2024-01-15T10:30:06.800Z",
"duration_ms": 3200,
"content": "I can help with that. I see your order 12345 shipped yesterday..."
}
]
}Event Types
call_started/call_ended- Call lifecycleuser_speech/assistant_speech- Dialogue eventsreasoning_started/reasoning_completed- Async reasoningwebhook_called/mcp_tool_called- External integrationsbarge_in- User interrupted assistantsilence_detected- Extended silencetransfer_initiated- Call transfer started
Latency Breakdown
Understand where time is spent in each call:
// GET /v1/calls/{id}/latency
{
"call_id": "call_abc123",
"summary": {
"total_duration_ms": 337000,
"avg_response_latency_ms": 412,
"p95_response_latency_ms": 650
},
"breakdown": {
"asr": {
"avg_ms": 85,
"p95_ms": 120,
"calls": 45
},
"conversation_agent": {
"avg_ms": 180,
"p95_ms": 290,
"calls": 45
},
"reasoning_agent": {
"avg_ms": 320,
"p95_ms": 510,
"calls": 12
},
"webhook": {
"avg_ms": 245,
"p95_ms": 380,
"calls": 12
},
"tts": {
"avg_ms": 95,
"p95_ms": 140,
"calls": 38
}
}
}Components Measured
asr- Speech-to-text processing timeconversation_agent- Fast response generationreasoning_agent- Async reasoning (when used)webhook- Your webhook response timemcp- MCP tool call durationtts- Text-to-speech synthesis
Transcript
Get the full conversation with metadata:
// GET /v1/calls/{id}/transcript
{
"call_id": "call_abc123",
"transcript": [
{
"role": "assistant",
"content": "Hi, thanks for calling Acme Corp. How can I help you today?",
"timestamp": "2024-01-15T10:30:01.500Z",
"confidence": 1.0
},
{
"role": "user",
"content": "I need to check on my order status",
"timestamp": "2024-01-15T10:30:04.200Z",
"confidence": 0.95
},
{
"role": "assistant",
"content": "I can help with that. I see your order 12345 shipped yesterday via UPS. Would you like the tracking number?",
"timestamp": "2024-01-15T10:30:06.800Z",
"confidence": 1.0
}
],
"summary": "Customer inquired about order status. Order 12345 confirmed shipped."
}Dashboard
The Aployee dashboard provides visual tools for each call:
- Waveform View: Audio visualization with speech segments, silences, and interruptions highlighted
- Timeline View: Scrollable event timeline with expandable details for each event
- Latency Charts: Per-call and aggregate latency visualizations
- Transcript Playback: Read transcript synced with audio playback
Debugging Tips
Slow Responses?
Check latency breakdown. If webhook is slow, optimize your backend. If reasoning_agent is slow, consider using builtin mode for simpler queries.
Wrong Transcriptions?
Check ASR confidence scores. Low scores indicate audio quality issues. Consider adjusting silence thresholds.
Awkward Timing?
Look at the waveform for barge-ins and silences. Adjust silence_timeout_ms if the assistant waits too long.
Unexpected Behavior?
Check the timeline for reasoning events. Your webhook or MCP tool may be returning unexpected data.
Event Webhooks
Get real-time notifications for call events:
call.started- Call connectedcall.ended- Call completed with summarycall.transferred- Call handed offcall.failed- Call failed with error
Configure event webhooks in your organization settings to integrate with your CRM, analytics, or alerting systems.
Next steps
- • Start making calls
- • Configure assistant settings
- • See full API reference