My application relies on call transcripts and other metadata that are delivered via the Call Event Webhooks.
If my app happens to be down temporarily, inbound calls to my Retell numbers still complete successfully, but my application misses the webhook events for those calls. As a result, I lose access to the transcripts and associated data unless I manually recover them.
Currently, the only way to recover this data is to manually query the Retell API for calls during the downtime window and then reprocess those results in my system.
It would be very helpful to have a feature that allows webhook events to be replayed. For example, the ability to specify a time range and have Retell resend the webhook events that occurred during that window.
This would make it much easier to recover from temporary outages and ensure downstream systems remain consistent.
The API-query workaround has two failure modes you have to track separately — knowing your app was down, and remembering the time window — so it works for loud outages and quietly drifts for brief ones.
Three patterns that survive this better, roughly by cost:
Inbox table. Your handler does one thing: insert the raw payload into an inbox table keyed on Retell’s event ID (unique constraint for dedup), then return 200. A separate worker processes the inbox. Most “we missed events” outages turn out to be the processing falling over, not the receiver — moving the receiver to a trivial write defuses that.
Capture proxy. A small service in front of your handler that durably stores the raw request, then forwards. If your handler is down, the record is still there and you replay later. Same idea as the inbox table, but the durability boundary sits outside your app — useful when your app itself is what goes down.
Reconciliation job. Daily/hourly job that pulls Retell’s call list and verifies an event row per call. Catches the case where both sides had a bad day.
(Disclosure: I build FlurryPORT — the capture-proxy option above, as a hosted service. Stable URL, raw payload + headers preserved, one-click replay.)
+1 on native replay regardless — covers the case external capture can’t: when Retell drops the send before it leaves their side.