Running into a weird data gap with my webhook listeners. I’ve got a service listening to conversation:updated events, but I need to backfill some historical data for the last 30 days where the webhook was down.
I figured I’d just query the API to get the list of conversations and then fetch details for each ID. I started with /api/v2/conversations because that’s what usually maps to the webhook payloads. But that endpoint only returns active conversations. Duh. Obvious mistake.
So I switched to /api/v2/analytics/conversations/summary to get the historical list. The issue is the payload structure is totally different. When I call GET /api/v2/conversations/{id} the response includes the full participants array with to, from, and id fields.
But when I pull from the analytics endpoint, I get aggregate data. I can get wrapUpCode or direction, but I can’t get the specific phone numbers or IDs of the participants involved in that call. I need those to match against my CRM records.
Is there an endpoint I’m missing that bridges this gap? Or do I have to iterate through every single conversation ID from the analytics summary and hit /api/v2/conversations/{id} individually? That feels like it’s going to hammer the rate limits hard. Here’s what the analytics response looks like for a single item:
{
"conversationId": "a1b2c3d4-...
"wrapUpCode": "Completed",
"direction": "inbound",
"duration": 120000
}
No participant details. Just aggregates. Feels like I’m stuck between a rock and a hard place here.