Skip to content

Every 10 minutes

Tag new tickets by topic

Every new ticket gets a topic tag within minutes, so views and reports sort themselves.

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

Send this to your assistant

Create a ClickRuntime automation: every 10 minutes, read new Zendesk tickets and tag each one as billing, bug, shipping or other.

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

An online store's support inbox receives refund requests, shipping questions, login problems and the occasional compliment, all under the same Zendesk view. Agents tag tickets by hand if they remember, so reports on what customers write about are unreliable and triggers that depend on tags never fire. Someone eventually exports a month of tickets and finds that half carry no tag at all.

Every ten minutes, new tickets are fetched and the built-in AI reads each subject and description, then picks fitting topic tags such as refund, shipping_delay or password_reset. Those tags are added to the ticket in Zendesk, so views, triggers and reports can use them straight away. No OpenAI or Anthropic key is needed.

Teams that route by topic, or want to measure contact reasons, benefit most.

What you get out of it

  • Reports reflect what customers say

    With every ticket tagged, a chart of contact reasons becomes trustworthy. You can show that shipping delays doubled this month with numbers instead of an agent's recollection. Trusting the data takes only a few weeks of consistent tags.

  • Routing rules finally have input

    Zendesk triggers and views that rely on tags work only when tags exist. Automatic tagging lets billing questions reach the billing group without anyone sorting the queue. That frees agents from sorting tasks.

  • Agents spend time answering

    Reading a ticket just to label it is a cost repeated hundreds of times a month. Removing that step returns minutes per ticket to the people writing replies. Time saved adds up quickly.

  • Consistent labels across the team

    One agent writes refund, another writes refunds, a third writes money_back. Choosing from one set of tags removes spelling variants that break filters and make counts misleading. Consistent tags also help new agents learn your product vocabulary.

  • Quick spotting of new problem areas

    When tickets about a new topic appear in a tag count the same day, you learn about a broken checkout or a confusing release sooner than from a weekly review.

  • Searching old tickets works

    Agents hunting for how a similar case was handled can filter by tag and find the answer in seconds, instead of guessing at keywords. New agents who read tags on every ticket also learn how your team classifies requests, which shortens the time it takes to get up to speed.

How it works

What happens, step by step

  1. Every 10 minutes, ClickRuntime picks up the Zendesk tickets created since its last check.

  2. AI reads each ticket and chooses tags from your topic list, such as shipping or billing.

  3. The tags are added to the ticket, so your views and triggers can route it straight away. Tickets already tagged are not touched again.

Before it runs live

  • Connect Zendesk

What you get

RunsEvery 10 minutes
Tag new tickets by topictoday, 9:00Succeeded
Zendesk · Tags#4822 Parcel never arrived → shipping #4823 Charged twice → billing

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_auto_tagging_of_new_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):
    params = {"cursor": state.get("cursor")} if state.get("cursor") else {"start_time": int(time.time()) - 600}
    page = zd("GET", "/incremental/tickets/cursor.json", params=params)
    new = [t for t in page["tickets"] if t["status"] == "new"]
    report_fetched(len(new))
    if not new:
        state.set("cursor", page["after_cursor"])
        return {"tagged": 0}
    for t in new:
        label = ai.generate(f"{t['subject']}\n{(t['description'] or '')[:1500]}",
                            system="Reply with one word: billing, bug, shipping or other.", max_output_tokens=5).text.strip().lower()
        if label not in ("billing", "bug", "shipping"):
            label = "other"
        zd("PUT", f"/tickets/{t['id']}/tags", json={"tags": [label]})
    state.set("cursor", page["after_cursor"])
    return {"tagged": len(new)}

FAQ

Common questions

Can I limit tags to a list I define?
Yes. The AI is given your list of allowed tags and picks from it, so labels stay consistent with the tags already used in your Zendesk reports and triggers. You can edit that list whenever your categories change.
Does it overwrite tags that agents already added?
No. The step adds tags to the ticket and does not remove existing ones, so a tag an agent applied by hand stays in place. The AI's tags sit alongside whatever was already there. Tags are added, never removed, so manual labels stay as they were.
Will it tag a ticket twice if it is updated?
It looks at new tickets since the last check, so a ticket is handled once when it first appears. Later replies and status changes do not trigger another round of tagging. Tickets are only tagged when first seen, so one pass happens per ticket.
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 “Tag new tickets by topic” from your assistant

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