Live monitoring
Monitor your calls in real time
A manager can silently listen to a live call, follow the transcript in real time and take over at any moment — ideal for training and quality.
Silent listening
Join a call in progress without being heard by the customer.
Live transcript
Follow the conversation word by word, in real time.
Take over
Step in or transfer the call to a human when needed.
How it works
1
Spot the call
See calls in progress on the dashboard.
2
Join to listen
Enter monitoring mode, unheard by the caller.
3
Step in if needed
Whisper to the rep or take over the call.
# A manager silently joins the live call to listen
curl -X POST https://api.phonevoice.ai/api/v1/calls/pc_8f2a91/add_monitor \
-H "Authorization: Bearer $PHONEVOICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "supervisor_phone": "+33644444444" }'
// The supervisor's phone rings and joins the live call to listen
await fetch(
"https://api.phonevoice.ai/api/v1/calls/pc_8f2a91/add_monitor",
{
method: "POST",
headers: {
Authorization: `Bearer ${process.env.PHONEVOICE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ supervisor_phone: "+33644444444" }),
}
);
import os, requests
# The supervisor's phone rings and joins the live call to listen
requests.post(
"https://api.phonevoice.ai/api/v1/calls/pc_8f2a91/add_monitor",
headers={"Authorization": f"Bearer {os.environ['PHONEVOICE_API_KEY']}"},
json={"supervisor_phone": "+33644444444"},
)
require "net/http"
require "json"
uri = URI("https://api.phonevoice.ai/api/v1/calls/pc_8f2a91/add_monitor")
req = Net::HTTP::Post.new(uri)
req["Authorization"] = "Bearer #{ENV['PHONEVOICE_API_KEY']}"
req["Content-Type"] = "application/json"
req.body = { supervisor_phone: "+33644444444" }.to_json
Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |h| h.request(req) }
Explore next
Ready to give your apps a voice?
Create your developer account and place your first call in minutes.