๐Ÿ”— Retell Webhook Handler

Smart webhook forwarding for Retell AI agents

What this app does: Receives webhooks from Retell AI and automatically forwards them to your specified URLs based on the agent ID in each webhook.

๐Ÿ“‹ Quick Setup Guide

Configure Retell AI:
In your Retell dashboard, set webhook URL to:
http://your-server/generic-webhook/retell
Register your agents:
Use the API below to tell the app where to forward webhooks for each agent
Test it:
Send a test webhook and verify it reaches your endpoint
Important: Make sure your webhook URLs can receive POST requests with JSON data.

๐Ÿ”ง API Reference

Agent Management:

POST/agents - Register a new agent with webhook URL

{ "agentId": "your_agent_id", "webhookUrl": "https://your-app.com/webhook" }

GET/agents/all - List all registered agents

GET/agents/{agentId} - Get webhook URL for specific agent

DELETE/agents/{agentId} - Remove agent configuration

Webhook Processing:

POST/generic-webhook/retell - Receive and forward Retell webhooks

URL Storage (Legacy):

POST/urls - Store production/test URLs

GET/urls - Get all stored URLs

GET/urls/prod - Get production URL only

GET/urls/test - Get test URL only

System Monitoring:

GET/health - Service health check

GET/status/worker - Webhook processing status and queue statistics

๐Ÿงช Testing Your Setup

Get a test webhook URL:
Go to webhook.site and copy your unique URL
Register a test agent:
curl -X POST http://localhost:3033/agents \ -H "Content-Type: application/json" \ -d '{"agentId": "test_agent", "webhookUrl": "https://webhook.site/YOUR-ID"}'

Try it with UI:

Send a test webhook:
curl -X POST http://localhost:3033/generic-webhook/retell \ -H "Content-Type: application/json" \ -d '{"event": "call_ended", "call": {"agent_id": "test_agent", "call_id": "test"}}'

Try it with UI:

Check webhook.site:
You should see the webhook data appear on your webhook.site page

โš™๏ธ URL Storage Tool

This feature is maintained for backward compatibility.

API Endpoints:

GET/urls - Get all URLs

GET/urls/prod - Get production URL only

GET/urls/test - Get test URL only

Current URLs:

Production URL: Not set
Test URL: Not set