Every morning someone asks chat which tickets already blew first-response. The model opens a different helpdesk view, a different Slack thread, a different meaning of “past due.” You get a different list.
That job is not a conversation. It is a fixed pull: same ticket fields, same SLA clock, same owners — so you can answer the breached ones before the queue gets worse.
What breaks when the list is improvised
First response is the moment the customer knows a human saw them. Miss it and the ticket is already sour even if the fix arrives later. Two people grab the same row, or nobody does because it lived in a private saved view. Priority labels drift. An auto-ack counts as a reply in one export and not in another.
Support ops already treat this as a clock, not a vibe. First-response time is the gap from ticket create to the first real human reply — not the autoresponder — and email teams often aim for something like under four hours on standard channels. The exact number is yours. The point is it has to be the same rule every morning.
The job: one tool, one morning list
Build a single tool — call it list_past_first_response_sla — that always returns the same fields:
- Ticket id and subject
- Requester / account
- Priority and channel
- Assignee (or unassigned)
- Minutes (or business hours) past first-response SLA
- Whether an auto-ack already fired (so you do not confuse it with a real reply)
- Link into the helpdesk ticket
Wire it to the systems you already use: Zendesk/Freshdesk/Intercom open tickets, the SLA policy table, maybe the on-call sheet for who owns unassigned. Lock the inputs. The assistant should not invent a new filter path each run.
How you use it in chat
In ChatGPT, Claude, or Cursor, type something short: “Pull tickets past first-response SLA.” The tool returns the pack. You assign, answer, or escalate. You still write the reply. The tool only stops the scavenger hunt across views and threads.
How to verify it worked
Run the tool twice the same morning. Same rows, same columns. Have someone post a real first reply on one ticket and run again — that row should drop off. If the second run invents new columns, treats an auto-ack as a reply, or drops assignees, the tool is still a prompt in disguise.
On Smia you design that small tool as a graph, host it on a server URL, and call it from the chat you already use. Keep the surface narrow: list past-SLA tickets, maybe claim one — not “do anything in the helpdesk.”
