Skip to content

Automate Ticket Classification: Let AI Tag Every Ticket So Your Reports Are Actually Accurate

For Customer Service Representative (In-House)s ·

Tools:Zapier + ChatGPT + Zendesk
Time to build:2-3 hours
Difficulty:Intermediate-Advanced
Prerequisites:Comfortable using ChatGPT for drafting. See the Level 3 guide, "Set Up a Custom GPT for Your Customer Service Work."

What This Builds

Every new ticket that comes into Zendesk gets automatically classified and tagged by AI. billing, shipping, product defect, account access, return request, or whatever categories your team uses. No more manually tagging 40 tickets a day, no more inconsistent tagging that makes your monthly reports meaningless.

The result: your team's Zendesk reports finally reflect reality. When your manager asks "how many billing complaints did we get this month?", the number is accurate because every ticket was tagged, not just the ones someone remembered to tag.

Prerequisites

  • Comfortable using ChatGPT for basic tasks (Level 3)
  • Zendesk as your primary ticketing system
  • Zapier account with Starter or higher plan ($19.99/mo)
  • OpenAI API account (platform.openai.com, different from ChatGPT.com)
  • Your company's ticket category list (ask your manager or pull from your current tags in Zendesk)

The Concept

AI classification is like having a very fast, very consistent intern who reads every incoming ticket and assigns it to the right category. Unlike a human intern, it never gets tired, never skips one because the queue is busy, and always uses the exact same criteria.

A Zapier automation watches for new tickets. When one arrives, it sends the ticket text to ChatGPT with a list of your categories and asks "which category does this belong to?" ChatGPT responds with the category name, and Zapier writes that category back to Zendesk as a tag.

The whole process runs in 10-15 seconds per ticket, invisible to you.


Build It Step by Step

Part 1: Define Your Ticket Categories

Before building anything, get your category list right. Open a text document and list every category your team tracks (or should track). Be specific and mutually exclusive.

Example categories:

Copy and paste this
BILLING - payment questions, invoice disputes, charge errors, subscription changes
SHIPPING - delivery status, lost packages, damaged in transit, wrong address
RETURNS - return requests, refund requests, exchange requests
PRODUCT_DEFECT - broken product, product not working as described, quality issues
ACCOUNT_ACCESS - login problems, password reset, account locked, permissions
TECHNICAL_SUPPORT - app not working, website errors, software issues
GENERAL_INQUIRY - product questions, pricing, availability, policy questions
OTHER - does not fit any above category

Write clear descriptions. The AI uses these descriptions to classify, not just the category names.

Part 2: Set Up Zapier

  1. Log into zapier.com
  2. Click "Create Zap"
  3. You'll build a 3-step chain: Zendesk trigger → ChatGPT action → Zendesk update

Part 3: Configure the Zendesk Trigger

  1. Click the "Trigger" block → search and select "Zendesk"
  2. Event: "New Ticket" (not "Ticket Updated," because you want to catch tickets at creation)
  3. Connect your Zendesk account using your subdomain and credentials
  4. Click "Test trigger" to pull a sample ticket

What you should see: A sample ticket with fields including ID, subject, description, requester, and current tags.

Troubleshooting: If no sample tickets appear, submit a test ticket to your Zendesk queue via email or your customer-facing form.

Part 4: Add the ChatGPT Classification Step

  1. Click "+" after the trigger → search "ChatGPT" (by OpenAI)

  2. Event: "Send Message"

  3. Connect your OpenAI API account (get API key at platform.openai.com → API Keys)

  4. In the "System Message" field, type:

Copy and paste this
You are a customer service ticket classification assistant. Classify each ticket into exactly one category. Return ONLY the category name: nothing else, no explanation, no punctuation.

Categories:
BILLING - payment questions, invoice disputes, charge errors, subscription changes
SHIPPING - delivery status, lost packages, damaged in transit, wrong address
RETURNS - return requests, refund requests, exchange requests
PRODUCT_DEFECT - broken product, product not working as described, quality issues
ACCOUNT_ACCESS - login problems, password reset, account locked, permissions
TECHNICAL_SUPPORT - app not working, website errors, software issues
GENERAL_INQUIRY - product questions, pricing, availability, policy questions
OTHER - does not fit any above category
  1. In the "User Message" field, build the dynamic prompt:
