Insights Dashboard: Twilio Voice Webhooks
This dashboard provides insight into the interaction between Twilio’s voice webhooks and our platform.
The dashboard contains charts that describe the following:
- Total number of inbound voice calls
- A breakdown of the number of inbound voice calls by caller type
- The overall time it takes for our platform to respond to the Twilio Webhook, and the rate of Twilio timeouts
- A list of timings on the bottlenecks that affect runtime on our platform’s webhook execution
By using this dashboard, we were able to assess the scale of the Twilio timeout problem, accurately identify the specific bottleneck processes in the workflow, and introduce the right optimizations to reduce the number of Twilio timeouts, finally resulting in an improved customer experience.
Required Products: Insights Event API
Level of Effort: Low
This dashboard works on top of the Insights Event API, and will require custom attributes or events.
Use the gear button to edit your dashboard and configure the following settings (below is an example):
- Dashboard Filter: Enabled
- Enabled Event Types:
- Enabled Attributes:
Custom Event Attributes
Inbound Calls - By Type
Breakdown of the inbound caller population
SELECT count(*) FROM ProdApi SINCE 30 MINUTES AGO FACET cases (where meta_caller_type = 'resident' as 'resident', where meta_caller_type = 'blocked' as 'blocked', where meta_caller_type = 'relay-owner' as 'relay-owner', where meta_caller_type = 'prospect' and meta_is_new_prospect is not true as 'prospect-existing', where meta_caller_type = 'prospect' and meta_is_new_prospect is true as 'prospect-new') WHERE tag = 'relay-voice-inbound' TIMESERIES
This query allows us to monitor the number of requests our platform is receiving from Twilio’s Webhooks, and allows us to see which population type is calling in most frequently.
Count of inbound calls taking > 15 secs to respond
SELECT count(*) as 'Count of Slow Voice Calls' FROM ProdApi WHERE tag = 'relay-voice-inbound' and meta_runtime_seconds > 15 TIMESERIES compare with 1 week ago
This query shows us the number of webhook requests that are taking more than 15 seconds to respond, and so are hitting the Twilio timeouts. The chart compares metrics with the same period from 1 week ago.
Inbound Voice - extract_prospect() runtime in seconds
One of the processes that we suspected to be a bottlenecks contributing to the Twilio timeouts
SELECT average(meta_runtime_extract_prospect) as 'Average runtime', max(meta_runtime_extract_prospect) as 'Highest runtime', min(meta_runtime_extract_prospect) as 'Lowest runtime' FROM ProdApi WHERE tag = 'relay-voice-inbound' and meta_runtime_extract_prospect is not null TIMESERIES
This query shows the timing metrics on one of the processes in the Twilio webhook that was eventually determined to be the main contributor the the Twilio timeouts. We found that even though the average was relatively low, there were very high peak runtimes that co-related with the count of calls that were timing out.