Hourly
Get warned when tickets go past due
Each hour, tickets past their due date reach Slack, each one only once.
- Runs
- Hourly
- Apps
- Zoho Desk
- AI
- Not needed
- Access
- Desk.tickets.READ
Send this to your assistant
Create a ClickRuntime automation: every hour, post Zoho Desk tickets that are past their due date to #desk-leads in Slack with the owner and a link.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Each Zoho Desk ticket has a due date, calculated from your business hours and SLA settings. A ticket assigned to Maya is due at 5 p.m. Wednesday and Maya is out sick, so it sails past. Desk will color the ticket red, but only someone who is looking at the list sees it. Customers then wait beyond the promised time, and the first they hear of it is their own follow-up email.
Hourly, open tickets are listed from Zoho Desk and each ticket's due date is compared with the current time. Any past due are posted to Slack with the subject, assignee and how long they are overdue. Each ticket is posted once, so a long-overdue case does not flood the channel every hour.
Suited to support leads who are responsible for meeting response commitments.
What you get out of it
Missed commitments are noticed fast
A ticket that passes its due date shows up in the channel within the hour. The customer is contacted before they have to chase, which turns a failure into an apology that arrives on time.
Absences do not hide problems
When an assignee is away, their overdue tickets still appear in the shared channel. A teammate steps in without being asked, and a day of absence does not become a day of silence for customers.
Escalation has a clear trigger
An overdue post becomes the point at which a lead steps in. Everyone knows what the signal means, so escalation is a habit, not a conversation about whose job it is.
Patterns in lateness become visible
If tickets keep going overdue on Friday afternoons, the channel history shows it. Staffing or process can be fixed, and the fix is backed by dated examples. Everyone then knows when to step in.
Service-level reporting is easier
A record of overdue alerts supports monthly service reviews. You can show how many tickets slipped and what you did about each, which is stronger than general reassurance. Dated alerts also help you coach.
Less reliance on color coding
Zoho Desk marks overdue tickets visually, but only for people who are looking at the list. A message reaches people who are busy elsewhere. Colors alone get overlooked in a busy list.
How it works
What happens, step by step
Every hour ClickRuntime checks your open Zoho Desk tickets against their due date.
It picks out the ones now past due and skips any it has already flagged.
The list goes to your #desk-leads Slack channel with each ticket's number, subject, assigned agent and a link.
Before it runs live
- Connect Zoho Desk
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 Zoho Desk steps into one automation
Under the hood
The code that runs this automation
from datetime import datetime, timezone
from clickruntime import on_trigger, credentials, http, state, notify, report_fetched
ORG_ID = "712345678"
BASE = "https://desk.zoho.com/api/v1"
@on_trigger
def run(event):
h = {"Authorization": f"Zoho-oauthtoken {credentials.connection('zoho', 'work')}", "orgId": ORG_ID}
tickets = http.get(f"{BASE}/tickets", params={"status": "Open", "limit": 100, "include": "assignee"},
headers=h).json()["data"]
now = datetime.now(timezone.utc)
alerted = set(state.get("alerted") or [])
overdue = [t for t in tickets if t.get("dueDate") and t["id"] not in alerted
and datetime.fromisoformat(t["dueDate"].replace("Z", "+00:00")) < now]
report_fetched(len(overdue))
if not overdue:
return {"summary": "Nothing new"}
lines = [f"#{t['ticketNumber']} {t['subject']} · {(t.get('assignee') or {}).get('firstName', 'Unassigned')}\n{t['webUrl']}"
for t in overdue]
notify.slack("Overdue tickets:\n" + "\n".join(lines), channel="#desk-leads")
state.set("alerted", list(alerted | {t["id"] for t in overdue})[-1000:])
return {"overdue": len(overdue)}FAQ
Common questions
Where does the due date come from?
Why is each overdue ticket posted only once?
Does it ignore tickets on hold?
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
Post new Zoho Desk tickets to Slack
Every new ticket shows up in Slack with its subject, contact and priority.
See how it worksFind tickets with no owner
Tickets left unassigned for over an hour land in your inbox.
See how it worksLabel new tickets by category and urgency
Untagged tickets get a category tag and a priority within 10 minutes.
See how it worksKeep exploring
Set up “Get warned when tickets go past due” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.