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.
- In NetSuite, go to Setup → Integration → Manage Integrations → New.
- Enable Token-Based Authentication. Save and copy Consumer Key + Consumer Secret.
- Setup → Users/Roles → Access Tokens → New. Pick the integration, the user, and a role with API permissions.
- Copy Token ID + Token Secret.
- In Automize, open Settings → Connectors → NetSuite → Add connection. Paste Account ID (e.g. 12345 or 12345_SB1), Consumer Key + Secret, Token ID + Secret.
- 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 syntaxAvailable operations
11 operations available. Click any row to jump to its detail.
| Operation | Category | What it does |
|---|---|---|
| Create Record | General | Create a new record |
| Delete Record | General | Delete a record |
| Get Record Metadata | General | Get field definitions for a record type |
| Get Record | General | Get a record by type and internal ID |
| List Customers | General | List all customers |
| List Invoices | General | List all invoices |
| List Items | General | List inventory items |
| List Records | General | List records of a type |
| List Sales Orders | General | List all sales orders |
| SuiteQL Query | General | Execute a SuiteQL query |
| Update Record | General | Update a record |
Operations
Create Record
Create a new record
| Parameter | Required | Type | Description |
|---|---|---|---|
Record Type record_type | Yes | text |
Delete Record
Delete a record
| Parameter | Required | Type | Description |
|---|---|---|---|
Record Type record_type | Yes | text | |
Internal Id internal_id | Yes | text |
Get Record Metadata
Get field definitions for a record type
| Parameter | Required | Type | Description |
|---|---|---|---|
Record Type record_type | Yes | text |
Get Record
Get a record by type and internal ID
| Parameter | Required | Type | Description |
|---|---|---|---|
Record Type record_type | Yes | text | |
Internal Id internal_id | Yes | text |
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
| Parameter | Required | Type | Description |
|---|---|---|---|
Record Type record_type | Yes | text |
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
| Parameter | Required | Type | Description |
|---|---|---|---|
Record Type record_type | Yes | text | |
Internal Id internal_id | Yes | text |
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.