At a Glance — n8n NetSuite Integration

  • Authentication to use: OAuth 2.0 with the authorization code flow, which is what the NetSuite REST node uses
  • What you create in NetSuite: an integration record with the Authorization Code Grant, the REST Web Services scope and n8n's redirect URL
  • What you enter in n8n: your account subdomain, the Client ID and the Client Secret
  • TBA: still works for existing integrations; new ones can't be created from NetSuite 2027.1 (Oracle 2026.1 release notes)
  • REST base URL: https://{accountId}.suitetalk.api.netsuite.com/services/rest/record/v1/. SuiteQL: /services/rest/query/v1/suiteql
  • Permissions: use a dedicated integration user and role with only the permissions your workflows need

How n8n connects to NetSuite

n8n does not include an official built-in NetSuite node, so there are two practical ways to connect. Both use the same NetSuite OAuth 2.0 setup, covered next.

Set up OAuth 2.0 in NetSuite

You need a NetSuite administrator for this part. The steps follow NetSuite's integration-record screens, so button names can differ slightly between releases.

  1. Enable the features. Go to Setup → Company → Enable Features, open the SuiteCloud tab, and make sure both REST Web Services and OAuth 2.0 are checked.
  2. Create the integration record. Go to Setup → Integration → Manage Integrations → New. Give it a name such as "n8n Automation" and set the state to Enabled.
  3. Choose the grant and scope. Under OAuth 2.0, check Authorization Code Grant and the REST Web Services scope.
  4. Add the redirect URL. Paste the OAuth Redirect URL that n8n shows in the credential screen (next section), so create the credential in n8n first to copy it.
  5. Save and copy the credentials. NetSuite shows the Client ID (Consumer Key) and Client Secret (Consumer Secret) once. Copy both now.
  6. Note your account subdomain. It's the part before .app.netsuite.com in the address you use after signing in to NetSuite.
Role permissions

