{"_id":"@emmanuel1521/n8n-nodes-netsuite","name":"@emmanuel1521/n8n-nodes-netsuite","dist-tags":{"latest":"0.7.29"},"versions":{"0.7.29":{"name":"@emmanuel1521/n8n-nodes-netsuite","version":"0.7.29","description":"n8n node for NetSuite REST API integration.","license":"MIT","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc --build && node -e \"require('fs').cpSync('src/nodes/NetSuite/netSuite.svg','dist/nodes/NetSuite/netSuite.svg')\"","dev":"tsc --build --watch","lint":"eslint --ext .ts src","prepare":"npm run build"},"peerDependencies":{"n8n-workflow":"*"},"devDependencies":{"@types/node":"^20.0.0","@typescript-eslint/eslint-plugin":"^8.32.1","@typescript-eslint/parser":"^8.32.1","eslint":"^9.26.0","typescript":"^5.8.3"},"engines":{"node":">=22"},"keywords":["n8n","node","netsuite","rest","api","suitetalk","n8n-node","n8n-community-node-package"],"repository":{"type":"git","url":"git+https://github.com/Emmanuel1521/n8n-nodes-netsuite.git"},"homepage":"https://github.com/Emmanuel1521/n8n-nodes-netsuite","bugs":{"url":"https://github.com/Emmanuel1521/n8n-nodes-netsuite/issues"},"publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"n8n":{"n8nNodesApiVersion":1,"credentials":["dist/credentials/NetSuite.credentials.js"],"nodes":["dist/nodes/NetSuite/NetSuite.node.js"]},"gitHead":"36500e89c17d9020a1423964a4be1d1295d063e0","_id":"@emmanuel1521/n8n-nodes-netsuite@0.7.29","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-/y4Afgxw4mO/74TGRFRxFythhzQfxILUivmshLNiLbePxANUebhHcK0Dc16KWXfKc9HL6hND683PXOnXk0dqVg==","shasum":"dc5197eca20bd48c30edb56f880687030f750dca","tarball":"https://registry.npmjs.org/@emmanuel1521/n8n-nodes-netsuite/-/n8n-nodes-netsuite-0.7.29.tgz","fileCount":32,"unpackedSize":92433,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCuDUD+4VuUyy1Q8hp/PYxaMxrnJ9Yyty7LGWM909NINgIhAPwFmmEEZ2xEVGsckmuSulz4TT49lpTx8xGCpkPCI53E"}]},"_npmUser":{"name":"emmanuel1521","email":"gepremkumar.jmj@gmail.com"},"directories":{},"maintainers":[{"name":"emmanuel1521","email":"gepremkumar.jmj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/n8n-nodes-netsuite_0.7.29_1787077588992_0.0036133213481266413"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-18T18:26:28.445Z","0.7.29":"2026-08-18T18:26:29.113Z","modified":"2026-08-18T18:26:29.443Z"},"maintainers":[{"name":"emmanuel1521","email":"gepremkumar.jmj@gmail.com"}],"description":"n8n node for NetSuite REST API integration.","homepage":"https://github.com/Emmanuel1521/n8n-nodes-netsuite","keywords":["n8n","node","netsuite","rest","api","suitetalk","n8n-node","n8n-community-node-package"],"repository":{"type":"git","url":"git+https://github.com/Emmanuel1521/n8n-nodes-netsuite.git"},"bugs":{"url":"https://github.com/Emmanuel1521/n8n-nodes-netsuite/issues"},"license":"MIT","readme":"# n8n NetSuite Node\n\n[![npm](https://img.shields.io/npm/v/@emmanuel1521/n8n-nodes-netsuite)](https://www.npmjs.com/package/@emmanuel1521/n8n-nodes-netsuite)\n[![CI](https://github.com/Emmanuel1521/n8n-nodes-netsuite/actions/workflows/ci.yml/badge.svg)](https://github.com/Emmanuel1521/n8n-nodes-netsuite/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nAn [n8n](https://n8n.io/) community node for the [NetSuite REST API](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_1540391670.html) (SuiteTalk REST Web Services).\n\n**Zero runtime dependencies** — the OAuth 1.0a client is implemented inline, so this package is immune to upstream package takedowns and has a minimal supply-chain surface.\n\n---\n\n## Installation\n\n### Option 1 — n8n Community Nodes UI (recommended)\n1. In your n8n instance, go to **Settings → Community Nodes**.\n2. Click **Install** and enter: `@emmanuel1521/n8n-nodes-netsuite`\n3. Restart n8n if prompted.\n\n### Option 2 — npm (self-hosted)\n```bash\nnpm install @emmanuel1521/n8n-nodes-netsuite\n```\nThen restart your n8n instance.\n\n### Option 3 — from source\n```bash\ngit clone https://github.com/Emmanuel1521/n8n-nodes-netsuite.git\ncd n8n-nodes-netsuite\nnpm ci && npm run build\nnpm install /path/to/this/repo   # inside your n8n project\n```\n\n---\n\n## Credentials setup\n\nThis node uses **NetSuite Token-Based Authentication (TBA)** with OAuth 1.0a HMAC-SHA256. You need six values from NetSuite.\n\n### One-time NetSuite setup\n1. **Enable SuiteTalk REST**: *Setup → Company → Enable Features → SuiteCloud* — check **REST WEB SERVICES** and **TOKEN-BASED AUTHENTICATION**.\n2. **Create an Integration record**: *Setup → Integration → Manage Integrations → New*. Check **Token-Based Authentication**. Save and copy the **Consumer Key** and **Consumer Secret** shown once.\n3. **Create a Role** with at least **REST Web Services** and **User Access Tokens** permissions, plus permissions for any record types you want to access.\n4. **Assign the Role** to a user.\n5. **Create an Access Token**: *Setup → Users/Roles → Access Tokens → New*. Pick the Integration, User, and Role. Copy the **Token ID** and **Token Secret** shown once.\n\n> NetSuite shows secrets only **once** at creation time. Store them immediately.\n\n### Values to enter in n8n\n\n| # | Field | Where to find it |\n|---|---|---|\n| 1 | **Hostname** | `<accountId>.suitetalk.api.netsuite.com` (sandboxes use `<accountId>-sb1`). Find your account ID at *Setup → Company → Company Information*. |\n| 2 | **Account ID** | Same screen as above. Sandbox accounts include the `_SB1` suffix. |\n| 3 | **Consumer Key** | From the Integration record (step 2 above). |\n| 4 | **Consumer Secret** | From the Integration record (step 2 above). |\n| 5 | **Token Key** | From the Access Token (step 5 above). |\n| 6 | **Token Secret** | From the Access Token (step 5 above). |\n\nFull NetSuite TBA reference: [Token-Based Authentication (TBA) docs](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_4247337262.html).\n\n---\n\n## Supported operations\n\n| Operation | Use case |\n|---|---|\n| `getRecord` | Fetch a single record by ID |\n| `listRecords` | Paginated list with optional filters |\n| `insertRecord` | Create a new record |\n| `updateRecord` | Patch an existing record |\n| `removeRecord` | Delete a record by ID |\n| `runSuiteQL` | Execute a SuiteQL SELECT query |\n| `rawRequest` | Arbitrary REST call against any NetSuite endpoint (escape hatch) |\n\n### Supported record types\n40+ record types are available out of the box, including Customer, Sales Order, Invoice, Purchase Order, Vendor, Vendor Bill, Item Fulfillment, Journal Entry, Inventory Item, Subscription, Employee, Contact, Task, and Custom Records. See [`NetSuite.node.options.ts`](src/nodes/NetSuite/NetSuite.node.options.ts) for the complete list, or use `rawRequest` for any record type not in the dropdown.\n\n### Request types\n`record` · `suiteql` · `workbook` · `dataset`\n\n---\n\n## Example: SuiteQL query\n\nIn a SuiteQL node, the `query` field accepts standard SuiteQL syntax:\n\n```sql\nSELECT id, companyname, email\nFROM customer\nWHERE isinactive = 'F'\n  AND datecreated >= TO_DATE('2024-01-01', 'YYYY-MM-DD')\nORDER BY datecreated DESC\n```\n\nResults come back as `INodeExecutionData[]`, one item per row.\n\n---\n\n## Options\n\n- **Concurrency** — how many parallel NetSuite requests to issue when processing multiple input items. Default `1`. Increase cautiously; NetSuite enforces per-account governance limits.\n- **Return Full Response** — return the full HTTP response (headers + status + body) instead of just the body. Useful for debugging.\n\n---\n\n## Compatibility\n\n- **n8n**: tested against `v1.x`\n- **Node.js**: `≥22` (required by n8n's peer-dependency chain)\n- **NetSuite REST API**: validated against `2024.x`\n- **Auth**: OAuth 1.0a TBA only (OAuth 2.0 is not yet supported)\n\n---\n\n## Development\n\n```bash\nnpm ci           # install dependencies\nnpm run build    # compile TypeScript\nnpm run dev      # rebuild on change\nnpm run lint     # eslint\n```\n\n### Local testing in n8n\nAfter `npm run build`, either copy `dist/` into your n8n custom-nodes directory, or run `npm link` in this repo and `npm link @emmanuel1521/n8n-nodes-netsuite` inside your n8n install. Restart n8n.\n\n---\n\n## Support\n\n> ⚠️ This is a community-maintained package. It is **not officially supported** by NetSuite, Oracle, or n8n GmbH. Validate against a NetSuite sandbox before using in production workflows.\n\nFor bug reports and feature requests: [open an issue](https://github.com/Emmanuel1521/n8n-nodes-netsuite/issues).\n\n## Security\n\nPlease **do not** report security vulnerabilities through public GitHub issues.\n\nUse GitHub's [private vulnerability reporting](https://github.com/Emmanuel1521/n8n-nodes-netsuite/security/advisories/new) instead — it keeps the report confidential until a fix is published.\n\n## Credits\n\nOriginally inspired by [drudge/n8n-nodes-netsuite](https://github.com/drudge/n8n-nodes-netsuite). This package inlines the REST client implementation to eliminate external runtime dependencies and supply-chain exposure.\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md","_rev":"1-45b6db26095b7881e5b5db0628839f32"}