On a schedule
Get a weekly email summarising your Zendesk tickets
Every Monday you get an email with the main themes in last week's tickets, how customers felt and anything unusual.
- Runs
- On a schedule
- Apps
- Gmail, Zendesk
- AI
- Yes, uses the built-in AI allowance
- Access
- Zendesk read; gmail.send
Send this to your assistant
Create a ClickRuntime automation: every Monday at 8am, read last week's Zendesk tickets, summarise the main themes, overall sentiment and anything unusual with AI, and email it to me.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
The founder of a small software company used to read every support ticket. Now there are too many, and they have lost touch with what customers struggle with. Zendesk's reports show counts, not what people are actually saying.
A short weekly email on the themes, mood and odd ones out keeps the people making product decisions close to customers, in about two minutes of reading.
What you get out of it
Stay close to customers
Founders and product leads hear what customers are saying each week without reading hundreds of tickets.
Themes, not just counts
The summary groups tickets by what they are about, which shows where the product or docs are letting people down.
Unusual issues stand out
A single strange report that could be the start of a bigger problem is called out rather than lost in the volume.
Arrives in your inbox
There is no dashboard to remember to open; the summary is there on Monday morning.
How it works
What happens, step by step
Every Monday morning, ClickRuntime collects the tickets created in Zendesk over the past week.
AI reads their subjects and opening messages and groups them into the main themes.
It notes the overall mood and picks out anything unusual, with links to those tickets.
The summary is emailed to you from your own Gmail address.
Before it runs live
- Connect Google through your own Google app (a one-time, 10-minute setup), so it works with your own Gmail
- Connect Zendesk
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
- Run it at a different time, more or less often, or only on weekdays
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other Gmail and Zendesk steps into one automation
Under the hood
The code that runs this automation
import base64
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from datetime import date, timedelta
from clickruntime import on_trigger, http, credentials, ai
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)
def send_gmail(to, subject, text):
raw = base64.urlsafe_b64encode(f"To: {to}\r\nSubject: {subject}\r\nContent-Type: text/plain; charset=utf-8\r\n\r\n{text}".encode()).decode()
build("gmail", "v1", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False).users().messages().send(userId="me", body={"raw": raw}).execute()
@on_trigger
def run(event):
since = (date.today() - timedelta(days=7)).isoformat()
tickets = zd("GET", "/search.json", params={"query": f"type:ticket created>={since}"})["results"]
if not tickets:
return {"tickets": 0}
lines = "\n".join(f"#{t['id']} {t['subject']}: {t['description'][:250]}" for t in tickets[:300])
summary = ai.generate(lines, system="Summarise these support tickets for a founder: top themes with counts, overall sentiment, "
"and up to 3 unusual tickets by number. Plain text, under 250 words.", max_output_tokens=700).text
send_gmail("you@yourcompany.com", f"Support this week: {len(tickets)} tickets", summary)
return {"tickets": len(tickets)}FAQ
Common questions
How many tickets can it summarise?
Can it go to the whole team?
Does it include ticket links?
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 up on Zendesk tickets waiting on the customer
Each morning, customers whose tickets have been pending for a few days get a polite check-in email, and you get the list.
See how it worksEmail billing about payment tickets as they arrive
New tickets about payments are tagged urgent in Zendesk, and your billing team gets an email about each one straight away.
See how it worksDraft replies to new tickets and email me the list
New Zendesk tickets get a suggested reply as an internal note, and you get an email listing which tickets are ready to review.
See how it worksKeep exploring
Set up “Get a weekly email summarising your Zendesk tickets” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.