CUSTOMER OPERATIONS / CHOICE

Customer Feedback Classification with Jev

Turn product feedback into useful themes with Jev AI classification. Distinguish bugs, feature requests, usability friction, and positive feedback.

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

The scenario

Feedback arrives through interviews, chat, and survey comments. Grouping it into a small set of themes can help a product team find what deserves closer reading. Categorization should preserve the substance of a comment: a polite feature request is still a feature request, not merely positive sentiment.

Define the decision boundary

A theme is an organizational aid, not a roadmap priority. Keep frequency, affected workflows, reproducibility, and customer impact as separate signals. Do not infer a person’s characteristics from their writing style.

From input to next step

  1. Provide one comment and define how bug reports differ from missing features.
  2. Choose the main theme while allowing an uncategorized review option.
  3. Aggregate suggestions and read representative comments before making product decisions.

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: Feature request is plausible because bulk export is described as a missing capability. The example makes no claim about how often customers request it.

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
140 / 20,000
A
B
C
D
E
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": "Feedback: I can export one report at a time, but I need to download every report for the month together. Could you add a bulk export button?",
    "questions": {
      "decision": {
        "type": "choice",
        "instructions": "Which product feedback theme best describes the main request?",
        "criteria": {
          "Bug report": "Bug report",
          "Feature request": "Feature request",
          "Usability friction": "Usability friction",
          "Positive feedback": "Positive feedback",
          "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 missing functionality into a failure

A previously working function now fails. Compare Bug report with the original Feature request and check whether the distinction is consistent.

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": "Feedback: I can export one report at a time, but I need to download every report for the month together. Could you add a bulk export button?",
    "questions": {
      "decision": {
        "type": "choice",
        "instructions": "Which product feedback theme best describes the main request?",
        "criteria": {
          "Bug report": "Bug report",
          "Feature request": "Feature request",
          "Usability friction": "Usability friction",
          "Positive feedback": "Positive feedback",
          "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

Have reviewers independently label a sample and resolve category disagreements. Measure per-category precision and review rate. Keep duplicate comments separate from unique affected users when analyzing volume.

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

Can I use these labels as sentiment scores?+

No. Themes and sentiment answer different questions. A frustrated customer may report a bug or request a feature; add a separate rubric only if that distinction helps your workflow.

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.