"I was charged twice this month and now I can't log in."
{ "team": "billing", "urgent": true }
Where routing usually starts
Most teams route tickets with a frontier model and a prompt. The prompt grows with every edge case, answers shift when the provider updates its model, and the bill rises with every ticket. A specialist does this one job, by your rules, on every ticket.
How it works
- Describe the job. Paste the prompt you use today, or write a sentence: “Label each ticket billing, bug or account. Mark it urgent if the customer can’t log in or was charged twice.” Add a few real tickets if you have them.
- Agree on what good looks like. Facet writes plain statements of a good answer, like “a double charge is always urgent”, each with examples. Edit any that are off.
- Create, then correct. Facet builds the specialist on its own, usually in about half an hour, and checks it against every statement before it goes live. When it gets a ticket wrong, say what should change. Facet quotes the fix before it spends anything.
Three ways to use it
- In the app: sign in, describe the job, and choose Create.
- From your agent: connect Claude, Cursor, ChatGPT, Codex or VS Code to Facet, then paste:
Use Facet to build a specialist that labels our support tickets billing, bug or account
and marks urgent ones. Here are ten real tickets from last week: ... Show me the draft
and the price before you approve anything.
- In your code: keep your OpenAI SDK and change two lines, the address and the model name.
import os
from openai import OpenAI
client = OpenAI(base_url=os.environ["FACET_BASE_URL"], api_key=os.environ["FACET_API_KEY"])
reply = client.chat.completions.create(model="support-triage", messages=[{"role": "user", "content": ticket}])
Why a specialist for routing
- Steady answers. A new version goes live only after it passes every statement you agreed on, and any update rolls back in one step.
- Fast and low cost. A Facet specialist does one job, so it answers faster than a frontier model, and every build shows its price before it starts.
- Better with every correction. Each wrong label you flag becomes a check that every later version must pass.
- Yours. Export it any time, free, and run it wherever you like.
Questions
How many tickets does Facet need to get started?
None are required. Facet can start from a short description and writes its own practice tickets, but a few dozen real ones help it handle the cases your team argues about.
Can Facet use my own teams and labels?
Yes. You name the teams, the urgency rules and any other fields, and Facet returns them in the same shape on every call, such as {"team":"billing","urgent":true}, so your helpdesk can act on the answer directly.
Does Facet keep my customers' tickets?
Facet doesn't store tickets your app sends to a specialist; it keeps only call details such as token counts and response time. Our GPU provider holds each call for up to 7 days, then deletes it. Tickets you add as examples while building stay in your workspace, and you can delete them.