Extend Ticket Categorizer AI Agent to Utilize Category Descriptions for Improved Accuracy


Please note: This text was written with the assistance of an AI, as I am not a native English speaker. I apologize for any linguistic inaccuracies or awkward phrasing.


  1. What is your original issue/pain point you want to solve?
    The Ticket Categorizer AI agent currently only uses the content of all articles and the ticket title to match against category names. While there is a description field for categories, this information is not passed to the AI agent (AI Agents — Zammad Admin Documentation documentation). As a result, if internal or domain-specific terms are used as category names, the AI lacks the necessary context to make accurate assignments. This often leads to miscategorization or nonsensical outputs, especially when category names are not self-explanatory.

  2. Which are one or two concrete situations where this problem hurts the most?

  • Internal Terminology: If category names use internal abbreviations or jargon, the AI cannot infer the correct meaning without access to the description, leading to incorrect ticket routing.
  • Granular Routing: In complex workflows, tickets need to be routed to specific teams or individuals based on nuanced criteria. Without the ability to include category descriptions in the AI’s decision-making process, it cannot distinguish between similar-sounding categories (e.g., “Order” vs. “Special Company Order”).
  1. Why is it not solvable with the Zammad standard?
    While it is technically possible to work around this limitation by using the Zammad API to fetch tickets, process them with a custom Python script (using if-else logic or additional API calls to an external AI with custom prompts), and then manually assign them, this approach has several drawbacks:
  • Maintenance Overhead: The custom solution requires ongoing maintenance and is not scalable. If I am on vacation or unavailable, another team member would need to understand and maintain the entire custom codebase, which is inefficient and error-prone.
  • Lack of Integration: This workaround is not integrated into Zammad’s native workflow, making it cumbersome to manage and less reliable.
  • Complexity: It introduces unnecessary complexity and potential points of failure, especially when compared to a clean, native solution.A native solution within Zammad would be much cleaner, more maintainable, and easier for the entire team to use.
  1. What is your expectation/what do you want to achieve?
  • Include Category Descriptions in AI Processing: Modify the Ticket Categorizer AI agent to include the description field of categories as part of its input. This would provide the AI with the necessary context to make accurate categorization decisions.
  • Optional Expert Mode: Introduce a toggleable expert mode for advanced users. This mode would allow users to manually edit or enhance the prompts sent to the AI, providing even more granular control over ticket categorization. For less technical users, this feature could remain hidden or disabled by default.
  • AI-Assisted Prompt Generation: Offer an optional AI-powered tool to help users generate effective descriptions or prompts for their categories, making it easier for all users to benefit from this feature.

Additional Information:

  • This feature would significantly improve the accuracy of ticket routing, especially in environments with complex or domain-specific workflows.
  • It aligns with the trend of making AI tools more customizable and powerful for users who need granular control, while keeping the default experience simple for basic users.

Your Zammad Environment:

  • Average concurrent agent count: 32
  • Average tickets a day: 500
  • Roles/people involved: Sales

Should be working now with this bug fix.
The description at this place was added to be used by the AI-Agent, because of you described the situation.

About the more advanced stuff, I think this is something that we want to add on the way, so that you can more or less add some custom/expert mode.

1 Like