{"_id":"@cqnce/n8n-nodes-cqnce","_rev":"5-abfab66ee014efdd2c004bc6cf2e1da3","name":"@cqnce/n8n-nodes-cqnce","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@cqnce/n8n-nodes-cqnce","version":"0.1.0","keywords":["n8n-community-node-package","n8n","cqnce","human-in-the-loop","approval","authorization","ai-agent"],"author":{"name":"cQnce"},"license":"MIT","_id":"@cqnce/n8n-nodes-cqnce@0.1.0","maintainers":[{"name":"adellepiane","email":"info@cqnce.app"}],"homepage":"https://github.com/cqnce-app/n8n-nodes-cqnce#readme","bugs":{"url":"https://github.com/cqnce-app/n8n-nodes-cqnce/issues"},"n8n":{"nodes":["dist/nodes/Cqnce/Cqnce.node.js","dist/nodes/Cqnce/CqnceApproval.node.js"],"strict":false,"credentials":["dist/credentials/CqnceApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"a5ac0d6e2603511833b13fdbd2f2960a93986cff","tarball":"https://registry.npmjs.org/@cqnce/n8n-nodes-cqnce/-/n8n-nodes-cqnce-0.1.0.tgz","fileCount":21,"integrity":"sha512-q8QxaWXbWe7fPKvCNFwmf1vGTp9iY41p4sYRwqoHvcz/ufxrXb6ds/s7iSBgGRdWUnr6oRDKx48l125CThkNTw==","signatures":[{"sig":"MEQCID+LiXzRFZSOnGiEU+OCVxDi333n9AruUstvApWNmTxOAiAlELWG4ZK+sswSL2zy/nPwT/5Be3lBalW8tJBkkI+apg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cqnce%2fn8n-nodes-cqnce@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65563},"main":"dist/nodes/Cqnce/Cqnce.node.js","types":"./dist/nodes/Cqnce/Cqnce.node.d.ts","engines":{"node":">=20.15"},"gitHead":"a7e665e682c8a043ce8e3e19dc4367e603328be2","scripts":{"dev":"n8n-node dev","lint":"n8n-node lint","test":"vitest run","build":"n8n-node build","lint:fix":"n8n-node lint --fix","test:watch":"vitest","prepublishOnly":"npm run lint && npm test && npm run build"},"_npmUser":{"name":"adellepiane","email":"info@cqnce.app"},"repository":{"url":"git+https://github.com/cqnce-app/n8n-nodes-cqnce.git","type":"git"},"_npmVersion":"10.8.2","description":"n8n community node for cQnce human-in-the-loop authorization","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.0","vitest":"^3.2.4","prettier":"^3.6.2","typescript":"^5.9.3","@types/node":"^24.10.0","@n8n/node-cli":"^0.25.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-cqnce_0.1.0_1788856469735_0.023893590285249067","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@cqnce/n8n-nodes-cqnce","version":"0.1.1","keywords":["n8n-community-node-package","n8n","cqnce","human-in-the-loop","approval","authorization","ai-agent"],"author":{"name":"cQnce","email":"info@cqnce.app"},"license":"MIT","_id":"@cqnce/n8n-nodes-cqnce@0.1.1","maintainers":[{"name":"adellepiane","email":"info@cqnce.app"}],"homepage":"https://github.com/cqnce-app/n8n-nodes-cqnce#readme","bugs":{"url":"https://github.com/cqnce-app/n8n-nodes-cqnce/issues"},"n8n":{"nodes":["dist/nodes/Cqnce/Cqnce.node.js","dist/nodes/Cqnce/CqnceApproval.node.js"],"strict":false,"credentials":["dist/credentials/CqnceApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"c313b97d0c8a9111f3c993c5be01853e881200a8","tarball":"https://registry.npmjs.org/@cqnce/n8n-nodes-cqnce/-/n8n-nodes-cqnce-0.1.1.tgz","fileCount":21,"integrity":"sha512-g1FaYABdKj1Gpd/zlsxQs8lcKcdKAk8ynDrDB23O6DYmnNPLZYYDVY+S7h+ydr+zGn5UBMksEmCHnM+eP5DYCg==","signatures":[{"sig":"MEYCIQDfbYWewjunqnWQJu5aBGXED20G9gy8UQlPv4scj50xdAIhAJUMrlv95cpyiPYWoN0BYxAtCf2W/9Hfmt4Zk1iewOiF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cqnce%2fn8n-nodes-cqnce@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":66084},"main":"dist/nodes/Cqnce/Cqnce.node.js","types":"./dist/nodes/Cqnce/Cqnce.node.d.ts","engines":{"node":">=20.15"},"gitHead":"e09742d1f26142ed1a00565821baa3b61a7d0c2a","scripts":{"dev":"n8n-node dev","lint":"n8n-node lint","test":"vitest run","build":"n8n-node build","lint:fix":"n8n-node lint --fix","test:watch":"vitest","prepublishOnly":"npm run lint && npm test && npm run build"},"_npmUser":{"name":"adellepiane","email":"info@cqnce.app"},"repository":{"url":"git+https://github.com/cqnce-app/n8n-nodes-cqnce.git","type":"git"},"_npmVersion":"11.19.0","description":"n8n community node for cQnce human-in-the-loop authorization","directories":{},"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.0","vitest":"^3.2.4","prettier":"^3.6.2","typescript":"^5.9.3","@types/node":"^24.10.0","@n8n/node-cli":"^0.47.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-cqnce_0.1.1_1788857428264_0.5768223150408298","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@cqnce/n8n-nodes-cqnce","version":"0.1.2","keywords":["n8n-community-node-package","n8n","cqnce","human-in-the-loop","approval","authorization","ai-agent"],"author":{"name":"cQnce","email":"info@cqnce.app"},"license":"MIT","_id":"@cqnce/n8n-nodes-cqnce@0.1.2","maintainers":[{"name":"adellepiane","email":"info@cqnce.app"}],"homepage":"https://github.com/cqnce-app/n8n-nodes-cqnce#readme","bugs":{"url":"https://github.com/cqnce-app/n8n-nodes-cqnce/issues"},"n8n":{"nodes":["dist/nodes/Cqnce/Cqnce.node.js","dist/nodes/Cqnce/CqnceApproval.node.js"],"strict":false,"credentials":["dist/credentials/CqnceApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"d4ca4a71d730faea17a2c17b6b62b9eed7e74e05","tarball":"https://registry.npmjs.org/@cqnce/n8n-nodes-cqnce/-/n8n-nodes-cqnce-0.1.2.tgz","fileCount":21,"integrity":"sha512-CBsSLLpuu1clt1xc9cZz+5Qn+kjZHoKIlqAWyuFOEtOlM18cMABr4htjptevkAxDEZvtGRDEj9asRiI50lkRZQ==","signatures":[{"sig":"MEQCIBdxE5H/Jkw2sKFOYfaSWX0luaE2duDAjiYdCxkRYuFTAiBaevDRLyIszMxxHQkwzWG7QFjtmnRVSZdBmc9msfqGSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cqnce%2fn8n-nodes-cqnce@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":67572},"main":"dist/nodes/Cqnce/Cqnce.node.js","types":"./dist/nodes/Cqnce/Cqnce.node.d.ts","engines":{"node":">=20.15"},"gitHead":"a0cd19d6ba9b279c12e5556f443ed7dd4faf4b2e","scripts":{"dev":"n8n-node dev","lint":"n8n-node lint","test":"vitest run","build":"n8n-node build","lint:fix":"n8n-node lint --fix","test:watch":"vitest","prepublishOnly":"npm run lint && npm test && npm run build"},"_npmUser":{"name":"adellepiane","email":"info@cqnce.app"},"repository":{"url":"git+https://github.com/cqnce-app/n8n-nodes-cqnce.git","type":"git"},"_npmVersion":"11.19.0","description":"n8n community node for cQnce human-in-the-loop authorization","directories":{},"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.0","vitest":"^3.2.4","prettier":"^3.6.2","typescript":"^5.9.3","@types/node":"^24.10.0","@n8n/node-cli":"^0.47.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-cqnce_0.1.2_1788857967709_0.6768979846060994","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@cqnce/n8n-nodes-cqnce","version":"0.1.3","keywords":["n8n-community-node-package","n8n","cqnce","human-in-the-loop","approval","authorization","ai-agent"],"author":{"name":"cQnce","email":"info@cqnce.app"},"license":"MIT","_id":"@cqnce/n8n-nodes-cqnce@0.1.3","maintainers":[{"name":"adellepiane","email":"info@cqnce.app"}],"homepage":"https://github.com/cqnce-app/n8n-nodes-cqnce#readme","bugs":{"url":"https://github.com/cqnce-app/n8n-nodes-cqnce/issues"},"n8n":{"nodes":["dist/nodes/Cqnce/Cqnce.node.js","dist/nodes/Cqnce/CqnceApproval.node.js"],"strict":false,"credentials":["dist/credentials/CqnceApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"dd7a6d8ca9a10e7a6f0eb187506968192a288d23","tarball":"https://registry.npmjs.org/@cqnce/n8n-nodes-cqnce/-/n8n-nodes-cqnce-0.1.3.tgz","fileCount":21,"integrity":"sha512-se1ij+94EcBOWUdSxhfIeHbVG1gXupL+79+tsXOuzHVeuZ3Q0mrb1WMEP4gDqV+fe9QztAzqR07NivN07ytC0Q==","signatures":[{"sig":"MEYCIQC9kazXIowqCh7CrBWVW8IROPxrq1VOagauSwbqNzJ+jwIhAOKVWA05fh80DQLiAYDSKh7qy0ckB9ozUxrPnlBYQh5w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cqnce%2fn8n-nodes-cqnce@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68739},"main":"dist/nodes/Cqnce/Cqnce.node.js","types":"./dist/nodes/Cqnce/Cqnce.node.d.ts","engines":{"node":">=20.15"},"gitHead":"e21047b77a859cc270c00cf9e7cd9b8c2d890527","scripts":{"dev":"n8n-node dev","lint":"n8n-node lint","test":"vitest run","build":"n8n-node build","lint:fix":"n8n-node lint --fix","test:watch":"vitest","prepublishOnly":"npm run lint && npm test && npm run build"},"_npmUser":{"name":"adellepiane","email":"info@cqnce.app"},"repository":{"url":"git+https://github.com/cqnce-app/n8n-nodes-cqnce.git","type":"git"},"_npmVersion":"11.19.0","description":"n8n community node for cQnce human-in-the-loop authorization","directories":{},"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.0","vitest":"^3.2.4","prettier":"^3.6.2","typescript":"^5.9.3","@types/node":"^24.10.0","@n8n/node-cli":"^0.47.0"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-cqnce_0.1.3_1788866419820_0.3986975096585994","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@cqnce/n8n-nodes-cqnce","version":"0.1.4","description":"n8n community node for cQnce human-in-the-loop authorization","author":{"name":"cQnce","email":"info@cqnce.app"},"license":"MIT","homepage":"https://github.com/cqnce-app/n8n-nodes-cqnce#readme","repository":{"type":"git","url":"git+https://github.com/cqnce-app/n8n-nodes-cqnce.git"},"bugs":{"url":"https://github.com/cqnce-app/n8n-nodes-cqnce/issues"},"main":"dist/nodes/Cqnce/Cqnce.node.js","scripts":{"build":"n8n-node build","dev":"n8n-node dev","lint":"n8n-node lint","lint:fix":"n8n-node lint --fix","test":"vitest run","test:watch":"vitest","prepublishOnly":"npm run lint && npm test && npm run build"},"n8n":{"n8nNodesApiVersion":1,"strict":false,"credentials":["dist/credentials/CqnceApi.credentials.js"],"nodes":["dist/nodes/Cqnce/Cqnce.node.js","dist/nodes/Cqnce/CqnceApproval.node.js"]},"keywords":["n8n-community-node-package","n8n","cqnce","human-in-the-loop","approval","authorization","ai-agent"],"engines":{"node":">=20.15"},"peerDependencies":{"n8n-workflow":"*"},"devDependencies":{"@n8n/node-cli":"^0.47.0","@types/node":"^24.10.0","eslint":"^9.39.0","prettier":"^3.6.2","typescript":"^5.9.3","vitest":"^3.2.4"},"gitHead":"d9277b113daa9797906c7a7052f5e9b51d3af9f8","types":"./dist/nodes/Cqnce/Cqnce.node.d.ts","_id":"@cqnce/n8n-nodes-cqnce@0.1.4","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-pwAgCklHhO+Ep84dRmXQ/LO3JP75O2EvnE7+3LV2/ZfgpoHlP9olHWPEB2C0f3baVucSyZnDSIlHe9DgUbbsXw==","shasum":"b0dc5aef218f974ffa761106a064388f2e0ceedb","tarball":"https://registry.npmjs.org/@cqnce/n8n-nodes-cqnce/-/n8n-nodes-cqnce-0.1.4.tgz","fileCount":21,"unpackedSize":68974,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cqnce%2fn8n-nodes-cqnce@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICqaDMrcUxgdcllMeVgMKSkK5DL4NISjcuVCap7q4hapAiEAwlzESXDhdVlnvUVdjU4l0wzCnTcjEEFpvvyx6+ZlFWI="}]},"_npmUser":{"name":"adellepiane","email":"info@cqnce.app"},"directories":{},"maintainers":[{"name":"adellepiane","email":"info@cqnce.app"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/n8n-nodes-cqnce_0.1.4_1789496796326_0.19368457024364982"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-08T08:34:29.572Z","modified":"2026-09-15T18:26:36.968Z","0.1.0":"2026-09-08T08:34:29.888Z","0.1.1":"2026-09-08T08:50:28.400Z","0.1.2":"2026-09-08T08:59:27.846Z","0.1.3":"2026-09-08T11:20:19.955Z","0.1.4":"2026-09-15T18:26:36.467Z"},"bugs":{"url":"https://github.com/cqnce-app/n8n-nodes-cqnce/issues"},"author":{"name":"cQnce","email":"info@cqnce.app"},"license":"MIT","homepage":"https://github.com/cqnce-app/n8n-nodes-cqnce#readme","keywords":["n8n-community-node-package","n8n","cqnce","human-in-the-loop","approval","authorization","ai-agent"],"repository":{"type":"git","url":"git+https://github.com/cqnce-app/n8n-nodes-cqnce.git"},"description":"n8n community node for cQnce human-in-the-loop authorization","maintainers":[{"name":"adellepiane","email":"info@cqnce.app"}],"readme":"# @cqnce/n8n-nodes-cqnce\n\nAn [n8n](https://n8n.io/) community node for human-in-the-loop authorization with\n[cQnce](https://cqnce.app/).\n\nThe node sends an authorization request through n8n's native HTTP client, pauses the n8n\nexecution, and supplies n8n's signed resume URL as the request callback. When cQnce reports a\nterminal decision, the execution resumes with the HITL response expected by n8n. A polling mode is\nalso available when cQnce cannot reach the n8n instance.\n\n## Features\n\n- Appears as **cQnce** in the AI Agent's **Human review** picker on n8n versions that support\n  generated HITL tools.\n- Uses n8n's native HTTP client and has no runtime dependencies.\n- Supports project routing rules, explicit routing modes, metadata, and attachments.\n- Treats `APPROVED` as approval and `REJECTED`, `EXPIRED`, or `CANCELLED` as denial.\n- Acknowledges intermediate `CHAIN` callbacks without resuming the workflow.\n- Uses n8n's signed, execution-specific resume URL. No public callback secret has to be stored in\n  the workflow.\n- Supports outbound-only polling for private n8n installations that cannot receive callbacks.\n- Shows the standalone **cQnce Approval** node in the standard **Human Review** category, with\n  **Approved** and **Rejected** outputs for workflows that do not use an AI Agent.\n\n## Installation\n\nInstall `@cqnce/n8n-nodes-cqnce` from **Settings → Community Nodes** in n8n, or install it in a self-hosted\nn8n installation:\n\n```bash\nnpm install @cqnce/n8n-nodes-cqnce\n```\n\nRestart n8n after installation.\n\n## Credentials\n\nCreate a **cQnce API** credential in n8n and provide:\n\n- **Base URL**: `https://api.cqnce.app` by default, or the URL of a self-hosted cQnce instance.\n- **Project API Key**: the API key of the cQnce project that owns the routing rules and reviewers.\n\n## Use as AI Agent Human Review\n\n1. Add an n8n **AI Agent** and connect the tool that must be protected.\n2. Enable human review for that tool.\n3. In **Human review**, choose **cQnce**.\n4. Configure the action, target, risk, routing options, and cQnce credentials.\n5. Choose **Callback** or **Polling** as the delivery mode and activate the workflow.\n\nn8n generates the internal `cqnceHitlTool` variant from this node because it exposes a webhook and\nthe `sendAndWait` operation. Approval runs the protected tool; any other terminal cQnce decision\nprevents it from running.\n\n## Use in a standard workflow\n\nChoose **cQnce Approval** from the standard **Human Review** category and place it between the step\nthat prepares the proposed action and the action itself.\nConnect its **Approved** output to the protected action and its **Rejected** output to a notification,\naudit, or cancellation branch. The node accepts exactly one input item, sends that JSON object as\nthe request input, waits for a terminal decision, and returns the original fields plus a `cqnce`\ndecision object on the selected branch.\n\n## Delivery modes\n\n### Callback\n\nCallback is the default and recommended mode. It suspends the execution without occupying an n8n\nworker. The n8n instance must expose its signed waiting-webhook URL to cQnce.\n\n### Polling\n\nPolling needs only outbound HTTPS access from n8n to cQnce. The node omits `callbackUrl`, submits the\nrequest, and polls its status through n8n's native HTTP client until it becomes terminal. Configure the interval\nand timeout in the node.\n\nPolling keeps the n8n execution and its worker active. Use it for relatively short human-review\nwindows and ensure that the n8n execution timeout is longer than the node's polling timeout. If the\npolling timeout is reached, the node fails closed and the protected tool is not executed.\n\n## Callback and signature model\n\nThe callback URL is produced by n8n's `getSignedResumeUrl()`. Its n8n signature binds the URL to the\nwaiting execution and is validated by n8n when cQnce calls it. The URL must be treated as a secret\ncapability and must not be logged or copied into output data.\n\nPer-request callback HMAC signing by cQnce is not required for this integration: n8n authenticates\nthe unique resume URL itself. Support for an additional cQnce HMAC signature can be added when the\ncQnce API supports signing per-request callback URLs.\n\n## Development\n\nRequires Node.js 20.15 or newer.\n\n```bash\nnpm install\nnpm test\nnpm run lint\nnpm run build\n```\n\nRun `npm run dev` to load the package in a local n8n development instance.\n\n## Publishing\n\nThe GitHub Actions workflow publishes the package when a GitHub Release is published. Before the\nfirst release:\n\n1. Create an npm automation or granular access token with permission to publish\n   `@cqnce/n8n-nodes-cqnce` under the `@cqnce` scope.\n2. Add it to the GitHub repository as an Actions secret named `NPM_TOKEN`.\n3. Create the `npm` environment in GitHub if you want environment protection or manual approval.\n4. Commit the desired version in `package.json` and create a release whose tag is exactly that\n   version prefixed with `v`, for example `v0.1.0`.\n\nThe publish workflow verifies the tag, installs from the lockfile, runs lint, tests and build, then\npublishes the public npm package with provenance. Pull requests and pushes to `main` run the same\nquality checks without publishing.\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}