Register a Retell webhook to receive real-time call_started, call_ended, and call_analyzed events, with Node.js, Python, and signature verification code.
1
Create your server endpoint
Set up an HTTP or HTTPS endpoint function that can accept webhook requests with a POST method.Example endpoint:
// install the sdk: https://docs.retellai.com/get-started/sdkimport { Retell } from "retell-sdk";import express, { Request, Response } from "express";const app = express();app.use(express.json());app.post("/webhook", (req: Request, res: Response) => { const {event, call} = req.body; switch (event) { case "call_started": console.log("Call started event received", call.call_id); break; case "call_ended": console.log("Call ended event received", call.call_id); break; case "call_analyzed": console.log("Call analyzed event received", call.call_id); break; default: console.log("Received an unknown event:", event); } // Acknowledge the receipt of the event res.status(204).send();});
ngrok (Ctrl+C to quit)Session Status onlineAccount inconshreveable (Plan: Free)Version 3.0.0Region United States (us)Latency 78msWeb Interface http://127.0.0.1:4040Forwarding https://84c5df474.ngrok-free.dev -> http://localhost:8080
Your webhook endpoint will be https://84c5df474.ngrok-free.dev/webhook.
4
Register 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
Open the agent editor and expand Webhook settings. For a conversation flow, select Global settings first. Enter your endpoint in Agent Level Webhook URL. If set, account-level webhooks will not be triggered for that agent.
Set the agent endpoint in Webhook settings.
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.
5
Verify your webhook endpoint
Start a web call in the dashboard to verify the webhook is triggered correctly.
Was this page helpful?
⌘I
{"docsConfig":{"theme":"almond","$schema":"https://mintlify.com/docs.json","name":"Retell AI","description":"Explore Retell AI docs to learn how to build, test, deploy, and optimize AI voice agents with APIs, integrations, conversation flows, and production-ready tools.","colors":{"primary":"#606A78","light":"#F5F5FA","dark":"#172131"},"logo":{"light":"https://mintcdn.com/retellai/-E9UettTBfBiCBBS/images/docs-light.png?fit=max\u0026auto=format\u0026n=-E9UettTBfBiCBBS\u0026q=85\u0026s=64eb26a2d3cc9a67ee3ea0bfe086dd14","dark":"https://mintcdn.com/retellai/-E9UettTBfBiCBBS/images/docs-dark.png?fit=max\u0026auto=format\u0026n=-E9UettTBfBiCBBS\u0026q=85\u0026s=08472a0c78599498b85d23348d7826f6"},"favicon":"https://mintcdn.com/retellai/TsBk7Stx4694-7p1/logo/favicon-light.ico?fit=max\u0026auto=format\u0026n=TsBk7Stx4694-7p1\u0026q=85\u0026s=4e90f4db5e89b5ec7fe249a4844c2d97","api":{"openapi":["openapi-final.yaml"],"playground":{"display":"interactive"},"mdx":{"auth":{"method":"bearer"},"server":"https://api.retellai.com"}},"navbar":{"links":[{"icon":"message-circle-question-mark","href":"https://docs.retellai.com/general/support","label":"Support"},{"icon":"chart-line","href":"https://status.retellai.com/","label":"Status"},{"icon":"book","href":"https://www.retellai.com/changelog","label":"Changelog"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.retellai.com"}},"footer":{"socials":{"x":"https://x.com/retellai","linkedin":"https://www.linkedin.com/company/98828489","github":"https://github.com/RetellAI","instagram":"https://www.instagram.com/retell_ai","youtube":"https://www.youtube.com/@retellai"}},"fonts":{"family":"Inter"},"icons":{"library":"lucide"},"styling":{"codeblocks":"dark","latex":false},"integrations":{"mixpanel":{"projectToken":"c8676d3561adb5eefc366aa2a66725bc"}},"contextual":{"options":["copy","view","chatgpt","claude","cursor"],"display":"header"},"interaction":{"drilldown":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"retellai","hasAudioNarration":false,"actualSubdomain":"retellai","customDomains":["docs.retellai.com"],"gitSource":{"type":"github","owner":"retellai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adfbca1489bdbef01bbddf6","collectionId":"2ec1a076-8824-4365-85b7-b6101f1aa41f","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adfbca1489bdbef01bbddf6"},"feedback":{"thumbs":true,"edits":false,"issues":false,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adfbde3c552ab86f89927e9","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"Guides","count":206},{"language":"default","tag":"API Reference","count":107},{"language":"default","tag":"Build","count":67},{"language":"default","tag":"Integrations","count":30},{"language":"default","tag":"Deploy","count":29},{"language":"default","tag":"Conversation flow agents","count":24},{"language":"default","tag":"Deprecations","count":22},{"language":"default","tag":"CRM","count":21},{"language":"default","tag":"Detailed Deprecation Guide","count":21},{"language":"default","tag":"Monitor","count":17}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instinct-self-updating-docs","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@media (min-width:1024px){#navbar .flex-1:has(>[data-slot=context-menu-trigger]),#navbar .flex-1:has(>a>.nav-logo){flex:none!important;width:15rem}#navbar .justify-end:has(.nav-tabs),#navbar .ustify-end:has(.nav-tabs){justify-content:space-between!important;margin-left:0!important}#navbar .flex:has(>.justify-end),#navbar .flex:has(>.ustify-end){flex:1!important}#navbar .nav-tabs{white-space:nowrap}}.max-w-prose,.max-w-xl,article{max-width:48rem!important}video.scroll-play{cursor:zoom-in}.video-zoom-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:4vmin;background:rgba(0,0,0,.8);backdrop-filter:blur(2px);cursor:zoom-out}.video-zoom-media{max-width:92vw;max-height:92vh;width:auto;height:auto;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.5);cursor:default}.video-zoom-close{position:fixed;top:16px;right:20px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.15);color:#fff;font-size:24px;line-height:1;cursor:pointer}.video-zoom-close:hover{background:rgba(255,255,255,.3)}.ui-btn{background-color:#f4f5f7!important;color:#1f2328!important;border:1px solid #d0d5dd!important;border-bottom-width:2px!important;border-radius:6px!important;padding:.1em .42em!important}[data-theme=dark] .ui-btn,html.dark .ui-btn{background-color:#21252d!important;color:#e6e8eb!important;border-color:#3a4048!important}img[src$=\"/images/icons/wss-badge.svg\"]{width:auto!important;height:15px!important}a[aria-current=page] img[src$=\"/images/icons/wss-badge.svg\"]{content:url(\"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2227%22 height=%2215%22 viewBox=%220 0 27 15%22 role=%22img%22 aria-label=%22WSS%22%3E %3Crect width=%2227%22 height=%2215%22 rx=%224%22 fill=%22%23F54A00%22/%3E %3Ctext x=%2213.5%22 y=%2210.7%22 text-anchor=%22middle%22 font-family=%22ui-sans-serif, system-ui, -apple-system, Segoe UI, Inter, Helvetica, Arial, sans-serif%22 font-size=%228.8%22 font-weight=%22700%22 fill=%22%23FFFFFF%22%3EWSS%3C/text%3E %3C/svg%3E\")}"}],"page":{"pagePath":"features/register-webhook","slug":"/features/register-webhook","pageMetadata":{"title":"Register and set up a Retell webhook","description":"Register a Retell webhook to receive real-time call_started, call_ended, and call_analyzed events, with Node.js, Python, and signature verification code.","keywords":["agent webhook","account webhook","webhook timeout"],"og:title":"Register and set up a Retell webhook","og:description":"Register a Retell webhook to receive real-time call_started, call_ended, and call_analyzed events, with Node.js, Python, and signature verification code.","href":"/features/register-webhook"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Register a Retell webhook to receive real-time call_started, call_ended, and call_analyzed events, with Node.js, Python, and signature verification code.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Frame,OptimizedImage,Step,Steps}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);return _jsxs(Steps,{children:[_jsxs(Step,{title:`Create your server endpoint`,children:[_jsx(_components.p,{children:`Set up an HTTP or HTTPS endpoint function that can accept webhook requests with a POST method.`}),_jsx(_components.p,{children:`Example endpoint:`}),_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`Node.js`,numberOfLines:`25`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`25`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`// install the sdk: https://docs.retellai.com/get-started/sdk`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`Retell`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"retell-sdk\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` express`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`Request`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`Response`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"express\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#4FC1FF`,\"--shiki-dark\":`#4FC1FF`},children:` app`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` = `}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`express`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`app`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`use`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`express`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`json`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`());`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`app`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`post`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"/webhook\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, (`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`req`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Request`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`res`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:`Response`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#4FC1FF`,\"--shiki-dark\":`#4FC1FF`},children:`event`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#4FC1FF`,\"--shiki-dark\":`#4FC1FF`},children:`call`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`} = `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`req`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`body`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` switch`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` case`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"call_started\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Call started event received\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`call`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`call_id`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` break`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` case`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"call_ended\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Call ended event received\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`call`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`call_id`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` break`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` case`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"call_analyzed\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Call analyzed event received\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`call`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`call_id`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` break`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` default`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Received an unknown event:\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:` // Acknowledge the receipt of the event`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` res`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`status`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`204`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`send`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,numberOfLines:`25`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`25`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6A9955`,\"--shiki-dark\":`#6A9955`},children:`# Install the SDK: https://docs.retellai.com/get-started/sdk`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` fastapi `}),_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` FastAPI, Request`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` fastapi.responses `}),_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` JSONResponse`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` retell `}),_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` Retell`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`retell = Retell(`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`api_key`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`=os.environ[`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"RETELL_API_KEY\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`@app.post`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"/webhook\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`async`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` def`}),_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:` handle_webhook`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`request`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: Request):`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` try`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` post_data = `}),_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:`await`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` request.json()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` post_data[`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"event\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`] == `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"call_started\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:` print`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Call started event\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, post_data[`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"call\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`][`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"call_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` elif`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` post_data[`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"event\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`] == `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"call_ended\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:` print`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Call ended event\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, post_data[`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"call\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`][`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"call_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` elif`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` post_data[`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"event\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`] == `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"call_analyzed\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:` print`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Call analyzed event\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, post_data[`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"call\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`][`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"call_id\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` else`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:` print`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Unknown event\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, post_data[`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"event\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`])`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` JSONResponse(`}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`status_code`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`204`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` except`}),_jsx(_components.span,{style:{color:`#4EC9B0`,\"--shiki-dark\":`#4EC9B0`},children:` Exception`}),_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` as`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` err:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:` print`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`f`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Error in webhook: `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`err`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#C586C0`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` JSONResponse(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` status_code`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`500`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`content`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`={`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"message\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Internal Server Error\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` )`})}),`\n`]})})})]})]}),_jsxs(Step,{title:`Test your endpoint locally`,children:[_jsxs(_components.p,{children:[`Before going live, test your application integration locally. For example, host the endpoint on `,_jsx(_components.code,{children:`localhost:8080/webhook`}),` and test with Postman:`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{height:`700`,src:`https://mintcdn.com/retellai/_FxJdxv7mQoPqyGs/images/webhook_postman.png?fit=max\u0026auto=format\u0026n=_FxJdxv7mQoPqyGs\u0026q=85\u0026s=f6f0c37648926e503685ec7de48c4c30`,alt:`Testing webhook with postman`,\"data-og-width\":`1179`,\"data-og-height\":`779`,\"data-path\":`images/webhook_postman.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/retellai/_FxJdxv7mQoPqyGs/images/webhook_postman.png?w=280\u0026fit=max\u0026auto=format\u0026n=_FxJdxv7mQoPqyGs\u0026q=85\u0026s=6cff99cadfdff2d46abb874245af5f93 280w, https://mintcdn.com/retellai/_FxJdxv7mQoPqyGs/images/webhook_postman.png?w=560\u0026fit=max\u0026auto=format\u0026n=_FxJdxv7mQoPqyGs\u0026q=85\u0026s=0e6cdef9f24d566cbd037b3b540421f5 560w, https://mintcdn.com/retellai/_FxJdxv7mQoPqyGs/images/webhook_postman.png?w=840\u0026fit=max\u0026auto=format\u0026n=_FxJdxv7mQoPqyGs\u0026q=85\u0026s=77e3ed6558dc4dc416950a616e3c8a49 840w, https://mintcdn.com/retellai/_FxJdxv7mQoPqyGs/images/webhook_postman.png?w=1100\u0026fit=max\u0026auto=format\u0026n=_FxJdxv7mQoPqyGs\u0026q=85\u0026s=66b73564169175696a65bcd087f03cd8 1100w, https://mintcdn.com/retellai/_FxJdxv7mQoPqyGs/images/webhook_postman.png?w=1650\u0026fit=max\u0026auto=format\u0026n=_FxJdxv7mQoPqyGs\u0026q=85\u0026s=22f43315098658681a55fa41d1ee522a 1650w, https://mintcdn.com/retellai/_FxJdxv7mQoPqyGs/images/webhook_postman.png?w=2500\u0026fit=max\u0026auto=format\u0026n=_FxJdxv7mQoPqyGs\u0026q=85\u0026s=6a18cd9f455af78610a7d572107dbf52 2500w`})}),_jsx(_components.p,{children:`Test using this CURL command:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`23`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`23`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --location`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` 'localhost:8080/webhook'`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`--header `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'Content-Type: application/json'`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`--data `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`'{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"event\": \"call_ended\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"call\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"call_type\": \"phone_call\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"from_number\": \"+12137771234\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"to_number\": \"+12137771235\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"direction\": \"inbound\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"call_id\": \"Jabr9TXYYJHfvl6Syypi88rdAHYHmcq6\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"agent_id\": \"oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"call_status\": \"registered\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"metadata\": {},`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"retell_llm_dynamic_variables\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"customer_name\": \"John Doe\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"start_timestamp\": 1714608475945,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"end_timestamp\": 1714608491736,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"disconnection_reason\": \"user_hangup\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"transcript\": \"...\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"data_storage_setting\": \"everything\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`}'`})}),`\n`]})})})]}),_jsxs(Step,{title:`Make your local endpoint online`,children:[_jsxs(_components.p,{children:[`Deploy your endpoint using `,_jsx(_components.a,{href:`https://ngrok.com/docs/getting-started/`,children:`Ngrok`}),`:`]}),_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Install ngrok:`}),`\n`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`brew`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` ngrok/ngrok/ngrok`})]}),`\n`]})})}),_jsxs(_components.ol,{start:`2`,children:[`\n`,_jsx(_components.li,{children:`Start ngrok:`}),`\n`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`ngrok`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` http`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` http://localhost:8080`})]}),`\n`]})})}),_jsx(_components.p,{children:`You’ll see a console UI like this:`}),_jsx(CodeBlock,{numberOfLines:`10`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`ngrok (Ctrl+C to quit)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Session Status online`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Account inconshreveable (Plan: Free)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Version 3.0.0`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Region United States (us)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Latency 78ms`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Web Interface http://127.0.0.1:4040`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Forwarding https://84c5df474.ngrok-free.dev -> http://localhost:8080`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(_components.p,{children:[`Your webhook endpoint will be `,_jsx(_components.code,{children:`https://84c5df474.ngrok-free.dev/webhook`}),`.`]})]}),_jsxs(Step,{title:`Register your webhook endpoint`,children:[_jsx(_components.p,{children:`You have two options:`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Option 1: Register an account level webhook`}),`\nSet up through the system settings’ webhooks tab for events related to any agent under your account.`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{height:`200`,src:`https://mintcdn.com/retellai/lFgxod3Z4ow1Jkgv/images/webhook.png?fit=max\u0026auto=format\u0026n=lFgxod3Z4ow1Jkgv\u0026q=85\u0026s=ad640e6141ba063dd7f6d33d43f36435`,alt:`Account-level webhook URL configuration in the dashboard settings`,\"data-og-width\":`2956`,\"data-og-height\":`1376`,\"data-path\":`images/webhook.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/retellai/lFgxod3Z4ow1Jkgv/images/webhook.png?w=280\u0026fit=max\u0026auto=format\u0026n=lFgxod3Z4ow1Jkgv\u0026q=85\u0026s=50cf2dd9ce040d5d76622f34c9544f68 280w, https://mintcdn.com/retellai/lFgxod3Z4ow1Jkgv/images/webhook.png?w=560\u0026fit=max\u0026auto=format\u0026n=lFgxod3Z4ow1Jkgv\u0026q=85\u0026s=d3796309aac118b3e3eb3d8f63bf3fa6 560w, https://mintcdn.com/retellai/lFgxod3Z4ow1Jkgv/images/webhook.png?w=840\u0026fit=max\u0026auto=format\u0026n=lFgxod3Z4ow1Jkgv\u0026q=85\u0026s=1b22b10997b1dcbe5a706186da7452f1 840w, https://mintcdn.com/retellai/lFgxod3Z4ow1Jkgv/images/webhook.png?w=1100\u0026fit=max\u0026auto=format\u0026n=lFgxod3Z4ow1Jkgv\u0026q=85\u0026s=53c386f5da07685ac00aa83002a98e75 1100w, https://mintcdn.com/retellai/lFgxod3Z4ow1Jkgv/images/webhook.png?w=1650\u0026fit=max\u0026auto=format\u0026n=lFgxod3Z4ow1Jkgv\u0026q=85\u0026s=0cdedec9ba004ee621d67584a1ffb9a4 1650w, https://mintcdn.com/retellai/lFgxod3Z4ow1Jkgv/images/webhook.png?w=2500\u0026fit=max\u0026auto=format\u0026n=lFgxod3Z4ow1Jkgv\u0026q=85\u0026s=1aec2727436ef749e5b1d8e6767661ef 2500w`})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Option 2: Register an agent level webhook`}),`\nOpen the agent editor and expand `,_jsx(_components.strong,{children:`Webhook settings`}),`. For a conversation flow, select `,_jsx(_components.strong,{children:`Global settings`}),` first. Enter your endpoint in `,_jsx(_components.strong,{children:`Agent Level Webhook URL`}),`. If set, account-level webhooks will not be triggered for that agent.`]}),_jsx(Frame,{caption:`Set the agent endpoint in Webhook settings.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/retellai/Mg1hiS-BnevMo90k/images/agent-settings-webhook.png?fit=max\u0026auto=format\u0026n=Mg1hiS-BnevMo90k\u0026q=85\u0026s=2ad5b5138b46885f97c4d77fedd61801`,alt:`Webhook settings with an empty Agent Level Webhook URL field, a disabled Test button, Webhook Timeout, and Webhook Events Set Up.`,style:{maxHeight:560},\"data-og-width\":`601`,width:`601`,\"data-og-height\":`491`,height:`491`,\"data-path\":`images/agent-settings-webhook.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/retellai/Mg1hiS-BnevMo90k/images/agent-settings-webhook.png?w=280\u0026fit=max\u0026auto=format\u0026n=Mg1hiS-BnevMo90k\u0026q=85\u0026s=d3adbf69ee378804b1621f26efd123de 280w, https://mintcdn.com/retellai/Mg1hiS-BnevMo90k/images/agent-settings-webhook.png?w=560\u0026fit=max\u0026auto=format\u0026n=Mg1hiS-BnevMo90k\u0026q=85\u0026s=d0029aadb8abd478571fa047b1e586c5 560w, https://mintcdn.com/retellai/Mg1hiS-BnevMo90k/images/agent-settings-webhook.png?w=840\u0026fit=max\u0026auto=format\u0026n=Mg1hiS-BnevMo90k\u0026q=85\u0026s=7a8951579da8e109cd57aff905355c65 840w, https://mintcdn.com/retellai/Mg1hiS-BnevMo90k/images/agent-settings-webhook.png?w=1100\u0026fit=max\u0026auto=format\u0026n=Mg1hiS-BnevMo90k\u0026q=85\u0026s=aa71951923265f8dbec8f478fd1c54f0 1100w, https://mintcdn.com/retellai/Mg1hiS-BnevMo90k/images/agent-settings-webhook.png?w=1650\u0026fit=max\u0026auto=format\u0026n=Mg1hiS-BnevMo90k\u0026q=85\u0026s=fa23709f6dfc0e07c87d174ba141e84d 1650w, https://mintcdn.com/retellai/Mg1hiS-BnevMo90k/images/agent-settings-webhook.png?w=2500\u0026fit=max\u0026auto=format\u0026n=Mg1hiS-BnevMo90k\u0026q=85\u0026s=acc15d9757f7c8adcec9bf37b13e9477 2500w`})}),_jsxs(_components.p,{children:[`The webhook URL field accepts `,_jsx(_components.a,{href:`/build/dynamic-variables`,children:`dynamic variables`}),`. Type `,_jsx(_components.code,{children:`{{`}),` to open a list of available variables, or wrap a name in double curly braces yourself (for example `,_jsx(_components.code,{children:`https://example.com/webhook?customer={{customer_name}}`}),`). Each variable is replaced with its value per call before the event is delivered.`]}),_jsxs(_components.p,{children:[`Use the `,_jsx(_components.strong,{children:`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 `,_jsx(_components.strong,{children:`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.`]})]}),_jsx(Step,{title:`Verify your webhook endpoint`,children:_jsx(_components.p,{children:`Start a web call in the dashboard to verify the webhook is triggered correctly.`})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Register and set up a Retell webhook","description":"Register a Retell webhook to receive real-time call_started, call_ended, and call_analyzed events, with Node.js, Python, and signature verification code.","keywords":["agent webhook","account webhook","webhook timeout"],"og:title":"Register and set up a Retell webhook","og:description":"Register a Retell webhook to receive real-time call_started, call_ended, and call_analyzed events, with Node.js, Python, and signature verification code.","href":"/features/register-webhook"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/retellai/e3fe5c9b64f9e274/scroll-play-videos.js"],"subdomain":"retellai","siteName":"Retell AI","title":"Register and set up a Retell webhook","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-19T22:20:44.219Z","originalFileLocation":"features/register-webhook.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Register a Retell webhook to receive real-time call_started, call_ended, and call_analyzed events, with Node.js, Python, and signature verification code.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Retell AI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Register and set up a Retell webhook\">\u003cmeta data-mint-head property=\"og:description\" content=\"Register a Retell webhook to receive real-time call_started, call_ended, and call_analyzed events, with Node.js, Python, and signature verification code.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Retell AI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.retellai.com/features/register-webhook\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://retellai.mintlify.app/_mintlify/api/og/v2?division=Call+Event+Webhook\u0026amp;title=Register+and+set+up+a+Retell+webhook\u0026amp;description=Register+a+Retell+webhook+to+receive+real-time+call_started%2C+call_ended%2C+and+call_analyzed+events%2C+with+Node.js%2C+Python%2C+and+signature+verification+code.\u0026amp;theme=35696226f7b423b96c359dbf\u0026amp;signature=93a27f735acd515e263398a5d33699edd4b376e29ec8e6e25c1d2318600b5a46\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Register and set up a Retell webhook\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Register a Retell webhook to receive real-time call_started, call_ended, and call_analyzed events, with Node.js, Python, and signature verification code.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://retellai.mintlify.app/_mintlify/api/og/v2?division=Call+Event+Webhook\u0026amp;title=Register+and+set+up+a+Retell+webhook\u0026amp;description=Register+a+Retell+webhook+to+receive+real-time+call_started%2C+call_ended%2C+and+call_analyzed+events%2C+with+Node.js%2C+Python%2C+and+signature+verification+code.\u0026amp;theme=35696226f7b423b96c359dbf\u0026amp;signature=93a27f735acd515e263398a5d33699edd4b376e29ec8e6e25c1d2318600b5a46\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/retellai/aRxZhiMifgkRJF_R/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Retell AI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#606A78\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.retellai.com/features/register-webhook\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/features/register-webhook.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.retellai.com/#organization\",\"name\":\"Retell AI\",\"url\":\"https://docs.retellai.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/retellai/-E9UettTBfBiCBBS/images/docs-light.png?fit=max\u0026auto=format\u0026n=-E9UettTBfBiCBBS\u0026q=85\u0026s=64eb26a2d3cc9a67ee3ea0bfe086dd14\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.retellai.com#website\",\"name\":\"Retell AI\",\"url\":\"https://docs.retellai.com\",\"publisher\":{\"@id\":\"https://docs.retellai.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.retellai.com/features/register-webhook#webpage\",\"url\":\"https://docs.retellai.com/features/register-webhook\",\"name\":\"Register and set up a Retell webhook\",\"description\":\"Register a Retell webhook to receive real-time call_started, call_ended, and call_analyzed events, with Node.js, Python, and signature verification code.\",\"dateModified\":\"2026-10-19T22:20:44.219Z\",\"isPartOf\":{\"@id\":\"https://docs.retellai.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.retellai.com/features/register-webhook#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.retellai.com/features/register-webhook#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Monitor\",\"item\":\"https://docs.retellai.com/features/live-monitoring\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Register \u0026 handle webhooks\",\"item\":\"https://docs.retellai.com/features/webhook-overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Call Event Webhook\",\"item\":\"https://docs.retellai.com/features/webhook-overview\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Register and set up a Retell webhook\",\"item\":\"https://docs.retellai.com/features/register-webhook\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.retellai.com/features/register-webhook#article\",\"headline\":\"Register and set up a Retell webhook\",\"name\":\"Register and set up a Retell webhook\",\"description\":\"Register a Retell webhook to receive real-time call_started, call_ended, and call_analyzed events, with Node.js, Python, and signature verification code.\",\"url\":\"https://docs.retellai.com/features/register-webhook\",\"mainEntityOfPage\":{\"@id\":\"https://docs.retellai.com/features/register-webhook#webpage\"},\"dateModified\":\"2026-10-19T22:20:44.219Z\",\"keywords\":\"agent webhook, account webhook, webhook timeout\",\"publisher\":{\"@id\":\"https://docs.retellai.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.retellai.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Retell AI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Retell AI","nav":{"global":null,"tabs":[{"tab":"Guides","icon":"book","groups":[{"group":" ","pages":[{"title":"Introduction to Retell","href":"/general/introduction"},{"title":"Build your first phone agent in 15 minutes","href":"/get-started/quick-start"}]},{"group":"Conductor (AI Assistant)","icon":"https://mintlify.s3.us-west-1.amazonaws.com/retellai/images/conductor/conductor-icon.svg","pages":[{"title":"Retell AI Conductor overview","sidebarTitle":"Overview","href":"/conductor/overview"},{"group":"Functionality","pages":[{"title":"Build and refine agents","href":"/conductor/build-and-refine"},{"title":"Test and improve agents","href":"/conductor/test-and-improve"},{"title":"Inspect knowledge bases","href":"/conductor/knowledge-base"},{"title":"Review calls and chats","href":"/conductor/call-and-chat-history"},{"title":"Build analytics dashboards","href":"/conductor/analytics-dashboards"},{"title":"Review QA results","href":"/conductor/ai-qa"},{"title":"Review contacts","href":"/conductor/contacts"}]},{"title":"Pricing","href":"/conductor/usage-and-billing"}]},{"group":"Build","icon":"bot","pages":[{"title":"Build a Retell agent: configuration overview","href":"/build/overview"},{"title":"Single prompt vs. conversation flow","href":"/build/choose-agent-type"},{"title":"General prompting principles","href":"/build/prompt-engineering-guide"},{"group":"Single prompt agents","pages":[{"title":"Single prompt best practices","href":"/build/single-multi-prompt/write-single-prompt"},{"title":"Configure basic settings","href":"/build/single-multi-prompt/configure-basic-settings"},{"group":"Functions","pages":[{"title":"Function calling for single and multi-prompt agents","href":"/build/single-multi-prompt/function-calling"},{"title":"End call","href":"/build/single-multi-prompt/end-call"},{"title":"Transfer call tool (single \u0026 multi-prompt agents)","href":"/build/single-multi-prompt/transfer-call"},{"title":"Send SMS","href":"/build/single-multi-prompt/send-sms"},{"title":"Press digit (IVR navigation)","href":"/build/single-multi-prompt/press-digit"},{"title":"Integrate any system with custom function","href":"/build/single-multi-prompt/custom-function"},{"title":"Integration tools","href":"/build/single-multi-prompt/integration-tools"},{"title":"Code tool: run JavaScript in a Retell agent","href":"/build/single-multi-prompt/code-tool"},{"title":"Extract Dynamic Variables","href":"/build/single-multi-prompt/extract-dv"},{"title":"Agent Transfer tool: hand a call to another AI agent","href":"/build/single-multi-prompt/transfer-agent"},{"title":"MCP tools for single and multi-prompt agents","href":"/build/single-multi-prompt/mcp"}]}]},{"group":"Conversation flow agents","pages":[{"title":"Conversation flow agents: structured voice AI call control","href":"/build/conversation-flow/overview"},{"title":"Conversation flow best practices","href":"/build/conversation-flow/best-practices"},{"title":"Configure global settings","href":"/build/conversation-flow/global-setting"},{"group":"Nodes","pages":[{"title":"Nodes and edges","href":"/build/conversation-flow/node"},{"title":"Subagent node","href":"/build/conversation-flow/subagent-node"},{"title":"Conversation node","href":"/build/conversation-flow/conversation-node"},{"group":"Function Node","pages":[{"title":"Call a function from a conversation flow node","href":"/build/conversation-flow/function-node"},{"title":"Custom function in conversation flow","href":"/build/conversation-flow/custom-function"},{"title":"Integration tools in conversation flow","href":"/build/conversation-flow/integration-tools"}]},{"title":"Code node: run JavaScript in a conversation flow","href":"/build/conversation-flow/code-node"},{"title":"Call transfer node in conversation flow","href":"/build/conversation-flow/call-transfer-node"},{"title":"Press Digit Node","href":"/build/conversation-flow/press-digit-node"},{"title":"End node","href":"/build/conversation-flow/end-node"},{"title":"Logic Split Node","href":"/build/conversation-flow/logic-split-node"},{"title":"SMS Node","href":"/build/conversation-flow/sms-node"},{"title":"Extract Dynamic Variable Node","href":"/build/conversation-flow/extract-dv-node"},{"title":"Agent Transfer Node","href":"/build/conversation-flow/transfer-agent-node"},{"title":"MCP node in conversation flow","href":"/build/conversation-flow/mcp-node"}]},{"title":"Transition conditions","href":"/build/conversation-flow/transition-condition"},{"title":"Reusable subflows for conversation flow agents","href":"/build/conversation-flow/components"},{"title":"Flex Mode: dynamic conversation flow execution","href":"/build/conversation-flow/flex-mode"},{"group":"Advanced features","pages":[{"title":"Global Node","href":"/build/conversation-flow/global-node"},{"title":"Finetune Examples","href":"/build/conversation-flow/finetune-examples"}]},{"title":"Debug guide","href":"/build/conversation-flow/debug-guide"}]},{"group":"Multi-prompt agents (legacy)","pages":[{"title":"Multi-prompt agents","href":"/build/single-multi-prompt/write-multi-prompt"}]},{"title":"Create chat agent","href":"/build/create-chat-agent"},{"title":"Agent workflow","href":"/agent/agent-workflow"},{"title":"Set language for your agent","href":"/agent/language"},{"title":"Configure a multilingual agent","href":"/agent/multilingual"},{"title":"Supported languages by provider","href":"/build/language-support"},{"group":"Understand user speech better","pages":[{"title":"Speech recognition providers","href":"/build/asr-providers"},{"title":"Transcription modes","href":"/build/transcription-mode"},{"title":"Handle background speech \u0026 noise","href":"/build/handle-background-noise"}]},{"group":"Generate better responses from LLM","pages":[{"title":"Agent Handbook","href":"/build/agent-handbook"},{"title":"Conversational Mode","href":"/build/conversational-mode"},{"title":"Pronunciation examples","href":"/build/prompt-situation-guide"},{"title":"Configure LLM Options","href":"/build/llm-options"}]},{"group":"Customize the synthesized speech","pages":[{"title":"Choose a custom voice","href":"/build/voice"},{"title":"Platform voices","href":"/build/platform-voices"},{"title":"Expressive Mode: add emotion and emphasis to agent speech","href":"/build/expressive-mode"},{"title":"Add custom pronunciation","href":"/build/add-pronunciation"},{"title":"Make the agent stay silent","href":"/build/no-response"},{"title":"Speech controls","href":"/build/speech-controls"},{"title":"Set up TTS fallback","href":"/build/tts-fallback"}]},{"group":"Integrate telephony features","pages":[{"title":"Handle voicemail and IVR","href":"/build/handle-voicemail"},{"title":"Capture DTMF input from user","href":"/build/user-dtmf"},{"title":"Set \u0026 parse custom SIP headers","href":"/build/telephony/sip-headers"}]},{"group":"Provide context to the agent","pages":[{"title":"Knowledge base setup and retrieval tuning","href":"/build/knowledge-base"},{"title":"Dynamic variables","href":"/build/dynamic-variables"}]},{"title":"Guardrails","href":"/build/guardrails"},{"title":"Do-not-call requests","href":"/build/do-not-call"}]},{"group":"Test","icon":"flask-conical","pages":[{"title":"Testing overview","href":"/test/test-overview"},{"group":"LLM Playground","pages":[{"title":"Manually test your agent","href":"/test/llm-playground"},{"title":"Debug your agent response","href":"/test/llm-playground-debug"}]},{"group":"LLM Simulation Testing","pages":[{"title":"Automatically test your agent","href":"/test/llm-simulation-testing"},{"title":"Batch test your agent","href":"/test/batch-test-simulation"}]},{"group":"Audio Testing","pages":[{"title":"Web call testing","href":"/test/test-web"},{"title":"Phone call testing","href":"/test/test-phone"}]},{"title":"Testing with Conductor","icon":"https://mintlify.s3.us-west-1.amazonaws.com/retellai/images/conductor/conductor-icon.svg","href":"/test/testing-with-conductor"},{"title":"Testing pricing","href":"/test/testing-pricing"}]},{"group":"Deploy","icon":"phone","pages":[{"title":"Purchase phone number","href":"/deploy/purchase-number"},{"title":"A/B Testing","href":"/deploy/ab-testing"},{"group":"Connect to custom telephony providers via SIP","pages":[{"title":"Connect Retell voice agents to custom telephony","href":"/deploy/custom-telephony"},{"group":"Connect via SIP trunking","pages":[{"title":"Connect a Twilio number to Retell with elastic SIP trunking","sidebarTitle":"Twilio","href":"/deploy/twilio"},{"title":"Telnyx","href":"/deploy/telnyx"},{"title":"Vonage","href":"/deploy/vonage"}]},{"group":"Connect to CCaaS","pages":[{"title":"Avaya","href":"/deploy/avaya"},{"title":"Connect Genesys Cloud to Retell","href":"/deploy/genesys"},{"title":"Connect Five9 to Retell","href":"/deploy/five9"},{"title":"Amazon Connect","href":"/deploy/amazon-connect"}]}]},{"group":"Make \u0026 receive phone calls","pages":[{"title":"Make outbound calls","href":"/deploy/outbound-call"},{"group":"Inbound calls","pages":[{"title":"Receive calls","href":"/deploy/inbound-call"},{"title":"Inbound call \u0026 SMS webhook","href":"/features/inbound-call-webhook"}]},{"title":"International calling","href":"/deploy/international-call"}]},{"title":"Implement chat with create chat completion","href":"/deploy/create-chat-completion"},{"title":"Website widget","href":"/deploy/chat-widget"},{"group":"Send \u0026 receive SMS","pages":[{"title":"Enable SMS","href":"/deploy/enable-sms"},{"title":"SMS campaign application","href":"/deploy/sms-campaign-application"}]},{"title":"Agent versions and tags","href":"/agent/version"},{"title":"Compare agent versions","href":"/agent/version-comparison"},{"title":"Create and schedule batch calls","href":"/deploy/make-batch-call"},{"group":"Increase call pickup rate","pages":[{"title":"Spam likely overview","href":"/build/telephony/call_efficiency_overview"},{"title":"Add a business profile","href":"/build/telephony/business-profile"},{"title":"Apply for verified phone number","href":"/build/telephony/verified-phone"},{"title":"Apply for branded call","href":"/build/telephony/branded-call"},{"title":"Handle application rejection","href":"/build/telephony/branded-call-rejection"},{"title":"Stop caller ID service","href":"/build/telephony/delete-service"}]},{"title":"Make a web call","href":"/deploy/web-call"},{"title":"Understand concurrency \u0026 limits","href":"/deploy/concurrency"}]},{"group":"Data","icon":"database","pages":[{"title":"Call \u0026 chat history","href":"/features/session-history"},{"title":"Contacts","href":"/features/contacts"},{"title":"Contact memory","href":"/features/contact-memory"}]},{"group":"Monitor","icon":"square-activity","pages":[{"title":"Monitor live calls","href":"/features/live-monitoring"},{"title":"Analytics dashboard","href":"/features/analytics-dashboard"},{"title":"Alert rules for call and chat metrics","href":"/features/alerting-overview"},{"group":"Register \u0026 handle webhooks","pages":[{"group":"Call Event Webhook","pages":[{"title":"Retell webhooks overview","description":"Overview of Retell webhooks — call_started, call_ended, and call_analyzed events delivered to your server so you can react to call activity without polling.","href":"/features/webhook-overview"},{"title":"Register and set up a Retell webhook","href":"/features/register-webhook"}]},{"title":"Secure the webhook","description":"Verify Retell AI webhook signatures with the raw request body, X-Retell-Signature header, API key, SDK helpers, and IP allowlisting.","href":"/features/secure-webhook"}]},{"group":"Post Call Extraction","pages":[{"title":"Post Call Extraction overview and categories","href":"/features/post-call-analysis-overview"},{"title":"Define the information you want to extract","href":"/features/post-call-analysis-create"},{"title":"Consume the analysis data","href":"/features/post-call-analysis-consumption"},{"title":"Rerun Post Call/Chat Extraction","href":"/features/rerun-call-analysis"}]},{"group":"AI Quality Assurance","pages":[{"title":"Automatically evaluate call quality with AI QA","sidebarTitle":"AI Quality Assurance","href":"/ai-qa/overview"},{"group":"Create QA","pages":[{"title":"Access AI QA","href":"/ai-qa/get-started"},{"title":"Define a QA cohort","href":"/ai-qa/create-cohort"},{"title":"Define resolution criteria","href":"/ai-qa/define-resolution-criteria"}]},{"title":"View QA results","href":"/ai-qa/view-qa-results"},{"title":"AI QA metrics","href":"/ai-qa/terminologies"},{"title":"Address metric issues","href":"/ai-qa/address-metric-issues"}]}]},{"group":"Reliability \u0026 Debugging","icon":"bug","pages":[{"title":"Reliability Overview","href":"/reliability/reliability-overview"},{"group":"Latency","pages":[{"title":"Check estimated latency","href":"/reliability/check-estimated-latency"},{"title":"Check actual latency","href":"/reliability/check-actual-latency"},{"title":"Troubleshoot high latency","href":"/reliability/troubleshoot-latency"}]},{"group":"Fix agent behaviors","pages":[{"title":"Transcription accuracy","href":"/reliability/wrong-transcript"},{"title":"Debug wrong response","href":"/reliability/wrong-response"}]},{"group":"Debug phone call issues","pages":[{"title":"Debug call transfer failure","href":"/reliability/call-performance"},{"title":"Debug call disconnection","href":"/reliability/debug-call-disconnect"},{"title":"Debug outbound connection issues","href":"/reliability/debug-outbound-call"},{"title":"Debug SIP calls using PCAP file","href":"/reliability/debug-calls-pcap"}]},{"title":"Agent paused or banned","href":"/reliability/agent-paused"},{"title":"Prevent abuse","href":"/reliability/prevent-abuse"},{"title":"Fraud Protection","href":"/reliability/fraud-protection"}]},{"group":"Accounts and Workspace","icon":"circle-user-round","pages":[{"title":"Create and manage Retell workspaces","href":"/accounts/workspace"},{"title":"Manage your Retell AI account","href":"/accounts/account"},{"title":"Use your business email","href":"/accounts/business-email"},{"title":"Access Control","href":"/accounts/access-control"},{"title":"KYC Verification","href":"/accounts/kyc"},{"group":"Billing","pages":[{"title":"Retell AI billing: credits, auto recharge, and invoices","href":"/accounts/billing"},{"title":"Exceptions to Our Per-Minute Pricing","href":"/accounts/billing-exceptions"},{"title":"Add payment methods","href":"/accounts/add-payment"},{"title":"Handle failed payments","href":"/accounts/fail-payment"}]},{"group":"Keys","pages":[{"title":"API Key Overview","href":"/accounts/api-keys-overview"},{"title":"Manage API keys and permission scopes","href":"/accounts/manage-api-keys"},{"title":"Public keys","href":"/accounts/public-keys"}]},{"group":"Privacy and Compliance","pages":[{"title":"Data Storage Settings","href":"/accounts/privacy-disable"},{"title":"Data Retention Policy","href":"/accounts/data-retention"},{"title":"Opt in to secure URL","href":"/accounts/signed-secure-url"},{"title":"Security and compliance","href":"/general/compliance"}]}]},{"group":"Integrations","icon":"unplug","pages":[{"title":"Connect CRMs, calendars, and knowledge sources to Retell","sidebarTitle":"Integrations overview","href":"/integrations/overview"},{"group":"CRM","pages":[{"title":"CRM integrations","href":"/integrations/crm-overview"},{"title":"CRM data mappings","href":"/integrations/crm-mappings"},{"group":"HubSpot","pages":[{"title":"Connect HubSpot","sidebarTitle":"Connect","href":"/integrations/hubspot"},{"title":"HubSpot contact sync","sidebarTitle":"Contact sync","href":"/integrations/hubspot-contact-sync"},{"title":"HubSpot agent functions","sidebarTitle":"Agent functions","href":"/integrations/hubspot-functions"}]},{"group":"Salesforce","pages":[{"title":"Connect Salesforce","sidebarTitle":"Connect","href":"/integrations/salesforce"},{"title":"Salesforce contact sync","sidebarTitle":"Contact sync","href":"/integrations/salesforce-contact-sync"},{"title":"Salesforce agent functions","sidebarTitle":"Agent functions","href":"/integrations/salesforce-functions"}]},{"group":"Microsoft Dynamics 365","pages":[{"title":"Connect Dynamics 365","sidebarTitle":"Connect","href":"/integrations/microsoft-dynamics"},{"title":"Dynamics 365 contact sync","sidebarTitle":"Contact sync","href":"/integrations/microsoft-dynamics-contact-sync"},{"title":"Dynamics 365 agent functions","sidebarTitle":"Agent functions","href":"/integrations/microsoft-dynamics-functions"}]},{"group":"GoHighLevel","pages":[{"title":"Connect GoHighLevel","sidebarTitle":"Connect","href":"/integrations/gohighlevel"},{"title":"GoHighLevel contact sync","sidebarTitle":"Contact sync","href":"/integrations/gohighlevel-contact-sync"},{"title":"GoHighLevel agent functions","sidebarTitle":"Agent functions","href":"/integrations/gohighlevel-functions"}]},{"group":"Zoho CRM","pages":[{"title":"Connect Zoho CRM","sidebarTitle":"Connect","href":"/integrations/zoho"},{"title":"Zoho contact sync","sidebarTitle":"Contact sync","href":"/integrations/zoho-contact-sync"},{"title":"Zoho agent functions","sidebarTitle":"Agent functions","href":"/integrations/zoho-functions"}]}]},{"group":"Helpdesk","pages":[{"group":"Zendesk","pages":[{"title":"Connect Zendesk","sidebarTitle":"Connect","href":"/integrations/zendesk"},{"title":"Zendesk agent functions","sidebarTitle":"Agent functions","href":"/integrations/zendesk-functions"}]}]},{"group":"Knowledge Base","pages":[{"group":"Google Drive","pages":[{"title":"Connect Google Drive","sidebarTitle":"Connect","href":"/integrations/google-drive"},{"title":"Google Drive knowledge base sync","sidebarTitle":"Knowledge base sync","href":"/integrations/google-drive-knowledge-base"}]},{"group":"Microsoft OneDrive","pages":[{"title":"Connect OneDrive","sidebarTitle":"Connect","href":"/integrations/microsoft-onedrive"},{"title":"OneDrive knowledge base sync","sidebarTitle":"Knowledge base sync","href":"/integrations/microsoft-onedrive-knowledge-base"}]},{"group":"Notion","pages":[{"title":"Connect Notion","sidebarTitle":"Connect","href":"/integrations/notion"},{"title":"Notion knowledge base sync","sidebarTitle":"Knowledge base sync","href":"/integrations/notion-knowledge-base"}]}]},{"group":"Calendar","pages":[{"group":"GoHighLevel","pages":[{"title":"GoHighLevel agent functions","sidebarTitle":"Agent functions","href":"/integrations/gohighlevel-functions"}]},{"group":"Calendly","pages":[{"title":"Connect Calendly","sidebarTitle":"Connect","href":"/integrations/calendly"},{"title":"Calendly agent functions","sidebarTitle":"Agent functions","href":"/integrations/calendly-functions"}]},{"group":"Cal.com","pages":[{"title":"Connect Cal.com","sidebarTitle":"Connect","href":"/integrations/cal-com"},{"title":"Cal.com agent functions","sidebarTitle":"Agent functions","href":"/integrations/cal-com-functions"}]}]}]},{"group":"Marketplace","icon":"store","pages":[{"title":"Trigger Retell calls from HubSpot workflows","href":"/integrations/hubspot-marketplace"},{"title":"Trigger Retell calls from Zoho CRM workflows","href":"/integrations/zoho-marketplace"},{"title":"Trigger Retell calls from Slack","href":"/integrations/slack-marketplace"},{"title":"Trigger Retell calls from Notion","href":"/integrations/notion-marketplace"}]},{"group":"Other Topics","pages":[{"group":"Custom LLM","pages":[{"title":"Custom LLM overview","href":"/integrate-llm/overview"},{"title":"Set up a custom LLM WebSocket server for your Retell agent","href":"/integrate-llm/setup-websocket-server"},{"title":"Connect your LLM","href":"/integrate-llm/integrate-llm"},{"title":"Add function calling","href":"/integrate-llm/integrate-function-calling"},{"title":"Troubleshooting","href":"/integrate-llm/troubleshooting"},{"title":"Best practices","href":"/integrate-llm/llm-best-practice"}]},{"title":"Audio Basics","href":"/knowledge/audio-basics"}]}]},{"tab":"API Reference","icon":"code-xml","pages":[{"title":"API Reference","href":"/api-references/overview"}]},{"tab":"SDK","icon":"package","pages":[{"title":"SDK","href":"/get-started/sdk"}]},{"tab":"MCP","icon":"plug-zap","pages":[{"title":"MCP","href":"/get-started/mcp-server"}]},{"tab":"CLI","icon":"terminal","pages":[{"title":"CLI","href":"/get-started/cli"}]},{"tab":"Deprecations","icon":"book-alert","pages":[{"title":"Deprecations","href":"/deprecation-notice/overview"}]}]},"title":"Register and set up a Retell webhook","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-COGkNuA6.js","DynamicMarkdown-85clUA0i.js","zoom-image-lightbox-BZxD9MAj.js","lightbox-handle-r17bVUz3.js"]}