Ticket auto-categorize
New tickets get a category and priority assigned automatically within seconds of creation.
When a ticket is created — manually, from a form, from email-in, from chat-to-ticket — and you have at least two categories defined, this feature classifies it and (optionally) sets its priority.
How it works
- Ticket is created. Its
createdevent dispatches a queued background job. - The job sends Claude Haiku the subject, the description, and the list of your existing category slugs.
- Claude returns a JSON answer: a category slug, a priority, and a confidence value (0.0–1.0).
- The job applies the result, only filling in fields the agent left empty:
- If the ticket already has a category, we don't override.
- If the ticket has a priority other than
normal, we don't override. - For priority, we only fill in if confidence ≥ 0.6.
The job runs asynchronously so ticket creation isn't blocked on Anthropic latency. The categorized result appears moments later in the ticket page (refresh once).
When it skips
- The category list is empty or has fewer than 2 entries (no point classifying into a list of one).
- The ticket was created with both category and a non-default priority — agent input takes precedence.
- The workspace has the feature toggle off.
- The daily AI budget cap is exhausted.
Cost
A typical call is ~500 input tokens + ~30 output tokens — well under $0.001 per call. Even with hundreds of tickets a day you'd struggle to hit a daily budget meant for the whole suite.
Where you see it
- Tickets that were auto-categorized show their assigned category and priority in the inbox immediately. There's no "AI-set" badge — once written, the fields look like any other.
- The
ai_callslog records each call withfeature: ticket_categorizeand the subject morph linked to the ticket.
When NOT to enable
- Single-category workspace — nothing to classify.
- Highly specialized categories — if your category list is technical jargon the LLM won't reliably distinguish ("API v2 vs API v3 issue"), you'll get noisy predictions. Use it as an inbox-only inbox triage; humans do final categorization.
- Strict privacy — if you can't send ticket bodies to a third-party LLM, leave it off.
When it's most useful
- High volume of incoming tickets, especially from email-in where customers don't pick categories themselves.
- Stable category set that's been around long enough that an LLM can recognize the patterns.
- A team that does routing by category — auto-categorization saves the triage step.