Create your server endpoint
Set up an HTTP or HTTPS endpoint function that can accept webhook requests with a POST method.Example endpoint:
Test your endpoint locally
Before going live, test your application integration locally. For example, host the endpoint on 
Test using this CURL command:
localhost:8080/webhook and test with Postman:
Make your local endpoint online
Deploy your endpoint using Ngrok:You’ll see a console UI like this:Your webhook endpoint will be
- Install ngrok:
- Start ngrok:
https://84c5df474.ngrok-free.dev/webhookRegister your webhook endpoint
You have two options:Option 1: Register an account level webhook
Set up through the system settings’ webhooks tab for events related to any agent under your account.
Option 2: Register an agent level webhook
Set up through the dashboard’s agent detail page. Note: If set, account level webhooks will not be triggered for that agent.
The webhook URL field accepts dynamic variables. Type


{{ to open a list of available variables, or wrap a name in double curly braces yourself (for example https://example.com/webhook?customer={{customer_name}}). Each variable is replaced with its value per call before the event is delivered.Use the Test button to send a sample request to your endpoint. If your URL uses variables whose values are only known during a live call (such as contact or CRM fields), the Test button is disabled and a tooltip explains why — the webhook will still work on real calls, but it can’t be tested here because there are no values to substitute yet. Variables that Retell can resolve ahead of time, such as system variables and your version’s environment variables, can be tested normally.
