Try it with your own rules
Start from the preset below, adapt the questions, and inspect the typed answers. Run it live in the playground — it is the same request shape your application will send.
What Jev returns
Illustrative output for the preset below — run it live to get real values for your input.
hi — my order #A-8271 was supposed to arrive last Friday and tracking has not moved in 6 days. can someone check? also is the blue version coming back in stock?
What does the customer mainly want?
Should a human agent take over?
P(yes) = 0.72 — a stalled shipment needs a lookup the bot cannot do
How urgent is this conversation?
From one example to a reusable workflow
List only the intents you can act on
Each intent should map to a flow, an answer or a queue you actually have. Keep an explicit "other" so unrelated messages have somewhere to go.
Treat hand-off as its own decision
Whether a person should take over is not the same question as what the customer wants. Ask it separately and set its threshold from the cost of a bad bot answer.
Log the second intent
The probability map often shows two real intents (here: tracking and stock). Route on the first and let the bot acknowledge the second.
Keep the criteria separate
| Check | What it measures | How to use it |
|---|---|---|
| Intent · Choice | What does the customer mainly want? | Definitions are the routing table — merge intents that lead to the same action. |
| Hand-off · Yes/No | Should a person take over? | Lower the threshold for high-value or angry customers; raise it for routine questions. |
| Urgency · Score | How time-sensitive is it? | Use it to order the human queue, not to decide whether the bot answers. |
The problem
Intent classifiers trained for one domain break when the product changes, and generative models return prose you have to parse. A typed intent over your own labels is easier to test and to change.
Change the labels, not the model
Adding an intent is an edit to the request, not a retraining job. Measure each change on a set of labelled messages before it ships.
Pair it with a generator when needed
Use Jev for the branch, then call a general LLM only on the intents that need a written reply. The cheap decision decides whether the expensive call is needed.
FAQ
How many intents can I define?
A choice question accepts up to 255 options, but accuracy and maintenance are better with a short, well-defined list of the intents you can act on.
Does it work in other languages?
The same request shape works across languages. Keep the question and option definitions in one language and test it on messages from each market.
How is this different from support triage?
Intent routing decides what a chatbot should do with a message. Support triage decides which human queue owns a ticket and how urgent it is.