Analytics Dashboard
Your analytics dashboard is your command center for monitoring AI agent performance. It aggregates data from test simulations, live calls, and alerts to give you a complete picture of how your agents are performing.
Why Analytics Matter
Without data, you’re flying blind. Analytics help you:
Catch problems early - See quality drops before customers complain
Validate improvements - Know if your changes actually work
Identify patterns - Understand which scenarios cause issues
Make decisions - Use data instead of guesswork
Example : Your dashboard shows Agent V1 scoring 15% lower on Friday afternoons. Investigation reveals a tool integration that’s slower during high-traffic periods.
Dashboard Overview
The analytics dashboard combines four key data sources:
Key Metrics
Track overall quality across all agents:
Navigate to Analytics to see:
Average scores by agent
Score trends over time
Performance by scenario type
Comparison across agent versions
curl https://api.chanl.ai/v1/analytics/performance \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"timeRange": "30d",
"groupBy": "agent"
}'
Response: {
"period" : "30 days" ,
"agents" : [
{
"id" : "agent-v1" ,
"name" : "Production Agent V1" ,
"avgScore" : 87.3 ,
"totalCalls" : 1243 ,
"trend" : "stable" ,
"improvement" : "+2.1%"
},
{
"id" : "agent-v2" ,
"name" : "Production Agent V2" ,
"avgScore" : 91.5 ,
"totalCalls" : 856 ,
"trend" : "improving" ,
"improvement" : "+5.3%"
}
]
}
Call Volume & Success Rate
Monitor how many calls your agents handle and how well they perform:
curl https://api.chanl.ai/v1/analytics/volume \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"timeRange": "7d",
"interval": "day"
}'
{
"totalCalls" : 3421 ,
"successRate" : 94.2 ,
"avgDuration" : 4.3 ,
"byDay" : [
{
"date" : "2024-01-15" ,
"calls" : 512 ,
"successRate" : 95.1 ,
"avgScore" : 88.2
},
...
]
}
Alert Frequency
Track how often alerts are triggered:
curl https://api.chanl.ai/v1/analytics/alerts \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"timeRange": "30d"
}'
{
"totalAlerts" : 47 ,
"byType" : {
"quality_drop" : 23 ,
"compliance_issue" : 12 ,
"timeout" : 8 ,
"error" : 4
},
"trend" : "decreasing"
}
Score Over Time
Visualize agent performance trends:
const chanl = require ( '@chanl/sdk' );
// Get 30-day trend data
const trends = await chanl . analytics . trends ({
metric: 'score' ,
agents: [ 'agent-v1' ],
timeRange: '30d' ,
interval: 'day'
});
console . log ( trends );
/*
{
agent: "agent-v1",
dataPoints: [
{ date: "2024-01-01", score: 85.2 },
{ date: "2024-01-02", score: 86.1 },
{ date: "2024-01-03", score: 87.3 },
...
],
trend: "improving",
changePercent: +4.2
}
*/
Persona-Specific Analysis
See how agents perform with different customer types:
curl https://api.chanl.ai/v1/analytics/by-persona \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"agent": "agent-v1",
"timeRange": "30d"
}'
Results show strengths and weaknesses:
{
"agent" : "agent-v1" ,
"byPersona" : [
{
"persona" : "Analytical Customer" ,
"avgScore" : 92.1 ,
"totalInteractions" : 234 ,
"status" : "strength"
},
{
"persona" : "Frustrated Customer" ,
"avgScore" : 76.4 ,
"totalInteractions" : 189 ,
"status" : "needs_improvement"
},
{
"persona" : "Confused Customer" ,
"avgScore" : 88.3 ,
"totalInteractions" : 156 ,
"status" : "good"
}
]
}
Comparative Analysis
Agent Comparison
Compare multiple agents side-by-side:
curl https://api.chanl.ai/v1/analytics/compare \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"agents": ["agent-v1", "agent-v2"],
"timeRange": "30d",
"metrics": ["score", "duration", "successRate"]
}'
{
"comparison" : {
"agent-v1" : {
"avgScore" : 87.3 ,
"avgDuration" : 4.2 ,
"successRate" : 93.1
},
"agent-v2" : {
"avgScore" : 91.5 ,
"avgDuration" : 3.8 ,
"successRate" : 95.7
}
},
"winner" : "agent-v2" ,
"advantages" : [
"+4.2 points higher score" ,
"10% faster resolution" ,
"+2.6% higher success rate"
]
}
Before/After Analysis
Measure impact of changes:
const chanl = require ( '@chanl/sdk' );
// Compare performance before and after a change
const impact = await chanl . analytics . compareTimeRanges ({
agent: 'agent-v1' ,
before: {
start: '2024-01-01' ,
end: '2024-01-15'
},
after: {
start: '2024-01-16' ,
end: '2024-01-30'
}
});
console . log ( impact );
/*
{
metric: "avgScore",
before: 85.2,
after: 89.7,
change: +4.5,
changePercent: +5.3,
significant: true
}
*/
Success Rate by Scenario
Identify which scenarios are most challenging:
curl https://api.chanl.ai/v1/analytics/scenarios \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"timeRange": "30d",
"sortBy": "successRate",
"order": "asc"
}'
{
"scenarios" : [
{
"name" : "Complex Technical Issue" ,
"successRate" : 72.3 ,
"avgScore" : 76.1 ,
"totalRuns" : 134 ,
"status" : "needs_improvement"
},
{
"name" : "Price Objection" ,
"successRate" : 86.7 ,
"avgScore" : 84.2 ,
"totalRuns" : 298 ,
"status" : "good"
},
{
"name" : "Simple Refund" ,
"successRate" : 96.4 ,
"avgScore" : 93.8 ,
"totalRuns" : 456 ,
"status" : "excellent"
}
]
}
Custom Reports
Creating Reports
Generate custom analytics reports:
const chanl = require ( '@chanl/sdk' );
const report = await chanl . analytics . createReport ({
name: "Weekly Quality Report" ,
timeRange: "7d" ,
metrics: [
"avgScore" ,
"successRate" ,
"totalCalls" ,
"alertCount"
],
groupBy: [ "agent" , "scenario" ],
filters: {
minScore: 0 ,
includeSimulations: true ,
includeLiveCalls: true
}
});
// Schedule recurring report
await chanl . analytics . scheduleReport ({
reportId: report . id ,
frequency: "weekly" ,
dayOfWeek: "monday" ,
time: "09:00" ,
recipients: [ "team@company.com" ]
});
Export Options
Export data for external analysis:
curl https://api.chanl.ai/v1/analytics/export \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"format": "csv",
"timeRange": "30d",
"metrics": ["score", "duration", "persona", "scenario"]
}' \
> analytics_export.csv
curl https://api.chanl.ai/v1/analytics/export \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"format": "json",
"timeRange": "30d",
"includeRawData": true
}' \
> analytics_export.json
curl https://api.chanl.ai/v1/analytics/export \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"format": "xlsx",
"timeRange": "30d",
"includeCharts": true
}' \
> analytics_export.xlsx
Real-Time Monitoring
Live Metrics
Monitor current performance in real-time:
const chanl = require ( '@chanl/sdk' );
// Subscribe to real-time metrics
const stream = chanl . analytics . stream ({
agents: [ 'agent-v1' ],
metrics: [ 'currentCalls' , 'avgScore' , 'alerts' ]
});
stream . on ( 'update' , ( data ) => {
console . log ( 'Current calls:' , data . currentCalls );
console . log ( 'Current avg score:' , data . avgScore );
console . log ( 'Active alerts:' , data . alerts . length );
});
stream . on ( 'alert' , ( alert ) => {
console . log ( '🚨 New alert:' , alert . message );
});
Best Practices
Review Daily
Check your dashboard every morning to catch issues early.
Set Baselines
Establish what “good” looks like for each metric so you can spot anomalies.
Track Trends, Not Points
Don’t panic over single data points. Look at trends over days or weeks.
Correlate Events
When you see changes in metrics, check what changed in your agent configuration.
Export Regularly
Keep historical exports for long-term analysis and reporting to stakeholders.
Troubleshooting
Missing data in dashboard
Problem : Analytics showing incomplete or no dataSolutions :
Verify agents are connected and active
Check if simulations or calls are actually running
Confirm date range filter includes relevant data
Try refreshing or clearing browser cache
Problem : Different dashboards showing different numbersSolutions :
Check time zone settings across dashboards
Verify filters are consistent
Ensure comparing same time ranges
Review what’s included (simulations vs live calls vs both)
Problem : Analytics taking too long to loadSolutions :
Reduce date range to last 30 days instead of all-time
Limit number of agents being analyzed
Use API with specific filters instead of UI
Contact support if performance issues persist
What’s Next?