Skip to content

Every 30 minutes

Summarise long tickets in an internal note

When a ticket thread gets long, agents get a short internal summary instead of reading every comment.

Runs
Every 30 minutes
Apps
Zendesk
AI
Yes, uses the built-in AI allowance
Access
read+write

Send this to your assistant

Create a ClickRuntime automation: every 30 minutes, find updated Zendesk tickets with more than 10 comments and add a short summary of the thread as an internal note. Only do it once per ticket.

Paste it into your assistant. It tells you what it will send or change before it runs live.

First time? Adding ClickRuntime to your assistant takes about two minutes.

Why use it

Why teams use this automation

A ticket that started as a billing question is now at 23 comments over three weeks. It has bounced between two agents, an engineer added a note about a failed webhook, and the customer has restated the problem twice. When it is reassigned, the new agent has to scroll through the whole thread to learn what has been tried. That takes ten minutes, and mistakes still happen, like asking the customer something already answered.

Every half hour, tickets that were updated are checked for their comment count. When a thread passes a set length, the built-in AI reads it and writes a short summary of the problem, steps taken and what is pending. The summary is added as a private internal note, never visible to the customer, and the ticket is remembered so it is not summarized again.

It helps support teams with handoffs between shifts or tiers.

What you get out of it

  • Handoffs that take seconds

    A new agent reads one paragraph at the top instead of 23 comments. Escalations to tier two or to engineering start with context already written down. The summary also notes pending steps, so nothing waits on the wrong person.

  • Fewer repeated questions to customers

    Customers get annoyed when asked for an order number they gave twice already. A summary listing what is known stops agents from re-asking and protects satisfaction scores. Customers notice when they do not have to repeat themselves.

  • Managers can review without reading threads

    A supervisor checking a difficult ticket for coaching can read the summary and open the thread only if something looks wrong. Reviews that took an hour take minutes. Coaching conversations work better when the thread is easy to grasp quickly.

  • Context survives staff changes

    When the original agent leaves or changes teams, a note capturing the story so far stays on the ticket. Knowledge about a long-running issue is no longer locked in one person's memory.

  • Internal notes stay internal

    Because the summary is a private comment, agents can write candidly about the state of the issue. Nothing can reach the requester or show up in an emailed notification to them.

  • Fewer errors during escalation

    Engineers receive the key facts rather than a long thread, which avoids missing a detail that changes the diagnosis. Because every long case carries a summary at the top, handing a ticket to a colleague during a holiday or shift change takes seconds, not a long catch-up.

How it works

What happens, step by step

  1. Every 30 minutes, ClickRuntime looks at Zendesk tickets updated since its last check.

  2. It picks out tickets with a long back-and-forth.

  3. AI reads the whole thread and writes a short summary of the problem and where things stand.

  4. The summary is added as an internal note on the ticket. Tickets already summarised are not done twice.

Before it runs live

  • Connect Zendesk

What you get

RunsEvery 30 minutes
Summarise long tickets in an internal notetoday, 9:00Succeeded
Zendesk · Internal noteSummary: Acme's SSO login fails after domain change. Logs sent; waiting on IdP metadata from their IT.

Build your own

Need it to work differently?

This template is a starting point. Copy the prompt and change it, or describe a different automation from scratch, with your own conditions, more apps or an AI step. Your assistant writes it, tests it and runs it on ClickRuntime.
  • 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
  • Change what the AI looks for, or how it writes the result
  • 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

This is the Python script that runs each time the automation starts. Your AI assistant writes it for you when you send the prompt, and you allow each step in your assistant. To change how the automation works, describe the change to your assistant and it updates the script for you. For every function it can use, see the script reference.
ai_summary_of_long_tickets.pyexample
import time
from clickruntime import on_trigger, http, credentials, ai, 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):
    since = state.get("since") or int(time.time()) - 1800
    page = zd("GET", "/incremental/tickets.json", params={"start_time": since})
    done = set(state.get("summarised") or [])
    todo = [t for t in page["tickets"] if t["id"] not in done and t["status"] != "closed"]
    report_fetched(len(todo))
    state.set("since", page["end_time"])
    if not todo:
        return {"summarised": 0}
    count = 0
    for t in todo:
        comments = zd("GET", f"/tickets/{t['id']}/comments.json")["comments"]
        if len(comments) <= 10:
            continue
        thread = "\n".join(c["plain_body"][:400] for c in comments)
        summary = ai.generate(f"Summarise this support thread in 4 lines:\n{thread}", max_output_tokens=200).text
        zd("PUT", f"/tickets/{t['id']}", json={"ticket": {"comment": {"body": f"Summary:\n{summary}", "public": False}}})
        done.add(t["id"])
        count += 1
    state.set("summarised", list(done)[-2000:])
    return {"summarised": count}

FAQ

Common questions

How many comments make a ticket long?
The comment count threshold is a number set in the automation, for example 8 or 10 comments. Short exchanges are skipped, and the threshold is easy to raise or lower depending on how chatty your tickets are.
Will the summary update as the ticket grows?
Each ticket is remembered after it has been summarized, so one summary is added per ticket by default. If a thread keeps growing for weeks, a second pass at a higher comment count could be set up as an alternative.
Can customers see the summary?
No. It is added as a private comment, which Zendesk shows only to agents. The requester and any CCed people do not see it, and it does not trigger a public email. Internal notes also appear in the ticket history for auditing.
What permissions does it need?
read+write. Nothing else in your accounts is used.
Does it need AI?
Yes. It uses ClickRuntime's built-in AI, so you don't need an OpenAI or Anthropic key. Every plan includes a monthly AI allowance.
How many runs does it use?
One run each time it checks. Checks that find nothing new and stop right away aren't counted.
Can I change how it works?
Yes. Describe the change to your AI assistant, for example a different schedule, channel or filter. It updates the automation, tests it and tells you what changed.

Set up “Summarise long tickets in an internal note” from your assistant

Copy the prompt above, or connect your assistant first. Free plan, no credit card.