n8n-nodes-typesafe

September 18, 2026 · View on GitHub

n8n community node for TypeSafe System One models. Ask typed questions about your data and get back calibrated probabilities your workflow can branch on — not free text you have to parse.

Node: TypeSafe

Operation Ask Questions sends a state plus a map of questions to POST /v1/systemone and returns one answer per question.

All questions in the node go out in a single request and are evaluated in parallel against the same state. That is the point: per TypeSafe's parallel questions cookbook, batching is dramatically cheaper and faster than one call per question, so put independent questions in one node rather than chaining several.

Question types

TypeAnswerUse for
Noulnoul: probability 0–1 that the answer is yeswhether a condition holds
Choicechoice + probabilities per option + confidencepicking one option from a set
Scorescore (probability-weighted, can land between levels) + legend + probabilities + confidencerating against ordered levels

Options are written one per line as option = description (the description is optional). Score levels are one per line, lowest to highest, at least two.

For structured instructions or criteria — see Advanced: structure — switch a question to Define as JSON and supply the whole question object.

Output

By default each item carries the full response:

{
  "model": "jev-1.13.0",
  "answers": {
    "is_urgent": { "type": "noul", "noul": 0.92 },
    "department": {
      "type": "choice",
      "choice": "technical",
      "probabilities": { "billing": 0.08, "technical": 0.85, "sales": 0.07 },
      "confidence": 0.82
    }
  },
  "usage": { "input_tokens": 312, "output_tokens": 48 }
}

The Simplify option reduces this to { "is_urgent": 0.92, "department": "technical" }. It is off by default on purpose: it discards the probabilities and confidence that tell you whether a judgment is safe to act on. See Confidence before turning it on.

Output mode

By default the node has one output carrying every answer. Set Output Mode to One Output per Question and it grows one branch per question instead, labelled with the question id, so each judgment can drive its own downstream logic — is_urgent notifies, department assigns, frustration escalates.

This does not change how many API calls are made. Every question still travels in a single request and is answered against the same state; only the delivery side splits.

Each branch emits { questionId, ...answer }, so probabilities and confidence stay available where you branch on them. With Simplify on, a branch emits { <id>: value } instead. A question the model did not answer leaves its branch empty rather than passing a blank item on. With Continue On Fail, failures leave by the first branch, which is the convention n8n's own Switch node uses.

Rewiring: n8n stores connections by position, not by name. Adding, removing or reordering questions shifts the branches underneath existing links, and nothing will warn you — the wiring simply points at a different judgment. Check the connections after changing the question list.

Options

OptionDefaultNotes
Max Retries3Retries 429 Too Many Requests and 529 Overloaded, honouring retry-after, otherwise exponential backoff. Other statuses fail immediately.
Put Output in FieldNest the result under a field
SimplifyfalseAnswer values only, dropping probabilities and confidence

Credential: TypeSafe API

FieldDefault
API Key— (sent as Authorization: Bearer …)
Base URLhttps://api.typesafe.ai/v1

The credential test and the Model dropdown both call GET /v1/models. Versioned IDs such as jev-1.13.0 are accepted by the API even when the list only shows aliases — set the Model field via expression to pin one.

Community node, not affiliated with or endorsed by TypeSafe. "TypeSafe", "Jev" and the TypeSafe logo belong to TypeSafe; this package only talks to their public API. The MIT licence covers this package's own code.

Install

In n8n: Settings → Community nodes → Installn8n-nodes-typesafe.

Development

npm install --ignore-scripts
npm run build
npm run lint

--ignore-scripts is recommended: n8n-workflow pulls in isolated-vm, whose native build this package never uses — it only needs the types.

To try the node in a local n8n instance:

npm run build && npm link

then npm link n8n-nodes-typesafe inside ~/.n8n/custom and restart n8n.

License

MIT © Marco Zampieri