Update a dashboard widget
API Key Authentication. It should be included in the header of each request.
Widget configuration. Key rules:
line / pie: set field only (e.g. "duration", "call_ended_reason"). No aggregation needed.bar: set field + aggregation_function (e.g. "count") + time_period (e.g. "day").stat: leave field empty — returns total_calls, success_rate, avg_duration, p95_latency.field = "metric_evaluations.value": metric (integer metric ID) is required.
Get valid IDs from GET /test_framework/v1/metrics?agent_id=<id>.effective_filters (read-only): merged dashboard + widget filters — useful for debugging.Dashboard this widget belongs to
Optional name/title for the widget
255Filter conditions to scope the data. See the Dashboards guide for supported fields, operators, and syntax.
{
"field": "success",
"op": "eq",
"value": true
}{
"operator": "and",
"conditions": [
{
"field": "timestamp",
"op": "gte",
"value": "today-7d"
},
{
"field": "duration",
"op": "gte",
"value": 60
}
]
}Type of chart to display
line - Linebar - Barpie - Piestat - Statline, bar, pie, stat Data type of the field being plotted (optional, can be inferred)
numeric - Numericboolean - Booleanstring - Stringdatetime - DateTimedynamic - Dynamicnumeric, boolean, string, datetime, dynamic, , null Field name to plot. See the Dashboards guide for available fields, valid chart types, and aggregation combinations.
255"duration"
"success"
"call_ended_reason"
"metric_evaluations.value"
"metadata.region"
Metric to use when field is 'metric_evaluations.value'
Time period for aggregation (for bar charts)
hour - Hourday - Dayweek - Weekmonth - Monthhour, day, week, month, , null Aggregation function to apply (for bar charts)
count - Countsum - Sumavg - Averagemin - Minimummax - Maximumcount, sum, avg, min, max, , null Optional group-by configuration. Field group: {"type": "field", "field": "agent.id"}. Time bucket: {"type": "bucket", "interval": 3600000} (interval in milliseconds). Leave null or empty for no grouping.
Frontend metadata (e.g., position, size, styling)
Widget configuration. Key rules:
line / pie: set field only (e.g. "duration", "call_ended_reason"). No aggregation needed.bar: set field + aggregation_function (e.g. "count") + time_period (e.g. "day").stat: leave field empty — returns total_calls, success_rate, avg_duration, p95_latency.field = "metric_evaluations.value": metric (integer metric ID) is required.
Get valid IDs from GET /test_framework/v1/metrics?agent_id=<id>.effective_filters (read-only): merged dashboard + widget filters — useful for debugging.Type of chart to display
line - Linebar - Barpie - Piestat - Statline, bar, pie, stat Dashboard this widget belongs to
Optional name/title for the widget
255Filter conditions to scope the data. See the Dashboards guide for supported fields, operators, and syntax.
{
"field": "success",
"op": "eq",
"value": true
}{
"operator": "and",
"conditions": [
{
"field": "timestamp",
"op": "gte",
"value": "today-7d"
},
{
"field": "duration",
"op": "gte",
"value": 60
}
]
}Merged filters from dashboard and widget (read-only). Can be used with the call logs API filters_v2 parameter.
{
"field": "success",
"op": "eq",
"value": true
}{
"operator": "and",
"conditions": [
{
"field": "timestamp",
"op": "gte",
"value": "today-7d"
},
{
"field": "duration",
"op": "gte",
"value": 60
}
]
}Data type of the field being plotted (optional, can be inferred)
numeric - Numericboolean - Booleanstring - Stringdatetime - DateTimedynamic - Dynamicnumeric, boolean, string, datetime, dynamic, , null Field name to plot. See the Dashboards guide for available fields, valid chart types, and aggregation combinations.
255"duration"
"success"
"call_ended_reason"
"metric_evaluations.value"
"metadata.region"
Metric to use when field is 'metric_evaluations.value'
Name of the metric (if metric is set)
Time period for aggregation (for bar charts)
hour - Hourday - Dayweek - Weekmonth - Monthhour, day, week, month, , null Aggregation function to apply (for bar charts)
count - Countsum - Sumavg - Averagemin - Minimummax - Maximumcount, sum, avg, min, max, , null Optional group-by configuration. Field group: {"type": "field", "field": "agent.id"}. Time bucket: {"type": "bucket", "interval": 3600000} (interval in milliseconds). Leave null or empty for no grouping.
Frontend metadata (e.g., position, size, styling)
When the widget was created
When the widget was last updated