On a schedule
See what each agent resolved this week
A Friday table of tickets assigned to and resolved by each agent.
- Runs
- On a schedule
- Apps
- Freshdesk
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: every Friday at 4pm, email me a table of Freshdesk tickets assigned and resolved per agent this week.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A support lead who has to answer who is doing well and who is overloaded usually has only impressions. Freshdesk reports can show agent numbers, but they need setting up, and they rarely line up with the week as the team experienced it. Without a plain summary, one agent quietly closes forty tickets while another keeps ten open for days, and neither fact reaches the one-to-one conversation where it would help.
Every week, ClickRuntime lists the agents, searches the tickets updated in the past seven days, groups them by responder and status, and emails you a table of what each agent resolved and what remains open. It reads straight from tickets, so there is no separate report to maintain.
It is helpful for team leads preparing one-to-ones and for managers who report on support output.
What you get out of it
Prepare real one-to-ones
A table of what each agent resolved this week gives you facts to discuss. Conversations about workload and difficult tickets start from numbers, not from memory and opinion. Specific examples make feedback easier to hear.
Notice uneven workloads
If one agent's open count keeps rising while others finish quickly, you can rebalance assignments. Burnout and slow replies often start with a lopsided queue. Rebalancing early prevents frustration. Fair workloads keep agents.
Recognize strong work
Agents who quietly resolve many tickets are easy to overlook. A weekly table makes their contribution visible and gives you a reason to say thank you. Appreciation is cheap and effective.
Plan coverage and hiring
Several weeks of tables show total volume and who handles it. When the numbers outgrow the team, you have evidence to ask for another hire. Data makes budget conversations easier. Evidence beats instinct.
Avoid building a custom report
Setting up reports in Freshdesk takes time, and they need upkeep as the team changes. A scheduled table that uses the live list of agents adapts when people join or leave. Maintenance disappears.
How it works
What happens, step by step
Every Friday afternoon ClickRuntime looks at the Freshdesk tickets updated since Monday.
For each agent it counts the tickets assigned to them and how many of those are resolved or closed.
You get an email with a simple table, one line per agent, busiest first.
Before it runs live
- Connect Freshdesk
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
- 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 Freshdesk steps into one automation
Under the hood
The code that runs this automation
from collections import Counter
from datetime import date, timedelta
from clickruntime import on_trigger, credentials, http, notify
DOMAIN = "acme"
@on_trigger
def run(event):
key = credentials.secret("FRESHDESK_API_KEY")
base = f"https://{DOMAIN}.freshdesk.com/api/v2"
agents = {a["id"]: a["contact"]["name"] for a in http.get(f"{base}/agents", auth=(key, "X")).json()}
monday = (date.today() - timedelta(days=date.today().weekday())).isoformat()
assigned, resolved = Counter(), Counter()
for page in range(1, 11):
r = http.get(f"{base}/search/tickets", params={"query": f"\"updated_at:>'{monday}'\"", "page": page},
auth=(key, "X")).json()["results"]
for t in r:
assigned[t["responder_id"]] += 1
if t["status"] in (4, 5):
resolved[t["responder_id"]] += 1
if len(r) < 30:
break
lines = [f"{agents.get(a, 'Unassigned'):<20} {n:>4} assigned {resolved[a]:>4} resolved" for a, n in assigned.most_common()]
notify.email_me("Freshdesk tickets per agent this week", "\n".join(lines))
return {"agents": len(assigned)}FAQ
Common questions
What does the table show for each agent?
Does it measure speed or quality?
Is it fair to rank agents by tickets resolved?
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
Start the day with yesterday's ticket numbers
One morning email with tickets created and resolved yesterday, and what is still open by priority.
See how it worksGet a weekly Freshdesk CSAT email
Each Monday you get the number of ratings, the share that was positive and every negative comment.
See how it worksClose tickets left in Resolved
Tickets resolved more than 3 days ago are closed overnight, and you get the count.
See how it worksKeep exploring
Set up “See what each agent resolved this week” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
