NetSuite integration

ERP: customers, invoices, sales orders, items, SuiteQL queries, custom records

Help CentreConnectors

Overview

NetSuite is Oracle's cloud ERP – accounting, CRM, e-commerce, inventory. The Automize NetSuite connector covers core financial + sales records (customers, invoices, sales orders, items) plus SuiteQL for general querying.

  • Regions: NetSuite is cloud-hosted at Oracle's data centres (US + EU). The API endpoint is account-specific (12345.suitetalk.api.netsuite.com). Connector picks the right host from your account ID.
  • Plans: SuiteCloud Platform license required to use the API. Most paid accounts have it; SuiteAnalytics + SuiteScript are separate add-ons.

Setting up the connection

Auth type: oauth1.

  1. In NetSuite, go to Setup → Integration → Manage Integrations → New.
  2. Enable Token-Based Authentication. Save and copy Consumer Key + Consumer Secret.
  3. Setup → Users/Roles → Access Tokens → New. Pick the integration, the user, and a role with API permissions.
  4. Copy Token ID + Token Secret.
  5. In Automize, open Settings → Connectors → NetSuite → Add connection. Paste Account ID (e.g. 12345 or 12345_SB1), Consumer Key + Secret, Token ID + Secret.
  6. OAuth 1.0a is required for NetSuite (their move to OAuth 2.0 isn't universal yet).

Find your credentials at https://12345.app.netsuite.com/app/setup/account/manageaccess.nl.


Rate limits

NetSuite enforces request quotas per concurrency slot (typically 5–10 concurrent / account). The connector retries 429 with backoff. For bulk loads use SuiteQL queries instead of per-record gets.


Data model

Records-based:

    Customer ─┬─ Sales Orders ─── Items
              ├─ Invoices ─── Items
              └─ Payments
    Items (inventory, services, assemblies)
    SuiteQL: cross-record queries with SQL-like syntax

Available operations

11 operations available. Click any row to jump to its detail.

OperationCategoryWhat it does
Create RecordGeneralCreate a new record
Delete RecordGeneralDelete a record
Get Record MetadataGeneralGet field definitions for a record type
Get RecordGeneralGet a record by type and internal ID
List CustomersGeneralList all customers
List InvoicesGeneralList all invoices
List ItemsGeneralList inventory items
List RecordsGeneralList records of a type
List Sales OrdersGeneralList all sales orders
SuiteQL QueryGeneralExecute a SuiteQL query
Update RecordGeneralUpdate a record

Operations

Create Record

Create a new record

ParameterRequiredTypeDescription
Record Type record_typeYestext

Delete Record

Delete a record

ParameterRequiredTypeDescription
Record Type record_typeYestext
Internal Id internal_idYestext

Get Record Metadata

Get field definitions for a record type

ParameterRequiredTypeDescription
Record Type record_typeYestext

Get Record

Get a record by type and internal ID

ParameterRequiredTypeDescription
Record Type record_typeYestext
Internal Id internal_idYestext

List Customers

List all customers

No input parameters.

Tips

  • Use SuiteQL for filtered queries – direct list endpoints page slowly on large accounts.
  • Filter: limit + offset for paging.

List Invoices

List all invoices

No input parameters.

Tips

  • Prefer SuiteQL for date-range / status filtering – direct list is slow.

List Items

List inventory items

No input parameters.

Tips

  • Inventory + service + assembly items. Filter by itemType.

List Records

List records of a type

ParameterRequiredTypeDescription
Record Type record_typeYestext

List Sales Orders

List all sales orders

No input parameters.

Tips

  • Same paging contract as invoices. Status filter: pending fulfillment, partially fulfilled, etc.

SuiteQL Query

Execute a SuiteQL query

No input parameters.

Tips

  • SuiteQL is SQL-like – full SELECTs on NetSuite records.
  • Example: SELECT id, entity, total FROM transaction WHERE type='CustInvc' AND trandate >= '2026-01-01'.
  • Returns up to 1000 rows per call. Page via offset.

Update Record

Update a record

ParameterRequiredTypeDescription
Record Type record_typeYestext
Internal Id internal_idYestext

FAQ

OAuth 1.0a – really?
Yes. NetSuite's REST API (SuiteTalk REST) still uses OAuth 1.0a with TBA (Token Based Authentication). OAuth 2.0 is rolling out per account but not universal yet. The connector handles the signing.
Sandbox vs production?
Sandbox account ID has a _SB suffix (12345_SB1). Use the suffix as the account ID – the connector derives the right URL.
Why does Create Customer fail with no clear error?
NetSuite returns 'USER_ERROR' with details deep in the response. Look at the o:errorDetails array – it lists the offending field(s).
SuiteQL vs SuiteScript?
SuiteQL = REST-friendly SQL. SuiteScript = embedded JavaScript inside NetSuite (server-side). This connector uses SuiteQL via REST; for SuiteScript automation, run inside NetSuite.

Related connectors

See it working on your own data

Everything documented here ships with the platform – try the document tools free, or go live in 7 days.