Review every AI voice call and escalate the bad ones
Every hour on weekdays, we score each voice conversation for frustration and failure, then open a support ticket only when a call actually went wrong.
Every hour between 9am and 6pm, Monday through Friday, review the customer conversations my Hume EVI voice agent has just finished and escalate only the ones that went badly.
Start with Hume's List Chats operation to pull the EVI chats that ended in the last hour. Hume's list endpoints are paginated with a zero-indexed page number and a page size that defaults to 10 and maxes out at 100, so keep paging until you have the whole window rather than stopping at the first page. Skip chats that are still active, and only consider chats whose end time falls inside the last hour so consecutive runs do not re-review the same calls.
For each chat in the window, use Hume's List Chat Events operation to pull the full transcript: the caller's utterances, the voice agent's replies, and the emotion features Hume attaches to the caller's messages. Those emotion scores are the point here, so read them alongside the words instead of summarizing the text on its own.
Score each conversation on how it actually went. Look for the caller sounding frustrated, angry or confused, judged from both the emotion features and the wording. Look for the voice agent failing to answer a question or giving a non-answer. Look for the caller explicitly asking for a human, a person or an agent. Look for the same question being asked more than once because the first answer did not land. And look for the conversation hitting a dead end or cutting off without resolution. Combine these into a simple score, and treat a call as an escalation when it trips one serious signal such as an explicit request for a person, or several of the softer ones together.
Before escalating anything, make sure the same chat is never escalated twice. Include the Hume chat ID in every ticket you create, and use Zendesk's Search Tickets operation to check whether a ticket already references that chat ID. If one already exists, skip that call completely and do not post about it in Slack either.
For each conversation that scores badly and has not already been escalated, use Zendesk's Create Ticket operation to open a ticket. The ticket should carry a short plain-language summary of what went wrong, the caller's apparent emotional state, two or three key quotes from the transcript that show the problem, and a suggested next step for the support team. Tag it so the team can see at a glance that it came from a voice call, include the Hume chat ID so the call can be traced back, and set the priority to high whenever the caller explicitly asked to speak to a person. Otherwise leave it at normal priority.
Then post one message per escalated call to the support channel in Slack using the Send a Message operation. Keep it to a few lines: what went wrong, how the caller sounded, and a reference to the Zendesk ticket that was just created. One message per escalated call, not one per problem found inside a call.
Finish every run with a single short roll-up in the same Slack channel saying how many calls were reviewed and how many were escalated. When nothing was escalated, that roll-up should be the only message the run posts. Conversations that went fine must never create a ticket or a per-call Slack message, because this is only useful if the channel stays quiet when the voice agent is doing its job.
What does this prompt do?
- Checks in every hour during business hours and reviews every conversation your voice agent just finished, instead of spot-checking a handful by hand.
- Scores each call for the things that signal a bad experience: a frustrated, angry or confused caller, a question the agent could not answer, a request to speak to a person, or a conversation that dead ends.
- Opens a support ticket for the calls that went badly, carrying a short summary of what went wrong, how the caller sounded, the key quotes and a suggested next step.
- Posts each escalation to your support channel and closes the run with a short roll-up of how many calls were reviewed and how many need attention.
What do I need to use this?
- A Hume account running your customer conversations through its voice agent
- A Zendesk account where the support tickets should be created
- A Slack workspace and the channel your support team watches
How can I customize it?
- Change the schedule. Hourly between 9am and 6pm on weekdays suits a business-hours support line, but you can widen it to evenings and weekends or check less often.
- Decide what counts as a bad call. You can raise or lower the bar, or narrow it to the signals you care about most, such as callers explicitly asking for a person.
- Point the output wherever your team works, including which Zendesk group picks the tickets up and which Slack channel gets notified.
FAQs
Will this create a ticket for every call?
Can the same conversation get escalated twice?
How does it know the caller was frustrated?
What happens when someone asks to speak to a human?
Does this work if we handle a lot of calls an hour?
Related templates
See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.
One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.
Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.
Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.
Open one board each morning, see which voice calls went badly, replay the exact moment the caller got frustrated, and file the fix.
A personal queue of every overdue Guru card, sorted by how late it is, with one-click verify, reassign, comment, and an agent that drafts the refresh for you.
Stop spot-checking your voice calls.
Review every conversation your voice agent has and hear about the ones that went wrong within the hour, not at the end of the month.