Auto-triage and tag Zendesk tickets using native triggers
Prerequisites
- Zendesk account on Team plan or above (triggers are not available on the Essential plan)
- Groups configured in Zendesk for each topic area your support team handles
Why Zendesk native?
Zendesk triggers are the simplest, fastest, and cheapest way to triage tickets. They fire instantly when a ticket is created — zero delay, zero cost, zero external dependencies. You define keyword conditions and Zendesk handles the rest. For teams where 80%+ of tickets contain clear topic keywords, triggers alone handle triage reliably.
The trade-off is classification accuracy. Triggers match exact strings, so "my parcel never showed up" won't match a "shipping" keyword trigger unless you add every possible phrasing. For tickets that slip through keyword matching, pair triggers with the Claude Code approach to catch the rest.
How it works
- One trigger per topic fires when a new ticket's subject or description contains topic keywords
- Tag + group assignment in each trigger's actions classifies the ticket and routes it to the right team
- Catch-all trigger at the bottom of the trigger list tags anything that no topic trigger matched
- Trigger ordering controls which group assignment wins when a ticket matches multiple topics
Step 1: Define your topic-to-keyword mapping
Before building triggers, map each support topic to the keywords that signal it. Here's a practical starting set:
| Tag | Keywords |
|---|---|
topic-billing | invoice, charge, billing, payment, receipt, subscription, refund, pricing |
topic-shipping | tracking, delivery, shipping, package, lost, delayed, transit, shipment |
topic-product | broken, defective, doesn't work, quality, size, color, damaged, wrong item |
topic-account | password, login, account, access, locked out, sign in, reset, two-factor |
topic-technical | error, bug, crash, not loading, API, integration, timeout, 500 |
Keep it to 5 topics initially. You can always add more once the basics are running.
Step 2: Create groups in Zendesk
Navigate to Admin Center → People → Teams → Groups. Create one group per topic:
- Billing Support
- Shipping Support
- Product Support
- Account Support
- Technical Support
- General Support (for unmatched tickets)
Assign at least one agent to each group so tickets can be routed.
Step 3: Create the first trigger (Billing example)
Navigate to Admin Center → Objects and rules → Business rules → Triggers. Click Add trigger.
Trigger name: Triage: Billing
Conditions — Meet ANY of the following:
| Condition type | Field | Operator | Value |
|---|---|---|---|
| Ticket | Subject text | Contains the following string | invoice |
| Ticket | Subject text | Contains the following string | charge |
| Ticket | Comment text | Contains the following string | billing |
| Ticket | Comment text | Contains the following string | payment |
| Ticket | Comment text | Contains the following string | receipt |
| Ticket | Comment text | Contains the following string | subscription |
Under "Meet ALL of the following," add:
| Condition type | Field | Operator | Value |
|---|---|---|---|
| Ticket | Ticket | Is | Created |
Actions:
| Action | Value |
|---|---|
| Add tags | topic-billing |
| Group | Billing Support |
Click Create trigger.
Set the keyword conditions under the ANY block. A ticket mentioning "invoice" alone should get the billing tag — it doesn't need to also mention "payment." The "Ticket is Created" condition belongs in the ALL block so the trigger only fires on new tickets.
Step 4: Create triggers for remaining topics
Repeat the same pattern for each topic. Here are the keyword sets to use:
Triage: Shipping
- Subject/comment keywords: tracking, delivery, shipping, package, lost, delayed, transit, shipment
- Tag:
topic-shipping - Group: Shipping Support
Triage: Product
- Subject/comment keywords: broken, defective, doesn't work, quality, size, color, damaged, wrong item
- Tag:
topic-product - Group: Product Support
Triage: Account
- Subject/comment keywords: password, login, account, access, locked out, sign in, reset, two-factor
- Tag:
topic-account - Group: Account Support
Triage: Technical
- Subject/comment keywords: error, bug, crash, not loading, API, integration, timeout
- Tag:
topic-technical - Group: Technical Support
Each trigger follows the same structure: ALL conditions include "Ticket is Created," ANY conditions list the keywords, and actions add the tag and set the group.
Step 5: Set trigger ordering
Navigate to Admin Center → Objects and rules → Business rules → Triggers and click Reorder.
Drag triggers into this order (top to bottom):
- Triage: Technical
- Triage: Product
- Triage: Account
- Triage: Billing
- Triage: Shipping
- Triage: Uncategorized (created in the next step)
Zendesk evaluates and fires all matching triggers in list order. A ticket can receive multiple tags if it matches multiple triggers. However, the last trigger to set a group assignment wins. Place your most specific triggers (Technical) above broader ones (Shipping) so the group assignment reflects the most precise match.
Step 6: Add a catch-all trigger
Create one final trigger to flag tickets that no keyword trigger matched:
Trigger name: Triage: Uncategorized
Conditions — Meet ALL of the following:
| Condition type | Field | Operator | Value |
|---|---|---|---|
| Ticket | Ticket | Is | Created |
| Ticket | Tags | Contains none of the following | topic-billing topic-shipping topic-product topic-account topic-technical |
Actions:
| Action | Value |
|---|---|
| Add tags | topic-uncategorized |
| Group | General Support |
If the catch-all runs before your topic triggers, every ticket gets tagged "topic-uncategorized" before the topic triggers can classify it. Zendesk evaluates the catch-all's conditions at the time it runs — if topic triggers haven't fired yet, the tag won't exist. Always keep this trigger at the bottom of your trigger list.
Step 7: Test the triggers
Create test tickets for each topic to verify everything works:
- Send an email to your Zendesk support address with subject "Question about my invoice"
- Open the ticket in Zendesk — verify the
topic-billingtag was applied and it's assigned to Billing Support - Repeat for each topic using relevant keywords
- Send a vague message like "Hi, I have a question" — verify the
topic-uncategorizedtag fires and it's assigned to General Support
Check the Events section on each ticket to see which triggers fired and in what order. This is the fastest way to debug when a ticket gets the wrong tag.
Tags are most useful when agents can filter by them. Go to Admin Center → Workspaces → Agent workspace → Views and create a View per topic. Set the filter to "Tags contains topic-billing" (or the relevant tag) and "Status is Open." Each sub-team gets a focused queue showing only their tickets.
Troubleshooting
Common questions
How many topic triggers should I start with?
Start with 5. More than 10 triggers becomes hard to manage and debug. If you need finer classification, consider the Claude Code approach for AI-powered triage instead of adding more keyword triggers.
What accuracy should I expect from keyword matching?
Keyword triggers typically achieve 70-85% accuracy on English-language tickets with clear subject lines. Accuracy drops for vague tickets ("I need help"), multilingual tickets, and tickets where the topic is only clear from the body text. Track your accuracy by comparing auto-assigned tags to final tags after agent review.
Can I use triggers to set priority too?
Yes. Add a priority condition or action to your triggers. For example, tickets mentioning "urgent" or "down" could be set to High priority. Keep priority logic in separate triggers from topic triggers to avoid complex condition combinations.
Cost
Zendesk triggers are included in all plans that support them (Team plan and above) at no additional cost.
Looking to scale your AI operations?
We build and optimize automation systems for mid-market businesses. Let's discuss the right approach for your team.