Voice agent QA review board for your Hume EVI calls
Open one board each morning, see which voice calls went badly, replay the exact moment the caller got frustrated, and file the fix.
Build me a QA review board for our Hume EVI voice deployment. Our support quality lead should open this every morning instead of clicking through the Hume portal. This is a browsing and drill down surface for a human reviewer, not an automation: nothing in it runs on a schedule, nothing escalates on its own, and the only work that happens is work the reviewer presses a button to start.
The main view is a table of recent EVI conversations. Pull them with the Hume List Chats operation, and use List Chat Groups so a conversation that spans several resumed sessions is recognizable as one thread rather than showing up as unrelated rows. Each row shows the start time, the call duration, the number of turns, the EVI config that handled the call, and a rolled up expression signal. Resolve config identifiers to readable names using List EVI Configs rather than showing raw ids. Default the sort so the roughest calls are at the top, and let the reviewer re-sort by any column.
The rolled up expression signal is the heart of the queue and should be computed from the emotion features that Hume attaches to each transcript event. Read the chat events for a call, look at the expression measures on the caller's turns, and roll the negative ones such as frustration, anger, confusion, distress and disappointment into a single score for the call, with a peak value as well as an average so a call that was mostly fine but had one terrible moment still surfaces. Because this requires fetching events per call, do not recompute it on every page load. Compute it lazily in the background as rows come into view, cache the result in the app's own storage keyed by chat id, and show a quiet placeholder on rows not scored yet. A call's events never change once it has ended, so a cached score never needs invalidating.
Clicking a row opens the call detail. Build a transcript timeline from List Chat Events, showing each user and assistant turn in order with its timestamp. Next to every turn, display the vocal expression measures attached to that turn, showing the few strongest emotions rather than dumping the full measure set, and visually mark the turns where negative expression spikes relative to the rest of the call. The goal is that a reviewer can scroll the timeline and see exactly where the caller got frustrated, and what the assistant said immediately before and after.
The detail view also has an audio player fed by Get Chat Audio. Bake in that Hume chat audio is asynchronous: that operation returns a status of QUEUED, IN_PROGRESS, COMPLETE, ERROR or CANCELLED, and a signed audio URL is only present when the status is COMPLETE. So the player must show a pending state for QUEUED and IN_PROGRESS, with a re-check so the reviewer can see when it becomes ready, and only offer real playback once the status is COMPLETE and a signed URL exists. For ERROR and CANCELLED, show a plain message saying the recording is not available for this call instead of leaving a spinner running forever. Treat the signed URL as short lived: fetch it when the reviewer opens the call rather than storing it and serving a stale link later.
Add a "Review this call" button on the detail view that kicks off a background agent for that one call. The agent reads that call's chat events including the per turn expression measures, pinpoints the specific turn where sentiment turned, judges whether the assistant recovered the conversation afterward or made it worse, and writes back a short QA verdict of a few sentences plus one concrete suggested prompt fix for the EVI config that handled the call. Its output lands in the app's storage against that chat and displays on the queue row, so the reviewer can see at a glance which calls have been looked at and what the verdict was. This runs on demand only, one call at a time, when the button is pressed. It never runs on a schedule and it never files or posts anything by itself.
From a reviewed call, give the reviewer two follow up actions. "File issue" opens a Linear issue using Create Issue, with a title naming the problem, and a description containing the QA verdict, the suggested prompt fix, and the excerpt of the transcript around the turn where sentiment turned, so the issue is readable without opening this app. Let the reviewer pick the destination team, populated from List Teams. "Share" posts the call summary and verdict into a Slack channel using the Slack Bot Send a Message operation, with the channel chosen from List Channels. After either action, store the resulting issue link or the fact that it was shared on the call, and show that on the row so the same call does not get filed twice.
Make the queue drainable. Let the reviewer mark a call as reviewed, filter to unreviewed only, and filter by EVI config and by date range. Persist reviewed state, the agent's verdict and suggested fix, and any filed issue link in the app's own storage keyed by chat id, so all of that survives across sessions and is never lost just because the call is old. Default the board to the last seven days of unreviewed calls, since that is what someone opening it in the morning actually wants.
One API detail to handle correctly: Hume list endpoints are zero indexed and paginated with a page size of at most 100, returning a page number and total page count. Page through properly when loading the queue and when reading a long call's events, rather than assuming the first page is everything.
What does this prompt do?
- Puts every recent voice conversation in one sortable queue showing when it started, how long it ran, how many turns it took, which voice agent setup handled it, and an overall read on how tense the call felt, so the roughest calls sit at the top
- Opens any call into a turn by turn timeline where each thing the caller and the assistant said sits next to the emotion detected in the caller's voice at that moment, so you can see exactly where things went wrong rather than guessing from the words alone
- Plays the original call audio right in the page, with a clear waiting state while the recording is still being prepared and playback offered as soon as it is ready
- Reviews a call on request: an assistant reads the conversation, pinpoints the turn where the caller's mood turned, says whether the agent recovered, and writes a short verdict plus a suggested wording fix that shows up on the row
- Files a problem call to your issue tracker with the relevant part of the transcript attached, shares the summary to a chat channel, and marks calls as reviewed so the queue actually empties
What do I need to use this?
- A Hume account running voice agents, with calls already in your history
- A Linear workspace where problem calls should be filed as issues
- A Slack workspace with a channel for sharing call summaries
- Someone who owns voice agent quality and will work through the queue, typically a support or quality lead
How can I customize it?
- Change what counts as a rough call, so the sort puts the calls you care about on top rather than only the loudest ones
- Set which date range and which voice agent setups the board opens on, so a reviewer lands straight in their own queue
- Pick the issue tracker team that receives filed calls and the chat channel that receives shared summaries
- Adjust what the review assistant is asked to judge, from tone and recovery to whether a specific policy was followed
FAQs
How is this different from an alert that tells me when a call goes badly?
Why can I not play the audio right away on some calls?
Does anything get filed or posted automatically?
What does the emotion reading actually show me?
Will the queue keep growing forever?
Related templates
Stage a batch of filings overnight, then approve each completed form from a screenshot before anything is ever submitted.
Pick a client and a date range to see sent, replies, meetings booked and the real deal value your cold email produced, campaign by campaign.
A board that ranks the people who opened three or more separate support conversations this month, reads their threads, and files the real fix.
Review every conversation Fin closed as resolved, judge which ones actually stuck, and see what the gap is worth against your bill.
Merge your IT, HR and Facilities queues into one list ranked by SLA time left, then reply, change status and escalate without ever opening Jira.
See every page's translation status at a glance, edit translations side by side with the English, and publish only what your team has actually approved.
Stop clicking through the voice portal to find the bad calls.
Give your quality lead one board with the queue, the emotion timeline, the audio, and a one press review on every call.