Use cases
Jev Use Cases
Eight complete request bodies, ready to paste into the playground or adapt in code. Each one sends a state plus typed questions to /api/v1/decisions and gets back a Noul, Choice, or Score you can branch on — one credit per successful call.
Updated
Route a blank checkout
Use a Choice like this to send every inbound ticket to one of your queues. The answer names the team and carries a probability per option, so a close call can fall back to a human instead of a wrong queue.
Choice returns the owning team and the probability of each team.
{
"model": "jev-1.13",
"state": "Checkout shows a blank page after Pay is clicked. The customer is on the live store, not a sandbox.",
"questions": {
"team": {
"type": "choice",
"instructions": "Which team should own this ticket?",
"criteria": {
"payments": "Checkout, billing, or payment processing.",
"frontend": "Rendering, layout, or browser behavior.",
"account": "Login, permissions, or profile access."
}
}
}
}Open this request in the playgroundIs this a refund ask?
A Noul is the right shape when the question is binary — does this message ask for money back. Gate a refund macro or a review queue on the noul value rather than parsing generated text.
Noul returns a yes probability, not a paragraph to parse.
{
"model": "jev-1.13",
"state": "I was charged twice for the same annual plan this morning. Please send the extra charge back.",
"questions": {
"refund": {
"type": "noul",
"instructions": "Is the customer asking for money back?"
}
}
}Open this request in the playgroundHow urgent is the payout failure?
Score fits ranked judgment. Define your own levels — here a three-step urgency scale — and use the fractional score to sort a backlog instead of reading labels by hand.
Score places the note on your scale and returns the distribution.
{
"model": "jev-1.13",
"state": "Stripe payouts have been failing for three days and the merchant is losing sales.",
"questions": {
"urgency": {
"type": "score",
"instructions": "How urgent is this ticket?",
"criteria": [
"Can wait for the next release",
"Should be handled this week",
"Blocking revenue right now"
]
}
}
}Open this request in the playgroundCredential request in a message
Run a Noul in front of a human review queue as a pre-filter. Messages asking for credentials get flagged by probability; the runner-up probability tells you how much to trust the gate.
A Noul probability is the gate before a human review queue.
{
"model": "jev-1.13",
"state": "User message: \"Share your login and I will fix the account for you tonight.\"",
"questions": {
"phishing": {
"type": "noul",
"instructions": "Is this message asking someone to hand over account credentials?"
}
}
}Open this request in the playgroundQualify an inbound note
Choice separates buying intent into the buckets your sales process already has — ready, nurture, ignore — so routing rules stay explainable and each option keeps its probability.
Choice separates a buying window from a note that only shows interest.
{
"model": "jev-1.13",
"state": "We route 40,000 support tickets a week and need a probability before we auto-assign a queue. Budget is approved this quarter.",
"questions": {
"fit": {
"type": "choice",
"instructions": "How should sales treat this inbound note?",
"criteria": {
"ready": "A real workflow, a volume, and a buying window.",
"nurture": "Interest without a stated workflow or timeline.",
"ignore": "No product fit."
}
}
}
}Open this request in the playgroundGuaranteed-return listing
Noul works for policy checks where the rule is written in plain language. The listing either promises a guaranteed return or it does not — the probability is your enforcement signal.
Noul answers the policy question you wrote, not a generic safety essay.
{
"model": "jev-1.13",
"state": "Listing text: \"Guaranteed 30% returns every month. Send crypto to this wallet to join.\"",
"questions": {
"blocked": {
"type": "noul",
"instructions": "Does this listing promise a guaranteed financial return?"
}
}
}Open this request in the playgroundRenewal risk in a note
Score renewal risk on your own ladder instead of a vendor's sentiment score. Because the levels are yours, the fractional score maps directly to the playbook step you already run.
Score uses your three levels, from unlikely to likely to cancel.
{
"model": "jev-1.13",
"state": "The renewal note says the team may not continue because exports fail every Friday and nobody has answered the last two tickets.",
"questions": {
"risk": {
"type": "score",
"instructions": "How high is the chance this account does not renew?",
"criteria": [
"Unlikely to leave",
"Unhappy, still using the product",
"Likely to cancel"
]
}
}
}Open this request in the playgroundWhich invoice exception?
Choice with a 'both' option catches compound exceptions without a second call. Accounts payable gets the exception type plus per-option probabilities to route the dispute.
Choice can name over-PO, an unexpected line, or both, with probabilities.
{
"model": "jev-1.13",
"state": "Vendor invoice 4481 is $18,400. The purchase order cap is $12,000 and the line items include a new annual license nobody requested.",
"questions": {
"exception": {
"type": "choice",
"instructions": "Which exception should accounts payable open?",
"criteria": {
"over_po": "The amount is above the purchase order.",
"unexpected_item": "A line item was not requested.",
"both": "The amount and a line item are both wrong."
}
}
}
}Open this request in the playgroundPatterns that compose
The examples above are single calls. TypeSafe's docs describe a few patterns for combining them:
- Confidence-gated routing — act automatically only when confidence clears your bar, and send the rest to a person.
- Speculative fan-out — ask the same question with reordered Choice options or a trimmed state, and compare answers for consistency.
- Guardrails — run a Noul on user input before it reaches a generative model or a production action.
- RAG passage filtering — use a Noul or Score per candidate passage to keep only the relevant context before generation.
FAQ
How much does each example cost to run?
Each request is one call to /api/v1/decisions, so a successful run uses 1 credit regardless of how many questions it carries. Validation errors and upstream failures are free.
Can I ask several of these at once?
Yes — questions is a map, so a routing Choice, a refund Noul, and an urgency Score can share one state in a single call and still cost 1 credit.
How do I run these from code instead of the playground?
POST the same JSON body to https://jev-api.org/api/v1/decisions with a Bearer key, or use the TypeSafe SDK pointed at https://jev-api.org via /v1/systemone.
What does confidence mean in the answers?
Choice and Score answers carry a confidence derived from the probability distribution — low confidence or two close options mean the decision was borderline and is a candidate for human review.
Run one now
Each request above opens prefilled in the playground. Add a small one-time credit pack on the pricing page, sign in, and run it — a failed call uses no credits.