Recommendation (short): Use a Zendesk “New Ticket” or “Updated Ticket” Zap trigger, pre-filter tickets inside Zapier (or via Zendesk triggers) to avoid duplicates, send a single compact JSON-output prompt to GPT, and auto-assign when confidence is high; route low-confidence or API failures to a human triage queue.
Why this works: Triggers capture tickets immediately; a deterministic JSON prompt forces machine-friendly output; confidence thresholds and retry/backoff avoid misroutes and needless API cost.
Decision criteria (pick based on your constraints):
- Budget-sensitive (lower cost): use a small, cheaper model via OpenAI API integration in Zapier or a compact ChatGPT model, batch or pre-filter tickets to reduce calls.
- High accuracy/enterprise: choose a stronger model and stricter prompt + human-in-loop for prefer conservative auto-routing (higher confidence threshold); large ops/team => lower threshold and more auto-routing.
Zap setup (practical):
1) Trigger: Zendesk → New Ticket (or Ticket Updated when status is New/Open). Add conditions to only trigger on public requests, not internal notes. Use Zendesk custom fields to skip reprocessed tickets.
2) Filter step: Skip tickets from known test users, confirmations, or where custom category exists.
3) Action: Call GPT (ChatGPT/OpenAI) with a JSON-output prompt (see example below).
4) Formatter/Parse JSON: Parse the GPT JSON response and inspect confidence.
5) Paths: If confidence >= 0.8 → Zendesk: Update ticket (assign group/agent or set category field). If 0.5–0.8 → set to "Triage" queue and add a short classification suggestion. If <0.5 or API error → tag as "needs_review" and notify human team.
6) Logging: Append ticket, prompt, and GPT response into a Google Sheet or Zapier Storage for auditing.
Prompt template (concise, force JSON output):
"You are a ticket classifier. Return ONLY valid JSON with keys: category, team, confidence (0-1), reason (1 sentence). Categories: billing, technical, account, legal, sales, other. Map to teams: BillingTeam, EngTeam, AccountTeam, LegalTeam, SalesTeam, GeneralTriage. Ticket subject: {{subject}}. Body: {{body}}. Example output: {"category":"billing","team":"BillingTeam","confidence":0.93,"reason":"Contains invoice and payment keywords."}"
Practical retry logic:
- For transient API errors (429/5xx): retry with exponential backoff + jitter: initial wait 1s, multiply by 2, max 5 tries. In Zapier, enable step retry and build a fallback path that tags the ticket and notifies the ops channel after repeated failures.
- For malformed or no-JSON responses: retry once; if still invalid, tag for human review and log the raw output.
Cost estimate (how to calculate for ~5k tickets/month):
- Zapier tasks: expect ~2–4 tasks per ticket (trigger + GPT action + update/log) → ~10k–20k tasks/month. Pick a Zapier plan that covers that volume or use multi-step task bundles.
- GPT calls: 5k classification calls/month. Multiply per-call model cost by 5k. If budget is tight, reduce calls by pre-filtering or batching similar tickets.
Checklist to deploy:
- [ ] Create Zendesk trigger to set a custom field (e.g., auto_routed=false) for new public tickets.
- [ ] Build Zap: Trigger → Filter → GPT action → Parse → Paths for confidence thresholds → Update ticket + log.
- [ ] Implement retry/backoff and error-path (tag + notify).
- [ ] Create mapping table of category→team and test with 200 historical tickets.
- [ ] Run shadow mode for 1–2 weeks (suggested) before fully auto-assigning.
Best-for: Teams that want quick wins with minimal engineering; routing predictable ticket types (billing, password resets, outages).
Avoid-if: You need legally auditable decisions, or tickets require sensitive PII handling where sending content to external AI is restricted.
If you want, I can give a tuned prompt for a specific category set and a sample Zap step-by-step. For orchestration, start in Zapier and use ChatGPT (or OpenAI API) as the classifier depending on your model/cost choice.
Compare Zapier and Make