Blog

Jev dans n8n : router vos tickets avec un seuil de confiance

Ce guide montre comment appeler Jev, le modèle de décision de TypeSafe AI, depuis n8n. Vous routez chaque ticket vers le bon service. Quand Jev n’est pas assez sûr, la décision repasse à votre LLM actuel.

Par Étienne Lescot · 23 septembre 2026

Télécharger le workflow n8nTesté le 23/09/2026 avec n8n 2.40 et jev-1.13.0. À importer via le menu du workflow, puis « Import from File ».

TicketJevconfiance ≥ seuil ? oui : bon servicenon, erreur : LLM n8n · journal de chaque décision

Ce que vous allez construire

  • Un nœud HTTP Request qui envoie le ticket à Jev avec deux questions : quel service, et est-ce urgent.
  • Un journal qui garde la version du modèle, les probabilités et la confiance de chaque décision.
  • Un seuil de confiance : au-dessus, le ticket part vers le service choisi par Jev. En dessous, il repasse à votre LLM.
  • Un repli automatique en cas d’erreur, de délai dépassé ou de limite de débit.

Avant de commencer

  • Une instance n8n, en cloud ou auto-hébergée.
  • Une clé API Jev, créée dans la console TypeSafe. Les inscriptions à Jev sont suspendues temporairement : vérifiez votre accès.
  • Aucun nœud communautaire n’est nécessaire. Le nœud HTTP Request suffit, et il fonctionne aussi sur n8n Cloud.

1. Créer l’identifiant Jev

Dans n8n, créez un identifiant de type Header Auth.

  • Name : Authorization
  • Value : Bearer VOTRE_CLE_JEV

La clé reste chiffrée dans n8n. Elle n’apparaît jamais dans le workflow exporté.

2. Appeler Jev avec le nœud HTTP Request

  • Méthode : POST
  • URL : https://api.typesafe.ai/v1/systemone
  • Authentication : Generic Credential Type, puis Header Auth et votre identifiant.
  • Send Body : activé, en JSON.

Le corps envoie le texte du ticket comme state, et deux questions typées. Une choice choisit un service. Une noul répond par une probabilité entre 0 et 1.

{
  "state": "Bonjour, ma facture de septembre apparaît deux fois sur mon relevé. Pouvez-vous rembourser le doublon ?",
  "model": "jev-1.13.0",
  "questions": {
    "service": {
      "type": "choice",
      "instructions": "Quel service doit traiter ce ticket ?",
      "criteria": {
        "facturation": "Paiements, factures, remboursements",
        "technique": "Bugs, pannes, intégrations",
        "commercial": "Tarifs, devis, nouveaux comptes"
      }
    },
    "urgent": {
      "type": "noul",
      "instructions": "Le message exprime-t-il une urgence ?"
    }
  }
}

Épinglez la version. L’alias jev-latest change à chaque nouvelle version, et vos seuils avec. Le workflow utilise jev-1.13.0. Vous passerez à la suivante quand vous l’aurez recalibrée.

3. Lire la réponse

Jev renvoie une réponse par question, sous le même nom. Voici la réponse réelle de jev-1.13.0 à notre ticket, lors du test du 23 septembre 2026. Le nœud HTTP Request a mis 368 ms.

{
  "model": "jev-1.13.0",
  "answers": {
    "service": {
      "type": "choice",
      "choice": "facturation",
      "confidence": 1,
      "probabilities": {
        "facturation": 1,
        "commercial": 0,
        "technique": 0
      }
    },
    "urgent": {
      "type": "noul",
      "noul": 0.14
    }
  },
  "usage": {
    "input_tokens": 389,
    "output_tokens": 61
  }
}
  • choice : l’option la plus probable.
  • probabilities : la probabilité de chaque option. Leur somme vaut 1.
  • confidence : la certitude, calculée à partir des probabilités. Ici, Jev est certain. Pour 3 options, la documentation en donne une approximation, (3 × pmax − 1) ÷ 2, que nos appels réels retrouvent : 0,75 donne 0,63.
  • model : la version qui a répondu. Gardez-la dans votre journal.

4. Router selon la confiance

Le nœud Journal de décision calcule qui décide, Jev ou votre LLM :

{{ $json.answers.service.confidence >= $('Ticket et réglages').item.json.seuil ? 'jev' : 'llm' }}

Un nœud If envoie ensuite les décisions de Jev vers un Switch, qui route par service. Le reste part vers votre LLM actuel.

Le seuil de départ est 0,6, la valeur prise dans les exemples de TypeSafe. Ce n’est pas une valeur à garder en production : voir « Choisir le bon seuil ».

5. Gérer les erreurs et le repli

  • Retry On Fail : 3 essais, 1 seconde d’écart. Jev renvoie 429 au-delà de sa limite de débit et 529 quand il est surchargé.
  • Timeout : 5 secondes. Jev répond d’ordinaire bien plus vite.
  • On Error : Continue (using error output) : une erreur ne bloque pas le workflow. Le ticket part vers votre LLM.
  • Dans le nœud de repli, reprenez le texte avec {{ $('Ticket et réglages').item.json.ticket }}.

6. Garder une trace de chaque décision

Envoyez le journal vers Postgres, Google Sheets ou votre outil habituel. Pour chaque ticket, il contient la version du modèle, le service choisi, les probabilités, la confiance, le seuil appliqué et le chemin suivi. C’est ce qui vous permet de recalibrer, et de répondre à un audit.

Choisir le bon seuil

Un seuil ne se devine pas. Il se mesure sur vos données.

  1. Prenez 400 tickets passés, avec le bon service connu.
  2. Faites-les passer dans le workflow en mode shadow : Jev répond, mais rien n’est routé.
  3. Pour chaque seuil entre 0,5 et 0,95, calculez deux chiffres : la part de tickets que Jev traite seul, et son taux d’erreur sur cette part.
  4. Retenez le seuil le plus bas dont le taux d’erreur reste acceptable pour vous.

Faites-le dans votre langue. Jev est d’abord entraîné en anglais. TypeSafe recommande de tester sur vos propres contenus avant de l’utiliser dans une autre langue.

Combien ça coûte

Jev facture 0,042 $ par million de tokens d’entrée. Les tokens de sortie sont gratuits.

  • 100 000 tickets par mois, à 500 tokens chacun : 50 millions de tokens, soit 2,10 $ par mois.
  • Le même volume sur Claude Haiku 4.5, avec 50 tokens de sortie : 75 $ par mois.
  • N’oubliez pas les tickets renvoyés au LLM : ils restent facturés au prix du LLM.
  • Dans notre test, le ticket et ses deux questions ont pesé 389 tokens. Mesurez les vôtres.

Avant la production

  • Données : Jev est hébergé aux États-Unis. Pseudonymisez les données personnelles avant l’envoi, et faites valider le transfert par votre DPO.
  • Décisions sensibles : une confiance élevée ne vaut pas autorisation. Toute issue défavorable à une personne doit passer par un humain.
  • Montants et dates : ce sont des points faibles connus de Jev. Traitez-les avec des règles fixes.
  • Injection de prompt : un texte malveillant peut influencer la réponse. Testez-le sur vos entrées.

Jev et TypeSafe sont des marques de TypeSafe AI, Inc. Cet article est indépendant et n’est pas affilié à TypeSafe AI.