The user who approves the connection decides what n8n can read or write. Create a dedicated integration user and role with only the permissions your workflows need, and make sure the role is allowed to use REST Web Services and OAuth 2.0 access (check your account's role permission list). Don't connect with a personal administrator account.

Connect n8n to NetSuite

Option A: the NetSuite REST node

  1. Install the node. On n8n Cloud, an instance owner or admin turns on Verified Community Nodes in the Admin Panel, then anyone can search the nodes panel for NetSuite REST. On self-hosted n8n, go to Settings → Community Nodes → Install and enter n8n-nodes-netsuite-rest.
  2. Create a NetSuite REST OAuth2 API credential and enter the Account Subdomain, Client ID and Client Secret.
  3. Copy the OAuth Redirect URL from the credential into the NetSuite integration record (step 4 above).
  4. Click the connect button in the credential and approve access when NetSuite asks.

Then add the NetSuite REST node to a workflow, pick a resource such as Customer and an operation such as Get record, and run it.

Option B: the HTTP Request node

Create a generic OAuth2 API credential in n8n with the same endpoints the node uses:

In the HTTP Request node, choose this credential and call the REST API. n8n adds the access token to each request:

GET https://1234567.suitetalk.api.netsuite.com/services/rest/record/v1/customer/12345
Authorization: Bearer <access token>

The response is a JSON object with the customer's fields.

Two things to plan for with the authorization code flow

Refresh tokens don't last forever. NetSuite limits how long a refresh token stays valid, so a connection that sits unused can need to be re-authorized by a user. Check the token settings on your integration record and Oracle's OAuth 2.0 documentation for the current limits, and test a workflow that runs only occasionally. PKCE is coming. Oracle's documentation says that from NetSuite 2027.1, new integrations using the authorization code grant must include PKCE parameters. If you create a new integration record after that, confirm that your n8n credential can send them.

Machine-to-machine OAuth is a different flow

NetSuite also offers OAuth 2.0 client credentials (machine-to-machine). It needs no user sign-in, but it doesn't use a client secret: you generate a certificate, upload it to NetSuite, and sign a JWT with the private key for each token request. That takes more setup than the authorization code flow, and n8n's standard OAuth2 credential isn't set up for signing JWTs, which is why the NetSuite REST node uses the authorization code flow.

Querying data with SuiteQL

SuiteQL is NetSuite's SQL-like query language for reading data across record types. It is more efficient than fetching records one by one when you need joins, filters or aggregates. In n8n, call it with the HTTP Request node (or use the SuiteQL action in the NetSuite REST node):

The response is a JSON object with an items array; each item is a row. Feed it to downstream nodes with {{ $json.items }}. Table and column names depend on the records and fields in your account and on your role's permissions, so look them up in NetSuite's Records Catalog and test queries there before you build them into a workflow.

Pagination

SuiteQL returns a limited number of rows per request. For larger result sets, page through them with LIMIT and OFFSET, check the response's hasMore field, and continue until it is false. Our guide to looping through all NetSuite records in n8n shows the full pattern, including where to keep the offset between passes.

Legacy: token-based authentication (TBA)

Many older n8n–NetSuite tutorials use token-based authentication, NetSuite's OAuth 1.0-style method. It still works for integrations that already use it. According to Oracle's NetSuite 2026.1 release notes, new integrations can no longer use TBA from NetSuite 2027.1, and existing TBA integrations are not forcibly disabled at that time. If you are starting fresh, skip TBA.

If you maintain an existing TBA integration, n8n connects through its OAuth1 API credential:

When you are ready to move off TBA, see our TBA deprecation guide.

What the NetSuite REST community node supports

The node, built by Entech Solutions, is a verified community node, available on npm and in n8n's nodes panel. See the n8n community announcement for notes and the changelog, and the npm package page for the current version. It supports:

See our n8n NetSuite integration service page for how Entech can build this for you.

Example workflows

These are outlines (trigger, steps and outcome), not import-ready workflows. Adapt the field names and record IDs to your own NetSuite account.

Shopify order → NetSuite sales order

Trigger: Shopify Trigger node on orders/create webhook. Steps: map Shopify customer email to NetSuite customer ID via SuiteQL lookup, create a NetSuite Sales Order via POST to /salesOrder with line items, log the new NetSuite transaction ID back to the Shopify order notes via Shopify API. Result: each new Shopify order is created in NetSuite automatically, with no manual entry.

HubSpot deal won → NetSuite customer + project

Trigger: HubSpot Trigger on deal stage change to "Closed Won". Steps: check if a NetSuite customer exists for the HubSpot company (SuiteQL lookup by name/email), create if not found, then create a NetSuite Project record linked to the customer. Optionally post a Slack notification with the NetSuite project URL. See also: HubSpot to NetSuite sync with n8n.

Daily inventory alert

Trigger: Schedule node (daily at 7 AM). Steps: run SuiteQL query for items below reorder point, format results into a Slack message with item names, current quantity, and reorder point. If zero items below threshold, skip the Slack message using an IF node. This replaces a daily manual NetSuite report.

Overdue invoice escalation

Trigger: Schedule node (every Monday). Steps: SuiteQL query for invoices 30+ days overdue, look up account owner in HubSpot by customer email, post a Slack message to the account owner's DM with the invoice list and amounts. Route invoices over $10,000 to a separate escalation channel.

n8n vs Celigo for NetSuite

This is worth addressing directly because we build both. Celigo offers prebuilt NetSuite integration apps, a field-mapping interface and vendor support, which usually makes it the better choice for high-volume ERP integrations and tight compliance requirements. See our comparison: n8n vs Celigo.

n8n is the better fit when you need custom logic that a connector flow can't handle, your team has developer capacity, or your NetSuite workflows are one part of a broader automation stack that includes non-ERP systems. On cost, n8n is free to self-host and its cloud plans start at €20 a month, billed annually (n8n.io, October 2026). Celigo licensing runs roughly $7,800 to $25,500 a year; see our Celigo NetSuite integration cost breakdown. The comparison isn't only licence price: with n8n you build and maintain more of the integration yourself.

Sources

Entech Solutions builds both. If you are unsure which fits your NetSuite setup, get in touch and we can walk through your specific use case.

Frequently asked questions

Does n8n have a native NetSuite node? No. n8n doesn't ship an official built-in NetSuite node. You can use the verified community node n8n-nodes-netsuite-rest, built by Entech Solutions, which works on both n8n Cloud and self-hosted n8n and authenticates with OAuth 2.0, or call the NetSuite REST API and SuiteQL endpoint yourself with the HTTP Request node.

How do you authenticate n8n with NetSuite? Use OAuth 2.0 with the authorization code flow. In NetSuite, enable the REST Web Services and OAuth 2.0 features and create an integration record with the Authorization Code Grant, the REST Web Services scope and n8n's OAuth redirect URL. Then enter your account subdomain, the Client ID and the Client Secret in an n8n credential and sign in to NetSuite to approve access.

Should I still use token-based authentication (TBA) with n8n and NetSuite? Only for integrations that already use it. Oracle's NetSuite 2026.1 release notes say new integrations using TBA can no longer be created from NetSuite 2027.1, while existing TBA integrations are not forcibly disabled at that time. For anything new, set up OAuth 2.0 instead.

What is the difference between authorization code and machine-to-machine OAuth in NetSuite? With the authorization code flow, a NetSuite user signs in once and approves access, and the integration then holds tokens on that user's behalf. Machine-to-machine (client credentials) needs no user sign-in, but it uses a certificate you upload to NetSuite and a signed JWT instead of a client secret, so it takes more setup. The n8n NetSuite REST node uses the authorization code flow.

What is SuiteQL and how do you use it in n8n? SuiteQL is NetSuite's SQL-like query language for reading data across record types. In n8n, send a POST request to https://{accountId}.suitetalk.api.netsuite.com/services/rest/query/v1/suiteql with the header prefer: transient and a JSON body such as {"q": "SELECT id, companyName, email FROM customer WHERE isInactive = 'F'"}. The response contains an items array, one entry per row. The NetSuite REST community node also has a SuiteQL action.

Should I use n8n or Celigo for NetSuite integrations? It depends on complexity and who maintains it. Celigo offers prebuilt NetSuite integration apps and vendor support, which suits high-volume ERP integrations where reliability matters most. n8n is free to self-host, has cloud plans from €20 a month (billed annually, per n8n.io in October 2026) and is more flexible for custom logic and developer-led teams, but you build and maintain more yourself.