Skip to content
Regolo Logo
Tutorial & How‑to

Route support tickets with Clef-Flash on Regolo

Alex Genovese
5 min read
Share

Clef-Flash on Regolo classifies support tickets into your own categories from a one sentence description of each, with no training data. In our test of 60 English and Italian tickets, one request took under 2.5 seconds, 55 tickets matched our labels (91.7%), and the estimated cost was about 0.22 US dollars per 1,000 tickets.

This tutorial takes about ten minutes, from the first request to a table of results you can reproduce on your own tickets. You need a Regolo API key and Python 3, and if you do not have a key yet you can create an account on Regolo.

BENCHMARK · 200 PUBLIC CUSTOMER REQUESTS

Same accuracy as qwen3.5-9b, in far less time.

Clef-Flash on Regolo sorted 200 insurance customer messages into 8 categories with 4 requests, in 9.8 seconds, at about 0.19 US dollars per 1,000 messages.

Messages matching the dataset labels
Clef-Flash94.0 to 94.5%
qwen3.5-9b94.5%
Time to classify 200 messages
Clef-Flash9.8 s
qwen3.5-9b353 s
Estimated cost per 1,000 messages
Clef-Flash$0.19
qwen3.5-9b$0.27
API requests needed
Clef-Flash4
qwen3.5-9b200
36×faster as measured
(19× without the qwen timeouts)
0training examples:
one sentence per category
50messages per request,
up to 64 allowed

Measured on October 14, 2026 on 200 messages sampled with a fixed seed (25 per category) from the Bitext insurance customer support dataset (CDLA-Sharing-1.0). Clef-Flash: 4 requests of 50 messages, repeated three times (94.5%, 94.0%, 94.0%). qwen3.5-9b: one request per message, temperature 0, 8 in parallel, one run; 5 requests hit the 180 s timeout and counted as misses, and its cost is extrapolated from the 95 calls with recorded usage. Costs use Regolo catalog rates and the tokens reported by the API.

What is Clef-Flash and how does it classify tickets?

Clef-Flash is a decision model that answers multiple choice questions about a text. You give it a ticket and a list of allowed categories with a short definition each, and it returns one category together with a confidence value and the probability of every option, so the result is always one of your own labels and can go straight into a helpdesk rule, a queue or a dashboard. On Regolo it is available at the /v1/systemone endpoint.

Three practical advantages follow from this design.

  • You define the categories in plain language, so a new category is a new sentence and not a new training run.
  • Many tickets travel in the same request (up to 64 questions per call), so time and request volume stay low as ticket volume grows.
  • The answers are structured, which means you can log them, count them and send low confidence cases to a person.

How do you route support tickets with Clef-Flash?

Step 1: describe your categories

Each category is a name and one sentence that explains it. These are the six we used.

LABELS = {
    "billing": "The ticket is about charges, invoices, refunds, prices or payment methods.",
    "technical_problem": "Something in the product does not work: errors, crashes, slowness or missing data.",
    "account_access": "Login, password, two-factor, invitations, permissions or ownership of the account.",
    "feature_request": "The customer asks for a feature or improvement that does not exist yet.",
    "cancellation": "The customer wants to cancel, close the account or stop renewal.",
    "general_question": "A question about the company, policies, pricing options or documentation, with no problem to fix.",
}Code language: JSON / JSON with Comments (json)

Step 2: send the tickets in one request

The request has the model name, a state that holds the tickets as numbered sentences, and one question per ticket that points to its number.

import os
import requests

tickets = ["I was charged twice this month, please refund the duplicate.",
           "The dashboard stays blank after login on Chrome.",
           "Vorrei disdire l'abbonamento, come faccio?"]

body = {
    "model": "clef-flash",
    "state": {"sentences": [{"id": i, "text": t} for i, t in enumerate(tickets)]},
    "questions": {
        f"t{i}": {"type": "choice", "criteria": LABELS,
                  "instructions": f"Which category best describes the customer message in sentence [{i}]? Choose exactly one."}
        for i in range(len(tickets))
    },
}

response = requests.post(
    "https://api.regolo.ai/v1/systemone",
    headers={"Authorization": f"Bearer {os.environ['REGOLO_API_KEY']}"},
    json=body, timeout=60,
)
response.raise_for_status()
for name, answer in response.json()["answers"].items():
    print(name, answer["choice"], round(answer["confidence"], 2))Code language: Python (python)

Each answer contains the chosen label, a confidence between 0 and 1 and the probabilities of all the options, so you decide what happens next: route automatically, or ask a person when the confidence is below your own limit.

