I’m troubleshooting Retell chat webhooks to a Flask app hosted on Render.
Webhook endpoint:
https://[my-render-service].onrender.com/webhook
Retell agent:
agent_[redacted]
Webhook event selected:
chat_analyzed only
What works:
- The Render service health check returns 200.
- The Flask route is POST /webhook.
- A manual curl POST to /webhook with a chat_analyzed payload returns 200.
- That manual POST successfully triggers downstream processing: HubSpot contact creation and email notification.
- Render logs show POST /webhook for the manual curl test.
What does not work:
- Real Retell chat sessions do not appear to POST to /webhook.
- Render logs show no POST /webhook at the time of actual Retell chat completion.
- The same completed chats are later picked up by a polling fallback script using the Retell API.
- Emails generated from the fallback show “Source: Polling Fallback,” not “Source: Webhook (chat_analyzed).”
Question:
Do Retell preview chat sessions trigger chat_analyzed webhooks, or only published/live embedded chat sessions? Is there a separate publish step required after setting webhook events? Is there any Retell-side delivery log where I can see attempted webhook POSTs and response codes?