Copy and paste this
Classify this ticket:
Subject: [Select "Subject" from Zendesk trigger data]
Description: [Select "Description" from Zendesk trigger data]
  1. Set "Model" to "gpt-4o-mini." It's fast, cheap, and accurate enough for classification
  2. Click "Test action." You should get back a single word like "BILLING" or "SHIPPING"

What you should see: A one-word response matching one of your categories. Troubleshooting: If the output includes extra text like "Category: BILLING", adjust your system prompt to add "Return only the single category name as your entire response."

Part 5: Add the Zendesk Tag Update Action

  1. Click "+" after the ChatGPT step → select "Zendesk" again

  2. Event: "Update Ticket"

  3. Connect same Zendesk account

  4. Configure the fields:

  • Ticket ID: [Select "ID" from the original Zendesk trigger data]
  • Tags: [Select the ChatGPT output from the previous step. This is the category name]

Important: Zendesk tags are additive, adding a new tag doesn't remove existing ones. Your category tag will be added alongside any auto-applied tags.

  1. Click "Test action," then go into Zendesk and find the test ticket. It should now have your AI-assigned tag.

Part 6: Turn It On and Monitor

  1. Enable the Zap (toggle in top right)
  2. Let it run for a day
  3. Go to Zendesk → Reports → Tags and check the distribution

What good results look like: Tags appear consistently on new tickets. Distribution of categories makes sense for your business (e.g., SHIPPING is high during holiday season, BILLING spikes at end of billing cycle).


Real Example: End-to-End Walkthrough

Setup:

  • Categories defined: BILLING, SHIPPING, RETURNS, PRODUCT_DEFECT, ACCOUNT_ACCESS, GENERAL_INQUIRY, OTHER
  • Zap: New ticket → ChatGPT classify → Tag Zendesk ticket

Input (what triggers the workflow): Customer submits ticket with subject "Can't log into my account" and description "I've been trying to reset my password for two days but the reset email never arrives."

ChatGPT returns: "ACCOUNT_ACCESS"

Zapier applies tag: "account_access" added to Zendesk ticket #9124

You see: Ticket #9124 arrives in your queue already tagged. You know what it's about before you open it

Time saved: 30 seconds per ticket × 40 tickets/day = 20 minutes of manual tagging eliminated daily

Report accuracy: Monthly report now accurately shows 180 ACCOUNT_ACCESS tickets, not 50 that happened to get manually tagged


What to Do When It Breaks

  • Zap shows "Wrong category" on test: Your category descriptions may be ambiguous. Make them more specific, add example phrases like "e.g., 'my card was charged twice'" to the billing category description.
  • ChatGPT returning multi-word answers: Strengthen the system prompt: add "Your entire response must be exactly one word from the category list above."
  • Ticket not getting tagged: Check Zapier task history, if the step shows "Success" but the tag isn't in Zendesk, verify the Ticket ID field is being passed correctly.
  • Too many "OTHER" classifications: Your category definitions may not cover enough cases. Review what's going into OTHER and add new categories for patterns you see.

Variations

  • Simpler version: If the Zapier + API setup is too complex, Zendesk's native Intelligent Triage feature (Enterprise plan) does automatic categorization without external tools. Ask your admin if your plan includes it
  • Extended version: Add a second ChatGPT step that also assigns an "Urgency" tag (URGENT / STANDARD / LOW) based on sentiment and keywords. Then route URGENT tickets to a priority queue automatically

What to Do Next

  • This week: Build and test the zap with 10 test tickets across different case types; validate that categorization is accurate
  • This month: Review your monthly report. Compare AI-tagged distribution against your team's intuition. Adjust category definitions for any systematic misclassifications.
  • Advanced: Add a third step that routes BILLING tickets with amounts over $100 to a supervisor-review queue automatically

Advanced guide for Customer Service Representatives. Requires Zapier Starter ($19.99/mo), OpenAI API access (~$0.002-0.005 per ticket classified), and Zendesk access. Supervisor approval recommended before deploying automated tag writes.