> ## Content Index
> Fetch the complete content index at: https://internalnote.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Closing the Resolution Loop with Custom Agents
- URL: https://internalnote.com/closing-the-resolution-loop/
- Published: 2026-08-20T14:05:05.000Z
- Updated: 2026-08-20T14:05:05.000Z
- Author: Thomas Verschoren
- Tags: Resolution Path

If you've been reading this blog for a while, the concept of resolutions shouldn't be new to you.

AI Automation makes it possible to handle conversations at a scale where just counting interactions becomes a less relevant way to measure your operational excellence. An automated workforce can handle ten, a hundred or a thousand conversations at once. Handling a thousand tickets is no longer an achievement by itself, but *how* you handled them becomes a crucial metric.

The same shift applies to other traditional support metrics. When AI Agents handle most of your conversations, first reply time can approach zero. At the same time, the complex conversations escalated to your team may take longer to resolve and push average handling time up.

So, if first reply time, average handling time and solved tickets no longer tell the full story, what should we measure instead?

![](https://storage.ghost.io/c/ca/c0/cac0c82b-bc4d-4404-9eb4-9cc75e8d045e/content/images/2026/08/Resolution-Learning-Loop.png)

The answer is the outcome of each interaction. Did we help the customer resolve their question? Did we complete the action they needed? And did we handle the conversation well?

That gives us two ways to improve: learning and prevention. Reporting looks backwards. It shows us where previous conversations fell short. From that we can learn how to improve the next thousand interactions based on the last thousand.

Prevention on the other hand looks at the interaction itself and catches gaps before they become closed tickets, repeat contacts or customer complaints. Proactive recommendations, real time reporting and insights, and looking for known gaps.

The goal is not simply to handle more conversations. It is to resolve every interaction well, using what we learn from the past to improve the next one and using automation to prevent avoidable gaps as they happen.

And if we want to measure, we need to review both the automated work done by AI Agents, and the unique work done by people. 

# Evaluating AI Agent performance

Across the platform there's a series of tools that help you measure how well your AI Agents are handling conversations and where your resolution rates are coming from.

## Resolution outcomes

![](https://storage.ghost.io/c/ca/c0/cac0c82b-bc4d-4404-9eb4-9cc75e8d045e/content/images/2026/08/Demo-1-3.png)

The starting point is the [AI Agent reporting dashboard](https://support.zendesk.com/hc/en-us/articles/9510024609178-Analyzing-AI-agent-performance-with-the-reporting-dashboard?ref=internalnote.com). It shows the number of conversations handled by your AI Agents and breaks them down into unassisted conversations, assisted escalations and automated resolutions.

Unassisted conversations are interactions where the AI Agent only provided basic system replies and did not perform meaningful automation. Assisted escalations are conversations where the AI Agent did some work before handing the interaction to a human agent.

Automated resolutions are divided into different resolution tiers. A contained resolution means the AI Agent handled the interaction to completion without the customer asking for further help. A verified resolution goes a step further: Zendesk's evaluation independently confirms that the interaction successfully resolved the customer's issue. 

[About automated resolution tiersAutomated resolutionsare the unit of measurement used for calculating and billing your account forAI agentusage. Paying per automated resolution means you pay only for customer requests tha…![](https://storage.ghost.io/c/ca/c0/cac0c82b-bc4d-4404-9eb4-9cc75e8d045e/content/images/icon/favicon-72d9b7c5-280b-44ec-803e-895e7328ab63.ico)ZendeskZendesk![](https://support.zendesk.com/static.zdassets.com/logo.png)](https://support.zendesk.com/hc/en-us/articles/9570369117338-About-automated-resolution-tiers?ref=internalnote.com)

You can read more about the automated resolution tiers in this support article .

These metrics each describe different things. An interaction can be unanswered because the AI Agent had no relevant knowledge or use case. It can be unresolved because the procedure could not complete the requested action, or because the conversation needed a human agent. An escalation is not automatically a failure, but it is a signal that needs investigation.

The main *automated resolution rate* is useful, but it is only the beginning. Drill into the results by use case, channel, language and knowledge source. This shows which procedures are generating automated resolutions, which ones regularly end in escalation, and which knowledge sources are helping or hurting performance.

This is the same operating logic I described in [Road to Automation](https://internalnote.com/road-to-automation/). Reporting is not just there to prove that automation is working. It helps you decide what to improve next. A high escalation rate may point to a missing use case, poor knowledge, an incomplete procedure or an action that failed part-way through the interaction.

[Road to AutomationLast months’ Relate event was all about Zendesk AI and how it can help you improve your CX or EX experiences. One of the key points notes not only in the main keynote, but also in sessions during the event was the concept of automation and automation rates for your tickets.![](https://storage.ghost.io/c/ca/c0/cac0c82b-bc4d-4404-9eb4-9cc75e8d045e/content/images/icon/internalnote_color@2x-fb68a7b8-c732-4e3a-9b48-f72e90074b59.png)Internal NoteThomas Verschoren![](https://storage.ghost.io/c/ca/c0/cac0c82b-bc4d-4404-9eb4-9cc75e8d045e/content/images/thumbnail/fb-deviceinfo-3-0e31ae71-2577-4615-8cd4-185ee46832ec.png)](https://internalnote.com/road-to-automation/)

## Conversation quality

There is another layer that is just as important: quality. A conversation can be counted as an automated resolution and still contain an incorrect answer, an incomplete process, poor tone or an unnecessary handoff.

[Zendesk QA can evaluate AI Agent conversations](https://support.zendesk.com/hc/en-us/articles/7418648293018-Evaluating-the-performance-of-AI-agents-using-Zendesk-QA?ref=internalnote.com) using the same kinds of scorecards used for human agents. Zendesk can automatically identify AI Agents on messaging channels, and you can configure whether each bot is reviewable. With AutoQA enabled, conversations can be scored across categories such as accuracy, tone, policy adherence and escalation behaviour. You can also review conversations manually when you need more context.

Use reporting to find the gap and QA to understand the cause. Then update the relevant knowledge, procedure, action or escalation path.

# Evaluating human agent performance

Human agents need a broader set of metrics because their work is not only about whether a conversation ended in a resolution. You also need to understand how much work is arriving, how efficiently it is being handled, how customers experience the interaction and whether the answer was complete.

A human resolution does not always need to be a yes. “We cannot refund this order because it is outside the refund period” can be a valid resolution if the agent explains the reason clearly and there is no remaining action for either side. A ticket however, is not resolved when the agent simply closes it without answering the question or explaining what happens next.

## Workload and efficiency

Start with the [Zendesk Support dashboard](https://support.zendesk.com/hc/en-us/articles/4408835846810-Analyzing-your-Support-ticket-activity-and-agent-performance?ref=internalnote.com) in Analytics. It gives you separate views for ticket volume, efficiency, assignee activity, unsolved tickets, backlog and satisfaction.

![](https://storage.ghost.io/c/ca/c0/cac0c82b-bc4d-4404-9eb4-9cc75e8d045e/content/images/2026/08/Demo-3-1.png)

The workload view helps you understand how much work is reaching the team and where it is accumulating. Look at tickets created, open and unsolved tickets, backlog trends, assignments and tickets solved by each group or agent. This tells you whether a performance problem is really an agent problem, or whether the team is dealing with a volume spike, poor routing or an uneven distribution of work.

The efficiency reports show first reply time, first resolution time, full resolution time, requester wait time and the number of replies required to solve a ticket. For messaging and omnichannel teams, the [Omnichannel agent productivity and queues dashboard](https://support.zendesk.com/hc/en-us/articles/5600291364378-Overview-of-the-omnichannel-agent-productivity-and-queues-dashboard?ref=internalnote.com) also includes average handle time, queue volume and agent capacity.

Average handling time is useful, but it should never be treated as a target in isolation. A lower handling time might mean that agents are working efficiently. It might also mean that they are closing tickets too quickly, giving incomplete answers or transferring difficult conversations elsewhere. Pair it with full resolution time, reopen rates, the number of replies, CSAT and QA results.

CSAT gives you the customer's perspective. The Satisfaction tab in Explore shows the overall satisfaction score, good and bad ratings, the rated ratio and satisfaction by channel, group, priority or ticket type. Use this to find patterns rather than to judge individual conversations from a single score. A low CSAT score can be caused by an unpopular policy, a delayed delivery or a product problem that the agent cannot fix.

## Quality and sentiment

This is where [Zendesk QA](https://support.zendesk.com/hc/en-us/articles/7043701144858-About-dashboards-in-Zendesk-QA?ref=internalnote.com) becomes important again. Manual reviews help you assess complex conversations and provide coaching. AutoQA reviews a much larger sample and can identify recurring issues across the team. The [AutoQA dashboard](https://support.zendesk.com/hc/en-us/articles/9019507481242-Understanding-the-AutoQA-dashboard?ref=internalnote.com) shows quality performance by agent and category, including the Auto Quality Score, modified reviews and root causes such as tone or spelling problems.

Sentiment adds another useful signal. Intelligent triage can classify tickets by topic, language and sentiment, while QA can analyse the emotional tone of conversations itself. Use sentiment to identify trends, not as a verdict on an agent. Negative sentiment may reflect a serious underlying issue that the agent handled correctly. A neutral conversation can still contain an inaccurate or incomplete answer. The most useful view combines sentiment with CSAT, QA and resolution data.

# Improving future resolutions

Once you understand the patterns, use Zendesk's recommendations to decide what to change. Admin Copilot can suggest workflow improvements, macro changes, QA configuration, high-takeover procedures and new AI-generated procedure drafts. Intelligent triage can recommend new topics where your existing topic model has gaps or conflicts.

[Introducing Admin Copilot. Keep your Zendesk on target.Zendesk Admin Copilot turns admins from manual configuration hunters into strategic operators. It surfaces account-specific insights, recommends fixes, and helps execute changes with approval, closing the loop between data, AI, and action.![](https://storage.ghost.io/c/ca/c0/cac0c82b-bc4d-4404-9eb4-9cc75e8d045e/content/images/icon/internalnote_color@2x-7cd430f6-2c03-42a8-ac7e-919549eeea74.png)Internal NoteThomas Verschoren![](https://storage.ghost.io/c/ca/c0/cac0c82b-bc4d-4404-9eb4-9cc75e8d045e/content/images/thumbnail/Banner---2026-01-Agentic-7-e0e8a8a2-4d3e-4bc6-90a4-0e6520eb7812.png)](https://internalnote.com/introducing-admin-copilot/)

Knowledge Copilot extends this approach into Knowledge admin. It can surface gaps in coverage, freshness and AI readability, and help generate article and procedure drafts from ticket data. Review the generated content carefully before publishing it.

![](https://storage.ghost.io/c/ca/c0/cac0c82b-bc4d-4404-9eb4-9cc75e8d045e/content/images/2026/08/Demo-4-1.png)

Finally, check whether agents are actually using the tools you have built for them. The *Zendesk Copilot: Agent productivity dashboard* shows usage and acceptance of auto assist, AI suggestions and generative tools.   
If a procedure is rarely used, the problem might be discoverability, trust or poor procedure quality. If it is used frequently but does not improve handling time, CSAT or QA scores, it may be saving clicks without improving the resolution itself.

This is how reporting improves the next thousand interactions. But reporting is still looking backwards. It tells you what went wrong after the conversation has already ended.

# Preventing incomplete resolutions

Multi-intent handling helps AI Agents recognise and resolve several questions in the same interaction. This removes one of the most obvious causes of partial resolutions.   
But recognising multiple intents does not guarantee that every thread is completed.

[Multiple intent handling for AI Agents AdvancedZendesk AI Agents now handle multiple intents in a single customer message, resolving each question one by one across both messaging and email. This upgrade reduces failures, avoids unnecessary escalations, and delivers clearer, more complete responses with no setup required.![](https://storage.ghost.io/c/ca/c0/cac0c82b-bc4d-4404-9eb4-9cc75e8d045e/content/images/icon/internalnote_color@2x-afc78629-ceeb-4697-b680-64db48eaf26e.png)Internal NoteThomas Verschoren![](https://storage.ghost.io/c/ca/c0/cac0c82b-bc4d-4404-9eb4-9cc75e8d045e/content/images/thumbnail/Banner---2025-12-WEB-WIDGET-5-685ddc5a-97cc-4d63-b4df-87f31b9f2eff.png)](https://internalnote.com/multiple-intent-handling-for-ai-agents-advanced/)

A customer might ask a small question in the middle of a complex interaction. An agent might promise to check something and never return with the answer. A customer might hint at a deeper problem without stating it directly. The main request gets resolved, the ticket is marked Solved, and the unanswered part disappears into the conversation history.

Let's imagine a customer that submits one ticket with three questions:

> Where is my order?  
> Does this product exist in orange?  
> What are your opening hours?

The agent answers two of the three and solves the ticket. The customer now has to reach out again, or quietly gives up. Nothing in the standard workflow or product currently flags the gap, we only notice the customer reopening the ticket or complaining after the fact.

For an AI Agent, this type of gap often points to missing knowledge, an unknown use case or a procedure that did not complete. Things we'll notice in reporting and can fix structurally.   
For a human agent, it is usually more indirect: a question was forgotten, a promise was not followed up or the conversation was closed before the customer received a complete answer. Mistakes happen, in the end, we're all humans sitting behind a screen.

That is where a **Custom Agent** can act as a safety net. You can build an agent that runs whenever a human agent marks a ticket as Solved. While there is still a window to react before the ticket becomes Closed or the customer has time to complain. That agent then reads the full conversation and checks whether the interaction actually covered everything the customer asked.

The Custom Agent should look for both unanswered and unresolved elements like:

- Was every question answered?
- Was every promised action completed?
- If the answer was no, was the reason explained clearly?
- Is there a remaining step for the customer or the support team?
- Did the customer mention another issue that was never addressed?

The role of the Custom Agent is not to reply to the customer or to try and resolve the issue by itself. If it finds a gap, it reopens the ticket and adds an internal note explaining what was missed. It can also suggest a response or next action, so the agent picking up the ticket knows exactly where to continue, but its Agent Copilot and people handling the conversation.

## Building a post-solve audit agent

For this tutorial, a Custom Agent reviews every ticket solved by a human agent. It does not need to review [AI Agent tickets](https://internalnote.com/ai-agent-tickets-in-agent-workspace/) because those conversations already have their own reporting and QA flows and are *currently* read only anyhow.. You could also choose to exclude specific groups or use cases if the audit does not make sense for them.

The flow is a handoff between two building blocks: An Action Flow that gets triggers, and a Custom Agent that runs the audit logic.

### Custom Agent

The Custom Agent has a quite straightforward instruction set:

> Take a look at all the `List ticket comments.`   
>  
> Analyse the conversation and check if their are open items that are not addressed yet.  
> If you find open items that are not addressed or answered, list them in an internal note and set the ticket status to open.  
>  
> The same goes for items we promised but did not follow-up on or proofed the result.   
>  
> For example:  
> A customer asks about a refund, opening hours and availability.  
> We only answer the refund and availability questions. This leaves a solved ticket with an open question about opening hours.  
> Or we tell the customer he's eligible for the refund, but nowhere in the conversation do we address actually refunding them.

First we retrieve all comments via a native Zendesk Action and we tell the Custom Agent to analyse the conversation. 

If every item in the conversation is covered, the Custom Agent exits without changing the ticket. If it finds a gap, it performs two actions:

1. Reopens the ticket.
2. Adds an internal note naming the unanswered question, incomplete resolution or missed commitment.

![](https://storage.ghost.io/c/ca/c0/cac0c82b-bc4d-4404-9eb4-9cc75e8d045e/content/images/2026/08/Custom-Agent-1.png)

![](https://storage.ghost.io/c/ca/c0/cac0c82b-bc4d-4404-9eb4-9cc75e8d045e/content/images/2026/08/Custom-Agent-2.png)

Reopening the ticket gives the normal routing process another chance to do its job. With [Omnichannel Routing](https://support.zendesk.com/hc/en-us/articles/4828787357210-Managing-your-omnichannel-routing-configuration?ref=internalnote.com) configured to reassign reopened tickets, the ticket can be sent back through the routing queue and assigned to the best available agent. The internal note provides the context, so the new agent does not need to reread the entire conversation to discover what was missed.

There is no need for a separate notification to the customer at this point. The Custom Agent is an internal quality check. The assigned agent decides how and when to continue the conversation.

### Action Flow

An [Action Flow](https://support.zendesk.com/hc/en-us/articles/8855601898266-Creating-action-flows-to-automate-processes-across-Zendesk-and-external-systems?ref=internalnote.com) watches for a ticket event, such as the status changing to Solved. It does not perform the analysis itself. It simply sends the ticket to a Custom Agent designed for this one job.

![](https://storage.ghost.io/c/ca/c0/cac0c82b-bc4d-4404-9eb4-9cc75e8d045e/content/images/2026/08/Flow-1.png)

![](https://storage.ghost.io/c/ca/c0/cac0c82b-bc4d-4404-9eb4-9cc75e8d045e/content/images/2026/08/Flow-2.png)

The flow should only run when the status changes to Solved, not every time the ticket is updated. If the agent resolves the ticket again after reviewing the internal note, the Custom Agent can rerun its logic, and hopefully finds a fully resolved conversation this time.

That is the whole build: one Action Flow to catch the moment, and one Custom Agent to inspect the conversation and update the ticket when something was missed.

![](https://storage.ghost.io/c/ca/c0/cac0c82b-bc4d-4404-9eb4-9cc75e8d045e/content/images/2026/08/Customer-1-2.png)

![](https://storage.ghost.io/c/ca/c0/cac0c82b-bc4d-4404-9eb4-9cc75e8d045e/content/images/2026/08/Customer-3-1.png)

## Working beside the conversation

Most of what you hear and read about AI Agents in Zendesk is about agents that talk to customers. They live inside the conversation, answer questions, execute actions and resolve tickets, autonomously or while assisting your team in a Copilot role.

This Custom Agent is a different shape. The audit agent never talks to a customer directly. It sits beside the conversation and checks the work after the agent has finished, similar to how QA analyses the quality of your work.

That makes it useful for more than forgotten questions. The same pattern can look for a sales intent and create a lead in your Sales CRM. Or it can look for feature requests and automatically add them to your User Voice lists. Having an agent that runs alongside a conversation and looks for specific intents or actions is useful across your entire operation.

It is the support equivalent of proofreading an article before a reader finds the spelling mistake. The QA, CSAT and resolution metrics still tell you whether the operation is working. This check gives you a chance to fix one conversation before it becomes part of those metrics.

It's just one example of how you can leverage Custom Agents to improve your customer and employee service experience in more ways than just answering the customer directly. 

# Closing the Resolution Loop

Custom Agents add a modular layer to the Resolution Platform. They can reason over conversation context, use knowledge and actions, call other agents, inspect attachments and update tickets. More importantly, they let you extract one piece of business logic from a large process and reuse it wherever it is needed.

They are one part of the wider learning loop. [Admin Copilot](https://internalnote.com/introducing-admin-copilot/) turns account activity into insights and recommendations, then helps admins apply the right fixes. [Knowledge Copilot](https://internalnote.com/knowledge-connectors/) does the same for the knowledge base by surfacing gaps in coverage, freshness and AI readability, and helping create the articles and procedures needed to close them.

At Relate 2026, Zendesk showed where the analytics side is heading with [Agentic Analytics and Analyst Copilot](https://internalnote.com/zendesk-relate-2026-proactive-copilots/). The idea is to move beyond manually interpreting separate reports and make it easier to ask why a metric changed, understand the causes and decide what to do next.

Reporting helps us learn from the previous thousand interactions. Custom Agents help prevent drops and gaps in the next one. Copilots turn those signals into fixes, while Agentic Analytics will make the learning loop easier to explore.

The goal remains the same throughout: resolve every interaction well, then use what happened to make the next resolution better.

## Sign up for Internal Note

Turning Zendesk into practice. – A weekly newsletter written by Thomas Verschoren.

Subscribe 

Email sent! Check your inbox to complete your signup. 

No spam. Unsubscribe anytime.