On a schedule
Post new Zoho Desk tickets to Slack
Every new ticket shows up in Slack with its subject, contact and priority.
- Runs
- On a schedule
- Apps
- Zoho Desk
- AI
- Not needed
- Access
- Desk.tickets.READ
Send this to your assistant
Create a ClickRuntime automation: every 5 minutes, post new Zoho Desk tickets to #desk in Slack with the subject, contact name and priority.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A customer submits a ticket through your Zoho Desk help center and then waits. The support team has no pings because the agents are working in other tabs, and the first someone sees it is during the next queue check, an hour later. Customers judge a support team by the first response time, and an hour of silence feels like an eternity to someone with a problem.
At each check, tickets are listed from Zoho Desk sorted by creation time, and any whose ID has not been seen are posted to Slack. The message shows the subject, requester and priority along with a link to the ticket. IDs are remembered so a ticket is announced exactly once.
A straightforward choice for small support teams that live in Slack. The post links straight to the ticket.
What you get out of it
First response gets faster
A Slack message prompts someone to pick up the ticket within minutes. Fast first responses are the most visible part of good support, and customers judge you on how soon someone replies.
Everyone sees the same queue
Posting in a channel avoids the situation where one agent knows about a ticket and the others do not. Pickup becomes a visible choice, and two people stop opening the same case.
The Desk tab can stay closed
Agents who work in other tools still hear about new tickets. Interruptions are limited to genuine arrivals, so the Desk tab can stay closed while deep work happens elsewhere. Those tickets are seen quickly.
Customers with urgent words get seen
A subject line like site down or payment failed is visible right in the post. Experienced agents can jump on those immediately, and the rest of the queue waits its turn.
Response time can be measured
Comparing the Slack timestamp with the first reply in Zoho Desk gives you a real number for first response time. You can improve what you can measure, and you can show it to leadership.
Fewer tickets sitting unseen
The most common failure in a shared queue is a ticket nobody noticed. A message in a channel makes it hard for any ticket to arrive silently. Teams grow into the habit quickly.
How it works
What happens, step by step
Every 5 minutes ClickRuntime checks Zoho Desk for the latest tickets.
It skips any ticket it has already posted.
Each new ticket is posted to your #desk Slack channel, oldest first, with the ticket number, subject, contact name, priority 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 clickruntime import on_trigger, credentials, http, state, notify, report_fetched
ORG_ID = "712345678"
@on_trigger
def run(event):
h = {"Authorization": f"Zoho-oauthtoken {credentials.connection('zoho', 'work')}", "orgId": ORG_ID}
tickets = http.get("https://desk.zoho.com/api/v1/tickets",
params={"sortBy": "-createdTime", "limit": 50, "include": "contacts"}, headers=h).json()["data"]
seen = set(state.get("seen") or [])
new = [t for t in tickets if t["id"] not in seen]
report_fetched(len(new))
if not new:
return {"summary": "Nothing new"}
for t in reversed(new):
contact = t.get("contact") or {}
name = f"{contact.get('firstName') or ''} {contact.get('lastName') or ''}".strip()
notify.slack(f"#{t['ticketNumber']} {t['subject']}\n{name} · {t.get('priority') or 'No priority'}\n{t['webUrl']}",
channel="#desk")
state.set("seen", list(seen | {t["id"] for t in new})[-1000:])
return {"posted": len(new)}FAQ
Common questions
Will tickets created by email also be announced?
How often does it look for new tickets?
Can I alert only for tickets in one department?
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 warned when tickets go past due
Each hour, tickets past their due date reach Slack, each one only once.
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 “Post new Zoho Desk tickets to Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.