Monitoring quickstart
Overview
Monitoring lets you automatically track quality and detect issues across your voice AI agents. Instead of manually reviewing calls, you define monitors that continuously evaluate your call data against thresholds and alert you when something goes wrong.
What is monitoring?
Monitoring is Vapi’s automated quality and effectiveness system for voice AI. You create monitors that periodically evaluate call data using analytics queries (Insights), compare results against thresholds you define, and generate issues when those thresholds are exceeded. Your team receives alerts through notifiers, which are alert channels such as email, Slack, or webhooks, so you can investigate and resolve problems quickly.
Core concepts
- Monitors define what to watch, which assistants to target, and when to evaluate
- Triggers run on a schedule and evaluate call data against thresholds
- Issues are created when a threshold is exceeded and a trigger fires, tracking the problem from detection to resolution
- Notifiers are alert channels (email, Slack, or webhook) that deliver notifications to your team when issues are created
Monitor categories
Categories help you organize and route monitors. Technical and Infrastructure monitors currently share the same trigger options, so the metric either category evaluates is defined by the Insight attached to its trigger. Effectiveness and Compliance monitors use a separate evaluation flow based on call transcripts and structured outputs.
- Technical groups issues in your own integrations and configuration, such as API errors, provider outages, and timeouts
- Infrastructure groups platform-level issues, such as capacity and resource limits
- Effectiveness groups assistant performance metrics like task completion and user satisfaction
- Compliance groups regulatory and policy adherence across conversations
What you’ll build
In this quickstart, you will create a monitor that tracks error rates across your assistants and alerts you when the number of errors exceeds a threshold. You will then view an issue, analyze its root cause, and resolve it.
How it works
Create a monitor
Define a monitor targeting specific assistants or all assistants. Choose a category and set the monitor to active.
Define triggers
Configure triggers with schedules or intervals, thresholds, and severity levels. Each trigger references an Insight that defines the analytics query to run.
Triggers evaluate call data
On each scheduled interval, the trigger runs its Insight query against your call data and compares the result to the threshold you defined.
Issues are created
When a threshold is exceeded and a trigger fires, an issue is created with details about the affected calls, the trigger that fired, and the evaluation window.
Prerequisites
Sign up at dashboard.vapi.ai
Get a Vapi API key
You need existing assistants with call data for monitoring to detect issues. Monitors evaluate historical call data, so triggers will not fire until your assistants have processed calls.
Monitoring currently requires retained call data. Organizations using Zero Data Retention (ZDR) do not receive monitor evaluations because the required call logs are not retained.
Step 1: Set up notifiers
Notifiers are alert channels (email, Slack, or webhook) that send notifications when issues are detected. You configure them as credentials in the Dashboard.
Dashboard
cURL
You can create multiple notifiers to send alerts to different channels depending on the severity of the issue.
Webhook payload
When a webhook notifier is attached to a trigger, Vapi sends a single POST request the moment an issue is created. The body is the same envelope every time, wrapped in a message object:
Your endpoint should verify that each request actually came from Vapi. Configure authentication directly on the webhook notifier. The Dashboard supports OAuth 2.0 and bearer-token authentication for webhook notifiers.
Field reference
The webhook reports only the breach counts (totalCalls and failingCalls). It does not include per-call latency (such as p50 or p95), remaining concurrency, or the list of affected calls. To get the individual call IDs behind an issue, call GET /monitoring/issue/:id and read the calls array (see Step 3).
One webhook per issue
Vapi sends the webhook once, when the issue is first created. There are no issue.updated or issue.resolved webhooks. If the problem persists across evaluation windows, Vapi updates the same non-resolved issue with newly affected calls and does not send another webhook. After that issue is resolved, a later threshold breach creates a new issue and sends a new issue.created webhook. Acknowledging or resolving an issue happens in the Dashboard or via PATCH /monitoring/issue/:id and does not emit a webhook.
By default, delivery is attempted once per notifier. If a backoff plan is configured for the webhook notifier’s server, failed requests can be retried. The final delivery result is recorded in the issue’s alerts array, so a "failure" status there means the notification could not be delivered (see Troubleshooting).
Step 2: Create a monitor
Define a monitor that tracks error rates and alerts you when errors exceed a threshold.
Dashboard
cURL
Configure basic settings
- Name: Enter “Error Rate Monitor”
- Description: Add “Tracks API and provider errors across all assistants”
- Category: Select Technical
Choose target assistants
- Select All Assistants to monitor every assistant in your organization
- Alternatively, select Specific Assistants and choose individual assistants from the dropdown
The insightId references an Insight, which is an analytics query that defines
what data to evaluate. When you configure a monitor’s escalation thresholds in the
Dashboard, the Insight is created automatically. When using the API, you need to
create the Insight first and reference its ID here.
Managing monitors
View, edit, and delete all your monitors from the Monitors page in the Dashboard sidebar (under Observe).
Via the API:
GET /monitoring/monitor— list all monitorsPATCH /monitoring/monitor/:id— update a monitor’s targets, triggers, or thresholdsDELETE /monitoring/monitor/:id— remove a monitor
Targeting assistants
Setting "targets": "*" monitors all current and future assistants in your organization. Any assistant created after the monitor is set up is automatically included.
To monitor only specific assistants, pass an array of assistant IDs using the targets array. The id field is the assistant ID — the UUID you see in the Dashboard or get from GET /assistant.
Schedule-based triggers
Instead of an interval, you can use a calendar schedule for more precise control:
This trigger evaluates at 9:00 AM and 5:00 PM on weekdays.
Step 3: View issues
When a threshold is exceeded and a trigger fires, an issue is created. You can view and manage issues in the Dashboard or via the API.
Dashboard
cURL
Step 4: Analyze an issue
Use AI-powered root cause analysis to understand why an issue occurred and get actionable suggestions for fixing it.
Dashboard
cURL
Analysis results are cached for 1 hour. Subsequent requests within that window return the cached result immediately.
Use the callId values from the issue’s calls array to review specific call
logs and recordings for deeper investigation. Each call ID links directly to the
call details in your Dashboard.
Step 5: Resolve an issue
After investigating and fixing the underlying problem, acknowledge and resolve the issue to track your team’s response. Resolve an issue once you’ve deployed a fix and confirmed the problem no longer recurs — this signals to your team that the root cause has been addressed. Acknowledgment and resolution timestamps help measure your team’s incident response times.
Issues are a single shared resource. Status changes made in the Dashboard are immediately reflected in API responses, and vice versa. Your team can freely use both without conflicts.
Dashboard
cURL
Track acknowledgment and resolution times to measure your team’s incident response performance over time.
Troubleshooting
If an alert shows a "failure" status in the issue’s alerts array, the
notification delivery failed. Check your notifier configuration and ensure the
destination (email, Slack webhook, URL) is reachable.
Next steps
Configure monitors that evaluate on recurring intervals
Use structured outputs with effectiveness and compliance monitors
Visualize monitoring data and call metrics on dashboards
Test your assistants before deployment with automated evaluations
Get help
Need assistance? We’re here to help: