Classify Support Tickets with AI
Billing, Technical, Account, How-To, Feature Request — ticket triage with definitions that decide the borderline cases for the model.
Safe, Spam, Harassment, Hate, Adult — multi-label policy classification with Strict Other and numeric confidence, built for review queues.
Moderation is the classification setting with the worst failure costs in both directions: a forced wrong label either censors safe content or publishes harmful content. This setup labels user-generated content against five policy categories in Multiple Labels mode (content can violate two policies at once), under Strict ambiguity — anything that fits no category returns "Other" for human review — with 0–100 confidence per label so the queue can auto-action only the unambiguous cases. The definitions keep adjacent harms apart: Harassment targets a person; Hate targets a group with hostility or discrimination.
Label, don't action
The prompt produces labels and confidence — the auto-hide / human-review / publish thresholds live in your system.
Route by confidence bands
90+ on Safe can publish; 90+ on a harm category can auto-hold; everything else queues for a person.
Keep Other visible
Content that fits no category is exactly what a policy team needs to see — Strict mode guarantees it surfaces.
The two definitions overlap deliberately: Harassment is content that attacks, threatens, or demeans a person or group, while Hate is hostile or discriminatory content targeting a person or group. A threat laced with identity-based hostility satisfies both. Running in Multiple Labels mode, the classification returns every label that applies, ordered strongest-first, so a post can legitimately carry both.
Each label carries a 0-100 score with defined bands: 90 or above is an unambiguous fit, 60-89 is a good fit with some uncertainty, and below 60 marks the best available choice for a shaky call. The prompt states the number is self-reported certainty, not a computed probability, so treat a low band as a queue-for-a-human signal rather than a measured error rate.
It returns one JSON object with a 'labels' array of label/confidence pairs, like { "label": "Spam", "confidence": 64 }, ordered strongest-fit first. The output rules forbid markdown fences or any text around the JSON and require the exact label text with no paraphrasing or abbreviations, so a strict parser plus an allow-list of the five labels and 'Other' will catch drift wherever you run the prompt.
Billing, Technical, Account, How-To, Feature Request — ticket triage with definitions that decide the borderline cases for the model.
The blocks a reliable classification prompt needs: defined labels, classification rules, edge-case rules, an ambiguity policy, and a confidence contract.
Praise, Complaint, Feature Request, Bug Report, Question — multi-label feedback categorization where one message can carry three signals.
Free text in, named fields out. The extraction prompt pattern that turns any unstructured text into consistent, parseable records.
Stop getting 'Sure, here is the JSON…' — the output-contract pattern that forces models to return only parseable JSON: schema, example, and a strict rule block.
The JSON won't parse and you can't see why. Deterministic cause-sniffing — trailing commas, single quotes, unclosed brackets — and the repair prompt that fixes it.
Build classification prompts that assign labels from a closed set — with label definitions and edge-case rules.