Set up comprehensive observability for Retell AI integrations with metrics, traces, and alerts. Use when implementing monitoring for Retell AI operations, setting up dashboards, or configuring alerting for Retell AI integration health. Trigger with phrases like "retellai monitoring", "retellai metrics", "retellai observability", "monitor retellai", "retellai alerts", "retellai tracing".
Scanned 9/10/2026
Install to Claude Code
npx -y skills add micsapp/micstec-skills --skill retellai-observability --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Retellai Observability?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/micsapp-retellai-observability)More formats (shields.io, HTML) on the badges page.
---
name: retellai-observability
description: |
Set up comprehensive observability for Retell AI integrations with metrics, traces, and alerts.
Use when implementing monitoring for Retell AI operations, setting up dashboards,
or configuring alerting for Retell AI integration health.
Trigger with phrases like "retellai monitoring", "retellai metrics",
"retellai observability", "monitor retellai", "retellai alerts", "retellai tracing".
allowed-tools: Read, Write, Edit
version: 1.0.0
license: MIT
author: Jeremy Longshore <jeremy@intentsolutions.io>
compatible-with: claude-code, codex, openclaw
---
# Retell AI Observability
## Overview
Monitor Retell AI voice agent performance, call quality, and costs. Key signals include call completion rate (successful conversations vs dropped/failed calls), average call duration, latency between user speech and agent response (conversational latency), per-minute cost tracking, and agent-level success metrics (did the voice agent accomplish its goal).
## Prerequisites
- Retell AI account with active voice agents
- API access for call data queries
- Webhook endpoint for real-time call events
## Instructions
### Step 1: Monitor Call Quality via Webhooks
```typescript
// retell-webhook-handler.ts
app.post('/webhooks/retell', (req, res) => {
const { call_id, agent_id, status, duration_seconds, cost_usd, disconnect_reason } = req.body;
emitCounter('retell_calls_total', 1, { agent: agent_id, status });
emitHistogram('retell_call_duration_sec', duration_seconds, { agent: agent_id });
emitCounter('retell_cost_usd', cost_usd, { agent: agent_id });
if (disconnect_reason === 'agent_error' || disconnect_reason === 'system_error') {
emitCounter('retell_call_errors_total', 1, { agent: agent_id, reason: disconnect_reason });
}
res.sendStatus(200); # HTTP 200 OK
});
```
### Step 2: Track Conversational Latency
```bash
set -euo pipefail
# Query recent calls for response latency metrics
curl "https://api.retellai.com/v1/calls?limit=20&sort=-created_at" \
-H "Authorization: Bearer $RETELL_API_KEY" | \
jq '.[] | {
call_id, agent_name, duration_sec: .duration,
avg_response_latency_ms: .avg_agent_response_latency_ms,
cost_usd: .cost,
disconnect_reason
}'
```
### Step 3: Monitor Per-Agent Performance
```typescript
// Track which agents are performing well vs poorly
async function agentPerformanceReport() {
const agents = await retellApi.listAgents();
for (const agent of agents) {
const calls = await retellApi.listCalls({ agent_id: agent.agent_id, limit: 100 });
const completed = calls.filter(c => c.status === 'completed').length;
const avgDuration = calls.reduce((s, c) => s + c.duration, 0) / calls.length;
const totalCost = calls.reduce((s, c) => s + c.cost, 0);
emitGauge('retell_agent_completion_rate', completed / calls.length * 100, { agent: agent.agent_name });
emitGauge('retell_agent_avg_duration_sec', avgDuration, { agent: agent.agent_name });
emitGauge('retell_agent_total_cost_usd', totalCost, { agent: agent.agent_name });
}
}
```
### Step 4: Alert on Voice Quality Issues
```yaml
groups:
- name: retell
rules:
- alert: RetellHighDropRate
expr: rate(retell_calls_total{status="failed"}[1h]) / rate(retell_calls_total[1h]) > 0.1
annotations: { summary: "Retell call failure rate exceeds 10%" }
- alert: RetellHighLatency
expr: histogram_quantile(0.95, rate(retell_response_latency_ms_bucket[1h])) > 2000 # 2000: 2 seconds in ms
annotations: { summary: "Retell agent response latency P95 exceeds 2 seconds" }
- alert: RetellCostSpike
expr: increase(retell_cost_usd[1h]) > 50
annotations: { summary: "Retell voice costs exceed $50/hour" }
- alert: RetellShortCalls
expr: histogram_quantile(0.25, rate(retell_call_duration_sec_bucket[1h])) < 10
annotations: { summary: "25% of calls ending in <10 seconds (agent issue?)" }
```
### Step 5: Dashboard Panels
Track: call volume by agent, call completion rate (pie chart), duration distribution, per-minute cost trend, conversational latency p50/p95, disconnect reasons breakdown, and daily cost by agent. Short calls (<10s) often indicate agent prompt issues where the bot fails to engage.
## Error Handling
| Issue | Cause | Solution |
|-------|-------|----------|
| High call drop rate | Agent prompt causing hang-ups | Review and simplify agent greeting prompt |
| Latency >2 seconds | LLM response slow | Use faster model or reduce prompt complexity |
| Unexpected high costs | Long average call duration | Add conversation time limits in agent config |
| No webhook events | Endpoint unreachable | Verify webhook URL and SSL certificate |
## Examples
**Basic usage**: Apply retellai observability to a standard project setup with default configuration options.
**Advanced scenario**: Customize retellai observability for production environments with multiple constraints and team-specific requirements.
## Output
- Configuration files or code changes applied to the project
- Validation report confirming correct implementation
- Summary of changes made and their rationale
## Resources
- Official monitoring documentation
- Community best practices and patterns
- Related skills in this plugin packIs this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!