Auto-triage every new Zendesk ticket with Claude
Every 10 minutes, classify new Zendesk tickets, set a priority, and drop a draft reply as an internal note so your team approves instead of writing from scratch.
Integrations
Zendesk
Anthropic
Slack Bot
Type
Categories
- Customer Support
Build me an agent that triages brand new Zendesk tickets end-to-end using Claude, and posts the result to Slack for human approval.
Trigger: cron, every 10 minutes.
On each run, use Zendesk's List Tickets action, sorted by created_at descending, to find tickets created since the previous run. Keep the last-processed timestamp between runs so we don't miss or duplicate anything. Skip any ticket that already carries an 'ai-triaged' tag so re-runs and overlapping runs don't do the same work twice.
For each fresh ticket, call Zendesk's Show Ticket and List Ticket Comments to load the full context (subject, description, requester, existing priority, all public and internal comments).
Then call Anthropic's Create Message with that context and ask Claude to return three things in a structured way: (a) a category from this fixed list — billing, bug, feature-request, how-to, other, (b) an urgency rating from P0 (production down or angry customer threatening churn) through P3 (nice-to-have, no rush), based on the customer's language and stakes, and (c) a suggested first reply drafted in a warm, concise, professional tone that a support agent would be happy to send with light edits. The draft should acknowledge the issue, ask any missing clarifying questions, and either give an answer or set expectations on next steps.
Then call Zendesk's Update Ticket to (1) add the category as a tag, (2) add the 'ai-triaged' tag so we can dedupe on re-runs, (3) set the ticket's priority based on Claude's urgency rating (P0 -> urgent, P1 -> high, P2 -> normal, P3 -> low), and (4) add Claude's drafted reply as an internal note. Do NOT post it as a public reply — humans must approve first.
Finally, call Slack Bot's Send a Message to post a summary in the #support-triage channel. Include the ticket link (https://{subdomain}.zendesk.com/agent/tickets/{id}), the requester name and email, the category, the urgency rating with a short justification, and the drafted reply in a code block or quote so the support lead can skim it in Slack, then jump into Zendesk to approve or edit and send.
If a run finds no new tickets, do nothing (no empty Slack post). If any single ticket fails (Zendesk error, Claude error), log it, keep going with the rest, and include a note in Slack summarizing which ones were skipped so nothing quietly falls through.
What it does
- Reads brand new Zendesk tickets on a 10 minute schedule and pulls the full conversation context for each one.
- Uses Claude to classify the request (billing, bug, feature request, how-to, other), rate urgency from P0 to P3, and draft a first reply in your team's tone.
- Writes the classification back to the ticket as a tag, sets the priority, and leaves the drafted response as an internal note so responders start from a first draft, not a blank box.
- Posts a summary to a Slack channel with the ticket link, category, urgency, and the drafted reply so a support lead can approve or edit inside Zendesk with one click.
What you’ll need
- A Zendesk account with permission to update tickets and add internal notes.
- An Anthropic account and API key so Claude can classify and draft replies.
- A Slack workspace and a channel (like #support-triage) where the summary should land.
How to customize it
- Change how often it runs, from every 10 minutes to hourly or every few minutes, depending on how quickly new tickets need triage.
- Adjust the category list (for example add 'shipping' or 'account access') and the tone or length of the draft reply so it matches your voice.
- Pick a different Slack channel, mention specific support leads, or route P0 and P1 tickets to a separate escalation channel.
Use cases
- Feedback Triage
- Notifications & Alerts