Skip to content

n8n

The n8n-nodes-curva community node puts Curva in an n8n workflow. Its headline operation, Route, sends each item down the branch of its answer, and every answer below your confidence bar to a Needs review branch, where a human decides and the node’s Feedback operation teaches Curva.

The package is n8n-nodes-curva on npm.

  1. In n8n (self-hosted): Settings → Community Nodes → Install, enter n8n-nodes-curva.
  2. Start a Curva server: curva serve (default http://localhost:7777; from n8n in Docker use http://host.docker.internal:7777).
  3. Add a Curva API credential: the base URL, and a curva_… key if the server has keys (curva keys create --name n8n).

Configure one question:

  • Choice: instructions and options (key + description). Each option key becomes an output branch, in order, plus none_of_these when None of These is on (the default).
  • Yes / No: branches Yes and No.

Min Confidence (default 0.8) decides what a human sees: answers below it leave on the last branch, Needs review. The State is the whole item, some of its fields, or an expression.

Every routed item keeps its data and gains a curva field:

{ "curva": { "id": "dec_…", "question": "department", "answer": "billing", "confidence": 0.93,
"probabilities": { "billing": 0.93, "technical": 0.04, "sales": 0.01, "none_of_these": 0.02 },
"calibrated": false, "abstain": false } }

The branches update as you edit the options: like n8n’s Switch node, the node computes its outputs from its own parameters.

End the Needs review branch with a Curva node on Feedback. Its defaults read the decision id and question key from the item’s curva field; set True Label to the human’s answer (an option key, true/false, or a level index). From 30 labels for a question in a project, Curva calibrates its confidences for your data whenever that makes them more accurate; see Calibrate with feedback. Calibration Report shows the before and after.

Decide takes questions as JSON in the HTTP API format and attaches all answers to the item as curva.answers, exactly as the server returns them. Use it when one item needs a score, a yes/no and a choice at once, and route afterwards with an IF or Switch node.

Import n8n-ticket-triage.json with Workflows → Import from File: sample tickets → Route (billing, technical, sales, none_of_these, Needs review) → queues, with the review branch ending in Feedback.

Model (an id, or JSON for a fallback list, council or cascade), Project (calibration namespace), and under Options: config, debias, images, privacy and think. With On Error → Continue, a failed item goes to the last output with an error field.

© 2026 Tarkova Private Limited.