Voice Agent Call Monitoring
Learn how to use Hamming AI to evaluate your AI voice agent calls in production
What Voice Agent Call Monitoring gives you
Voice Agent Call Monitoring help you monitor the health and reliability of your AI voice agents in production against real customer calls. It helps you answer questions like:
- What’s the current health of my system?
- Are there performance anomalies over time?
- Should I scale resources or fallback to a different service provider based on observed latency or error trends?
- Which calls are failing and why?
- How are users interacting with the voice agent over multiple calls?
- Where do users drop off in the call flow?
- Do changes to the prompt or model correlate with better outcomes?
- How do I find calls where the customer is upset? (i.e. high frustration Hume scores)
Set up Voice Agent Call Monitoring
For Retell and Vapi agents, it’s a few clicks to set up monitoring. For custom agents, you can send call recordings to Hamming via a webhook.
Retell Agent Monitoring
If you use Retell to run voice agents, follow this tutorial.
VAPI Agent Monitoring
If you use VAPI to run voice agents, follow this tutorial.
Custom Agent Monitoring
If you use a custom agent like OpenAI’s real-time API, LiveKit, Pipecat, etc. follow this tutorial.
Retell Voice Agent Monitoring
The setup process is different depending on whether you’re already using Retell’s webhook or setting up a new one from scratch.
If you’re already using Retell’s webhook, you can set up monitoring in a few clicks.
Set up your .env file
Set up a Hamming API Key by going to hamming.ai/settings and selecting Create a new secret key at the top. Then, add the API key to your .env file as shown in the code snippet below.
Send in the Retell post-call payload to Hamming
You can send in the Retell post-call payload to Hamming by sending a POST request to https://app.hamming.ai/api/rest/v2/call-logs
with the following body:
Sample NodeJS server to send the payload to Hamming while consuming it for your own purposes:
Monitor Calls
Once you’ve started sending the payload to Hamming, Hamming will log all inbound and outbound phone calls and generate Hume scores, providing valuable insights into the performance and sentiment of the calls.
VAPI Voice Agent Monitoring
The setup process is different depending on whether you’re already using VAPI’s webhook or setting up a new one from scratch.
If you’re already using VAPI’s webhook, you can set up monitoring in a few clicks.
Set up your .env file
Set up a Hamming API Key by going to hamming.ai/settings and selecting Create a new secret key at the top. Then, add the API key to your .env file as shown in the code snippet below.
Send in the VAPI post-call payload to Hamming
You can send in the VAPI post-call payload to Hamming by sending a POST request to https://app.hamming.ai/api/rest/v2/call-logs
with the following body:
Sample NodeJS code to send the payload to Hamming while consuming it for your own purposes:
Monitor Calls
Once you’ve started sending the payload to Hamming, Hamming will log all inbound and outbound phone calls and generate Hume scores, providing valuable insights into the performance and sentiment of the calls.
Custom Agent Monitoring
If you’re using OpenAI’s real-time voice agent or other custom voice agents, you can send call recordings to Hamming via a webhook.
Set up your .env file
Set up a Hamming API Key by going to hamming.ai/settings and selecting Create a new secret key at the top. Then, add the API key to your .env file as shown in the code snippet below.
Send call recordings to Hamming
If you just have the recorded calls and no diarized transcripts, you can send just the call recordings to Hamming via a webhook:
provider
should be set tocustom
.call_id
is a unique identifier for the call.recording_url
is the URL of the call recording. For private recording URLs, we’d need a token to access it.metadata
is a key-value pair that you can use to store any additional information about the call.from_number
is the caller’s phone number.to_number
is the callee’s phone number.start_timestamp
is the start time of the call, in milliseconds.end_timestamp
is the end time of the call, in milliseconds.status
is the status of the call. (ended
orerror
).transcript
is the transcript of the call (optional).
(Optional) Send the transcript with the tool calls
Sending the transcripts with the tool calls allows us to measure what is done (function calls) in addition to what is said.
If you have the transcript with the tool calls, you add the transcript to the payload object with the following type:
Example payload with transcript:
start
is the start time of the message, in milliseconds.
The remaining fields match the OpenAI’s API Spec.
Monitor Calls
Once calls are made, they will be logged in Hamming and you will see Hume scores, providing valuable insights into the performance and sentiment of the calls.