How accurate and fast is Clef-Flash for ticket classification?

We wrote 60 realistic tickets, 10 for each of the six categories and 8 of them in Italian, labeled them ourselves and sent all of them in a single request.

MeasurementResult
Tickets classified correctly55 of 60 (91.7%)
Time for one request with 60 tickets1.35 to 2.17 seconds
Same answers in three repeated runsyes, all 60 identical
Estimated cost per request of 60 ticketsabout 0.0135 US dollars
Estimated cost per 1,000 ticketsabout 0.22 US dollars
Training examples needednone

The cost is an estimate that multiplies the tokens reported by the API (about 90,000 input tokens per request, no output tokens) by our catalog rates, and it is not an invoice.

The results by category show where the model was strongest.

CategoryCorrect
Technical problem10 of 10
Account access10 of 10
Feature request10 of 10
Cancellation10 of 10
General question9 of 10
Billing6 of 10

Four categories were perfect, including tickets written in Italian such as “Vorrei disdire l’abbonamento, come faccio?” and “Ho cambiato email aziendale e non riesco più ad accedere al mio profilo”.

Four of the five tickets that did not match our labels are billing tickets that also describe a problem (a receipt download error, an expired card, a wrong company name on an invoice) or a question about plans and payment methods, and one more is a payment methods question that we had labeled as a general question.

How does it compare with other ways to route tickets?

Keyword rulesTrained classifierClef-Flash on Regolo
What you need to starta rule list per categorylabeled examples for every categoryone sentence per category
Adding a categorywrite and test new rulescollect examples and retrainadd a sentence and run again
Several languagesone rule set per languagedepends on the training datatested with English and Italian in one request
Outputa labela label and a scorea label, a confidence and the probability of each option

The first two columns describe how these approaches usually work, and only the last column comes from our own test.

ZERO DATA RETENTION

Get engineering notes and model releases in your inbox.

Sovereign AI inference, OpenAI-compatible, EU-hosted. Benchmarks, new models (Mistral, Qwen, GLM), and cost insights. One email, no spam.

✓

Thank you for subscribing!

Please check your inbox to confirm your subscription.

100% European infrastructure · Zero spam · Unsubscribe anytime.

Frequently asked questions

How do you classify support tickets without training data?

Describe each category in one plain sentence and send the tickets to Clef-Flash with those descriptions. In our test of 60 tickets, 55 matched our labels (91.7%) without any example tickets.

How accurate is Clef-Flash for ticket classification?

On our own 60 tickets it matched our labels 91.7% of the time, with four categories at 10 of 10. The test used tickets we wrote and labeled ourselves, so check it on a week of your real tickets before relying on the figure.

How much does it cost to classify tickets with Clef-Flash?

About 0.22 US dollars per 1,000 tickets in our test, estimated from the tokens reported by the API and the Regolo catalog rates.

Can Clef-Flash classify tickets in several languages?

Yes, the same request can mix languages. Our test included 8 Italian tickets among English ones, and 6 of the 8 matched our labels.

How many tickets fit in one request?

Up to 64 questions per request, so send larger volumes in batches of 64.


Ship Private AI. Not Infrastructure.

You have the private AI App architecture, bow give it an inference layer built for production.

Regolo gives European teams fast, OpenAI-compatible access to Mistral, Llama, Qwen, DeepSeek, GLM, and more — with zero data retention, EU data residency, and no new SDK to learn.

Change your base_url. Keep your LangChain code. Start shipping.

🚀 Start your 30-day free trial →

Build, test, and deploy with no infrastructure to maintain.
No credit card. No migration project. No compromise on data control.

💬 Join the Regolo Discord →

Meet builders working on private RAG, local LLMs, LangChain, Ollama, and production AI systems. Share your setup, get feedback from the community, and speak directly with the Regolo team.

🤝 Talk to an AI Infrastructure Engineer →

Running a sensitive workload, scaling beyond a proof of concept, or assessing a managed EU inference provider? Get a tailored architecture and commercial proposal for your team.

📂 Clone the GitHub repository →

Get the full implementation from this guide: ingestion scripts, ChromaDB setup, hybrid retrieval, the 30-Question RAG Floor, evaluation examples, and deployment configuration.

Private AI should not require a private data center.
Regolo gives your team an EU-native path from local experimentation to production-grade inference.


Build with Regolo


Built with ❤️ by the Regolo team. Questions? regolo.ai/contact or chat with us on Discord