retellai-webhooks-events
Sets up webhook endpoints and event handling logic for tracking call lifecycle, transcriptions, and agent analytics in Retell AI.
Install
mkdir -p .claude/skills/retellai-webhooks-events && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/4769" && unzip -o skill.zip -d .claude/skills/retellai-webhooks-events && rm skill.zipInstalls to .claude/skills/retellai-webhooks-events
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Retell AI webhooks events \u2014 AI voice agent and phone call automation.\n\Key capabilities
- →Configure webhook URLs for agents
- →Handle call lifecycle events
- →Save transcripts upon call completion
- →Process function calls during conversations
How it works
The skill sets up an Express endpoint to receive and parse JSON payloads from Retell AI, using a switch statement to handle different event types.
Inputs & outputs
When to use retellai-webhooks-events
- →Implement call lifecycle webhooks
- →Handle transcript saving and processing
- →Verify webhook event signatures
- →Monitor agent call analytics
About this skill
Retell AI Webhooks Events
Overview
Handle Retell AI webhook events for call lifecycle, transcripts, and function execution.
Prerequisites
- HTTPS webhook endpoint
- Agent configured with webhook URL
Instructions
Step 1: Configure Webhook URL
// Set webhook URL in agent configuration
await retell.agent.update(agentId, {
webhook_url: 'https://your-app.com/webhooks/retell',
});
Step 2: Webhook Endpoint
import express from 'express';
const app = express();
app.post('/webhooks/retell', express.json(), async (req, res) => {
const { event, call } = req.body;
switch (event) {
case 'call_started':
console.log(`Call started: ${call.call_id} from ${call.from_number}`);
break;
case 'call_ended':
console.log(`Call ended: ${call.call_id}`);
console.log(` Duration: ${call.duration_ms}ms`);
console.log(` Status: ${call.call_status}`);
if (call.transcript) {
await saveTranscript(call.call_id, call.transcript);
}
break;
case 'call_analyzed':
console.log(`Analysis ready: ${call.call_id}`);
console.log(` Summary: ${call.call_analysis?.call_summary}`);
break;
default:
console.log(`Unhandled event: ${event}`);
}
res.status(200).json({ received: true });
});
Step 3: Handle Function Calls During Conversation
// When agent triggers a function, Retell calls your URL
app.post('/functions/book-appointment', express.json(), async (req, res) => {
const { patient_name, phone, date, time } = req.body.args;
// Process the booking
const booking = await bookAppointment(patient_name, phone, date, time);
// Return response for agent to speak
res.json({
result: `Appointment booked for ${patient_name} on ${date} at ${time}. Confirmation number: ${booking.id}`,
});
});
Output
- Webhook handling for call lifecycle events
- Transcript storage on call completion
- Function execution during live calls
Error Handling
| Issue | Cause | Solution |
|---|---|---|
| No webhook events | URL not configured | Set webhook_url on agent |
| Function timeout | Slow backend | Respond within 5 seconds |
| Missing transcript | Short call | Transcript only for calls > 5 seconds |
Resources
Next Steps
Common errors: retellai-common-errors
Prerequisites
Limitations
- →Function execution must respond within 5 seconds
- →Transcripts are only available for calls longer than 5 seconds
How it compares
It provides a structured event-handling pattern for call lifecycle and function execution instead of manual endpoint implementation.
Compared to similar skills
retellai-webhooks-events side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| retellai-webhooks-events (this skill) | 1 | 27d | Review | Intermediate |
| sentry-install-auth | 0 | 27d | Review | Beginner |
| maintainx-observability | 0 | 27d | Review | Intermediate |
| perplexity-observability | 1 | 27d | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by jeremylongshore
View all by jeremylongshore →You might also like
sentry-install-auth
jeremylongshore
Install and configure Sentry SDK authentication. Use when setting up a new Sentry integration, configuring DSN, or initializing Sentry in your project. Trigger with phrases like "install sentry", "setup sentry", "sentry auth", "configure sentry DSN".
maintainx-observability
jeremylongshore
Implement comprehensive observability for MaintainX integrations. Use when setting up monitoring, logging, tracing, and alerting for MaintainX API integrations. Trigger with phrases like "maintainx monitoring", "maintainx logging", "maintainx metrics", "maintainx observability", "maintainx alerts".
perplexity-observability
jeremylongshore
Set up comprehensive observability for Perplexity integrations with metrics, traces, and alerts. Use when implementing monitoring for Perplexity operations, setting up dashboards, or configuring alerting for Perplexity integration health. Trigger with phrases like "perplexity monitoring", "perplexity metrics", "perplexity observability", "monitor perplexity", "perplexity alerts", "perplexity tracing".
documenso-observability
jeremylongshore
Implement monitoring, logging, and tracing for Documenso integrations. Use when setting up observability, implementing metrics collection, or debugging production issues. Trigger with phrases like "documenso monitoring", "documenso metrics", "documenso logging", "documenso tracing", "documenso observability".
observe-whatsapp
engryamato
Observe and troubleshoot WhatsApp in Kapso: debug message delivery, inspect webhook deliveries/retries, triage API errors, and run health checks. Use when investigating production issues, message failures, or webhook delivery problems.
test-rest-health
deadl1f7
Test REST endpoint health. Use when: verifying REST API availability, debugging REST connection issues, checking gRPC client status via REST, validating proto catalogue via REST API.