Diagnose a failed post-call webhook
- Confirm
PUBLIC_URLis the URL ElevenLabs can reach (Render URL in deploy). - Confirm the dashboard webhook is
POST $PUBLIC_URL/api/webhooks/elevenlabs. - If
ELEVENLABS_WEBHOOK_SECRETis set, the handler verifies HMAC against the raw body. A 401 is a signature mismatch (wrong secret, or a proxy that re-serialises JSON). - The session row is keyed by
elevenlabs_conversation_id. The client must callPOST /api/sessions/:id/conversationon connect. If that never ran, the webhook returnssession not found. - Open Manager → Sessions → the session inspector. Transcript, duration, eval scores, and tool log should be present after a successful webhook.
end_session_summaryis not sufficient if the rep closes the tab. The webhook is the close path.
TODO: exact ElevenLabs signature header format if a future dashboard change breaks verification (elevenlabs-signature t and v0 today).