The moment it happens
Summarise and prioritise new Zendesk tickets with AI
Each new ticket gets a short summary, a sentiment and a priority, and the urgent ones are flagged in Slack.
- Runs
- The moment it happens
- Apps
- Slack, Zendesk
- AI
- Yes, uses the built-in AI allowance
- Access
- Zendesk write; chat:write
Send this to your assistant
Create a ClickRuntime automation: when a new Zendesk ticket arrives, have AI summarise it, rate the sentiment and set the priority. Tag the ticket, and post anything urgent to #escalations.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A growing online shop gets tickets of every kind: where is my parcel, a broken item, a furious customer threatening a chargeback. They all arrive with the same normal priority, and agents work through them in order. The ticket that really needed an answer in ten minutes waits behind forty delivery questions.
Reading each ticket as it arrives and setting a sensible priority means agents start with the right ones, and the team lead hears about the angry ones straight away.
What you get out of it
Urgent tickets jump the queue
Priority is set from what the customer actually wrote, so the chargeback threat is handled before the routine question.
Summaries save reading time
Agents see the gist in one line before opening a long email thread with screenshots and forwarded history.
Sentiment tags for reporting
Tagging each ticket as positive, neutral or negative lets you track how customers feel over time, not just how many wrote in.
Leads hear about trouble early
Only the urgent tickets reach Slack, so the escalation channel is a short list worth reading.
How it works
What happens, step by step
Zendesk tells ClickRuntime the moment a new ticket is created.
It reads the ticket's subject and first message.
AI writes a one-line summary, rates the customer's mood and picks a priority based on the rules you described.
The ticket is updated with the priority, a sentiment tag and the summary as a private note.
If the ticket is urgent, a message with the summary and link goes to your #escalations Slack channel.
Before it runs live
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
- Connect Zendesk
- Paste your automation's link into the other app's webhook settings
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Google Sheets
- Combine it with other Slack and Zendesk steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, http, credentials, ai, notify
ZD, AGENT = "https://yourcompany.zendesk.com/api/v2", "you@yourcompany.com"
def zd(method, path, **kw):
r = http.request(method, ZD + path, auth=(f"{AGENT}/token", credentials.secret("ZENDESK_API_TOKEN")), **kw)
return r.raise_for_status() or (r.json() if r.content else None)
SCHEMA = {"type": "object", "properties": {"summary": {"type": "string"},
"sentiment": {"enum": ["positive", "neutral", "negative"]},
"priority": {"enum": ["low", "normal", "high", "urgent"]}}, "required": ["summary", "sentiment", "priority"]}
@on_event
def handle(event):
tid = (event.json or {})["ticket"]["id"]
t = zd("GET", f"/tickets/{tid}")["ticket"]
res = ai.generate(f"Subject: {t['subject']}\n\n{t['description'][:3000]}",
system="Summarise this support ticket in one line, rate sentiment, and set priority. Urgent = threats to cancel, payment failures, outages.",
json_schema=SCHEMA, max_output_tokens=150).json
zd("PUT", f"/tickets/{tid}", json={"ticket": {"priority": res["priority"], "additional_tags": [f"sentiment_{res['sentiment']}"],
"comment": {"body": f"AI summary: {res['summary']}", "public": False}}})
if res["priority"] == "urgent":
notify.slack(f"🚨 #{tid} {res['summary']}\nhttps://yourcompany.zendesk.com/agent/tickets/{tid}", channel="#escalations")
return {"ticket": tid, "priority": res["priority"]}FAQ
Common questions
Where does the summary appear?
Can agents change the priority it sets?
What counts as urgent?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Follow each Zendesk ticket in its own Slack thread
Every new ticket appears in Slack, and each reply or status change lands in that ticket's thread.
See how it worksTurn a Slack message into a Zendesk ticket with an emoji
React to any Slack message with 🎫 and it becomes a Zendesk ticket, with the link posted back in the thread.
See how it worksSpot customers at risk of leaving from their tickets
Each morning, Slack lists the customers whose recent tickets suggest they might cancel, grouped by company.
See how it worksKeep exploring
Set up “Summarise and prioritise new Zendesk tickets with AI” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.