Ticket urgency
Rate how soon a message needs a response, and send unclear cases to a person.
Problem
First-in, first-out queues treat an outage the same as a request for an old invoice. Keyword rules miss urgency that is described rather than shouted.
Goal
Place each message on a written urgency rubric so code can choose a queue, and catch messages that don't say enough to be placed.
Input / state
The message, and optionally the team it was routed to.
- message
- The customer's message, unedited.
- team
- Optional: the team chosen by routing, for context.
Decision question
urgencyHow soon does this message need a response from the support team?
Rubric levels
0Can wait: a general question or feedback with no time pressure.1This week: a problem with a workaround, or a request that isn't blocking.2Today: a problem blocking the customer's work, or a stated same-day deadline.3Immediately: an outage, a security concern, or a problem stopping the customer's business right now.
Allowed outcomes
Decided in your code from the answer and its confidence. Thresholds are yours to set and test.
- Standard queueScore below 1.5 with confidence above your threshold.
- Priority queueScore from 1.5 to below 2.5 with confidence above your threshold.
- Page on-callScore of 2.5 or more with confidence above your threshold.
- Unclear urgencyConfidence below your threshold: the message doesn't make its urgency clear.
Example scenarios
Predefined demonstrations. No model is called; the outcome shown is an illustrative judgment.
Example state
{
"message": "Checkout has been failing for every customer since 09:10. We're losing sales every minute."
}Outcome
IllustrativeScore of 2.5 or more with confidence above your threshold.
Why
An ongoing outage that stops the customer's business is the top level of the rubric.
Using it well
- Check confidence before the score. A middle score with low confidence usually means the message is ambiguous, not moderately urgent.
- Keep rubric levels concrete and observable, such as "stopping the customer's business", rather than "very urgent".
- Paging a person is costly, so give that branch the strictest threshold.
Request definition
POST https://api.typesafe.ai/v1/systemone{
"model": "jev-latest",
"state": {
"message": "<message>",
"team": "<team>"
},
"questions": {
"urgency": {
"type": "score",
"instructions": "How soon does this message need a response from the support team?",
"criteria": [
"Can wait: a general question or feedback with no time pressure.",
"This week: a problem with a workaround, or a request that isn't blocking.",
"Today: a problem blocking the customer's work, or a stated same-day deadline.",
"Immediately: an outage, a security concern, or a problem stopping the customer's business right now."
]
}
}
}Request shape from the System One API reference; a Kev server accepts the same body. Replace the placeholder state with your data. Requests need your own API key or server.