CUSTOMER OPERATIONS / CHOICE

Email Intent Classification with Jev AI

Classify incoming email by intent using Jev Choice. Separate demo requests, pricing questions, account help, and messages needing manual review.

By AIJev Editorial · Reviewed September 18, 2026 · Interactive walkthrough

The scenario

A small team shares one contact address for product questions and existing customers. Sorting by intent can suggest an appropriate workflow before anyone writes a reply. The same word, such as plan, can refer to purchasing, changing billing, or arranging a meeting, so the full message matters.

Define the decision boundary

Classify the request without sending a reply, scheduling a meeting, or changing subscription settings. For messages with several requests, define whether the primary intent means the first request or the action needed most urgently.

From input to next step

  1. Supply the subject and message without unnecessary contact details.
  2. Choose the primary intent from a short, stable taxonomy.
  3. Show the suggestion to the inbox owner and preserve the original message for review.

Try it. Then change one thing.

Compare the original scenario with a deliberate variation. You can edit either input, run Jev, inspect the result, and share your decision card. Loading an example does not send a model request.

What to look for: Book a demo is plausible because the sender asks for a product walkthrough. Tuesday is a proposed time, not a confirmed appointment.

Start with the original input, then compare the variation. Run each scenario to see the real model response. Switching scenarios resets the form and result.

⌘ Playground v1.13
typesafe/jev-1.13↗
01 / INPUT
162 / 20,000
A
B
C
D
50 free / IP decisions per day↻ --:--:--
02 / OUTPUT
⑂

A little context.
A clear decision.

Give Jev a state and a question.
Your decision, probabilities, and insights
will appear right here.

Ready when you are
START WITH AN EXAMPLE
FROM PLAYGROUND TO PRODUCTION

Take the pattern to
your next build.

Inspect the request shape.
Build with Jev through its official docs.

Visit Jev official docs ↗
AIJEV PLAYGROUND REQUEST SHAPE.
{
  "playground": "https://aijev.net",
  "language": "JavaScript",
  "request": {
    "model": "typesafe/jev-1.13",
    "state": "Subject: Team plan walkthrough\nMessage: We are comparing tools for our design team. Could someone show us how shared workspaces and permissions work next Tuesday?",
    "questions": {
      "decision": {
        "type": "choice",
        "instructions": "What is the primary intent of this email?",
        "criteria": {
          "Book a demo": "Book a demo",
          "Ask about pricing": "Ask about pricing",
          "Get account help": "Get account help",
          "Other / review": "Other / review"
        }
      }
    },
    "provider": {
      "allow_fallbacks": false
    }
  },
  "note": "AIJev Playground request shape only. For application integration, visit https://docs.typesafe.ai."
}
AIJev Playground only Not a public integration API

Experiment: change a walkthrough into a pricing question

The explicit rejection of a demo should outweigh the word demo appearing in the message. Look for Ask about pricing.

Use the second scenario tab above to load this variation. Compare the returned decision as well as any probabilities: a changed answer can reveal an unclear policy, and an unchanged answer can reveal that the relevant detail was not captured by your question.

Use this pattern in your application

This playground request shape uses the original scenario. It is a reference for the input, not a public integration endpoint. For application integration, follow the official TypeSafe documentation linked in our Jev API guide. Keep API keys on the server and validate the returned type before taking action.

{
  "playground": "https://aijev.net",
  "language": "JavaScript",
  "request": {
    "model": "typesafe/jev-1.13",
    "state": "Subject: Team plan walkthrough\nMessage: We are comparing tools for our design team. Could someone show us how shared workspaces and permissions work next Tuesday?",
    "questions": {
      "decision": {
        "type": "choice",
        "instructions": "What is the primary intent of this email?",
        "criteria": {
          "Book a demo": "Book a demo",
          "Ask about pricing": "Ask about pricing",
          "Get account help": "Get account help",
          "Other / review": "Other / review"
        }
      }
    },
    "provider": {
      "allow_fallbacks": false
    }
  },
  "note": "AIJev Playground request shape only. For application integration, visit https://docs.typesafe.ai."
}

How to evaluate this workflow

Review intent labels from real inbox traffic after removing personal details. Track disagreements by label, especially pricing versus demo requests. Watch the review bucket for recurring intents that deserve a new category.

Save a held-out set before changing your instructions. Compare new versions against the same examples, and review disagreements instead of assuming a valid response is a correct one. For escalation design, see confidence-based routing.

Frequently asked questions

What about an email that asks for pricing and a demo?+

Choose and document a primary-intent policy, or run separate yes/no checks for each intent if your workflow needs multiple labels. This example intentionally returns one category.

Are these results from a real customer deployment?+

No. These are original educational scenarios. The expected outcomes are editorial hypotheses; clicking Run Jev sends the displayed input to the model and shows its actual response.

Can I adapt this example to my own workflow?+

Yes. Replace the context, define your choices or rubric, and test against examples from your domain. The playground uses text input. Do not include credentials or unnecessary personal information.

References & further reading

Background on assigning categories to text. This Jev example is an independent implementation exercise, not a Microsoft integration. See Microsoft Learn: Custom text classification.

For the underlying decision primitives, read TypeSafe’s System One documentation and our guide to Choice, Score, and Noul.