Hourly
Check suspended tickets so real customers aren't missed
Every hour you get the new emails Zendesk suspended, with the sender and the reason.
- Runs
- Hourly
- Apps
- Zendesk
- AI
- Not needed
- Access
- read (admin/agent with access)
Send this to your assistant
Create a ClickRuntime automation: every hour, email me any new suspended tickets in Zendesk with the subject, sender and why they were suspended.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Zendesk puts incoming emails in the suspended queue when it is unsure about them: a sender who is not a known user, an email that looks like spam, or a message that failed a loop check. Among the spam sits a real customer who emailed from a new address about a refund, and the message never becomes a ticket. Nobody checks the suspended tab regularly, so the customer is ignored, and from their side your company simply did not reply.
Every hour, suspended tickets are listed and compared with ones already reported. For each new one, an email is sent with the subject, sender and the cause Zendesk gave for suspending it. A reviewer scans the list in seconds and recovers real messages with one click in Zendesk.
A strong fit for teams whose customers write from many addresses.
What you get out of it
Real customers are rescued
With the sender and cause in the email, a reviewer separates customers from spam in seconds and recovers the real ones. The refund request from a new address becomes a ticket before the customer gives up on you.
Lost sales leads are recovered
New prospects often write from addresses Zendesk has never seen. Catching those pre-sales questions in the suspended queue stops quiet losses of potential revenue that nobody would ever know about.
The reviewing habit does not depend on memory
The suspended tab is somewhere everybody means to check and rarely does. A scheduled email builds the review habit that good intentions failed to build, and it runs whether or not anyone remembers.
Spam stays out of sight
Only new suspended items are reported, and the cause is shown, so obvious spam is dismissed at a glance. Nobody reads the same junk twice, which keeps the hourly email short and worth opening.
Cause information guides setup fixes
If many messages share a cause, such as an unrecognized sender domain, you learn which Zendesk setting to adjust. A few minutes of tuning can stop the losses at the source.
Customers feel heard
Someone who wrote in and gets a reply a day later has a better experience than someone who never hears back. The alert closes that gap, even for messages that the filter caught first.
How it works
What happens, step by step
Every hour, ClickRuntime checks your Zendesk suspended tickets, where emails flagged as spam end up.
It skips the ones it has already shown you.
You get an email with each new suspended email's subject, sender and why it was held, so real customers are not missed.
Before it runs live
- 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
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Zendesk steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, http, credentials, notify, state, report_fetched
ZD = "https://yourcompany.zendesk.com/api/v2"
AGENT_EMAIL = "you@yourcompany.com"
def zd(method, path, **kw):
r = http.request(method, f"{ZD}{path}", auth=(f"{AGENT_EMAIL}/token", credentials.secret("ZENDESK_API_TOKEN")), **kw)
r.raise_for_status()
return r.json() if r.content else None
@on_trigger
def run(event):
last = state.get("last_id") or 0
tickets = [t for t in zd("GET", "/suspended_tickets.json")["suspended_tickets"] if t["id"] > last]
report_fetched(len(tickets))
if not tickets:
return {"new": 0}
lines = [f"{t['subject']}\n From: {t['author'].get('email')}\n Why: {t['cause']}" for t in tickets]
notify.email_me(f"{len(tickets)} new suspended tickets", "\n\n".join(lines))
state.set("last_id", max(t["id"] for t in tickets))
return {"new": len(tickets)}FAQ
Common questions
What does the cause field mean?
Does it recover the ticket automatically?
How long does Zendesk keep suspended tickets?
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
Get an email when a ticket lands in your urgent view
New tickets in the view you care about reach your inbox within five minutes.
See how it worksGet warned before tickets breach their SLA
Your team hears about a ticket 30 minutes before it misses its first-reply target, not after.
See how it worksGet alerted about bad satisfaction ratings
When a customer rates a ticket bad, your team sees it with their comment within 15 minutes.
See how it worksKeep exploring
Set up “Check suspended tickets so real customers aren't missed” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.