# 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.

- Workflow type: agent
- Services: Hume, Zendesk, Slack Bot
- Categories: Customer Support, Operations
- Published: 2026-08-14

## What it does

- 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 you'll need

- 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

## Prompt

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.

## How to customize

- 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.

## FAQ

### Will this create a ticket for every call?

No. Calls that went fine are reviewed and then left alone, with no ticket and no Slack message. Only conversations that score badly get escalated, so your queue and your channel stay quiet when the voice agent is doing its job.

### Can the same conversation get escalated twice?

No. Each conversation is recorded on the ticket it creates, and before escalating anything the workflow checks whether a ticket already exists for that call. If one does, it skips it, so overlapping runs never produce duplicates.

### How does it know the caller was frustrated?

Hume captures emotional signals alongside what was actually said during the call. The review reads those signals together with the wording of the conversation, so a caller who sounds annoyed while saying polite words is still picked up.

### What happens when someone asks to speak to a human?

That is treated as a serious signal. The call is escalated and the ticket is set to high priority so your team sees it ahead of the rest, with the quotes showing exactly where the caller asked.

### Does this work if we handle a lot of calls an hour?

Yes. Each run works through the full hour of conversations rather than just the most recent few, so busy periods are reviewed as completely as quiet ones.

Use this prompt in General Input: https://www.generalinput.com/prompts/review-every-ai-voice-call-and-escalate-the-bad-ones