Skip to main content
The NetSuite connector lets your workflows read and write NetSuite records through the SuiteTalk REST Web Services API. It exposes curated tools for the most common records (customers, sales orders, invoices, items, item fulfillments), a powerful run-suiteql tool for SQL-like reads, and a raw-request passthrough for any other REST endpoint.
Spojit authenticates to NetSuite using Token-Based Authentication (TBA). Per Oracle’s release notes, no new TBA authorizations can be created from NetSuite 2027.1 onward, but existing credentials continue to work. OAuth 2.0 support is coming as an additional connection option.

Finding record types, fields, and SuiteQL tables

NetSuite accounts are heavily customizable, so record and field names vary between accounts. Use these Oracle-maintained references when writing queries or record payloads: You can also call list-record-types and get-record-metadata from a workflow to discover what the current NetSuite account exposes.

Connection setup

1

Enable TBA in NetSuite

In NetSuite go to Setup → Company → Enable Features → SuiteCloud. Under Manage Authentication, enable Token-Based Authentication and REST Web Services.
2

Create an integration record

Go to Setup → Integration → Manage Integrations → New. Give it a name (e.g. “Spojit”), enable Token-Based Authentication, leave TBA: Authorization Flow disabled, and save. Copy the Consumer Key and Consumer Secret that appear at the bottom of the page. They are shown only once.
3

Create an access token

Go to Setup → Users/Roles → Access Tokens → New. Select your integration, a user, and a role with the necessary permissions (commonly SuiteAnalytics Workbook, REST Web Services, and record-type-specific permissions). Save and copy the Token ID and Token Secret. These are also shown only once.
4

Note your Account ID

Find your account ID at Setup → Company → Company Information. Sandboxes have a _SB suffix (e.g. 1234567_SB1).
5

Add the connection in Spojit

Go to Connections in Spojit, click Add Connection, select NetSuite, and enter the five values: Account ID, Consumer Key, Consumer Secret, Token ID, Token Secret.

Tools

Utility

Fetches the REST metadata catalog root and returns success if credentials are valid.No parameters required.Example response:
string
required
SuiteQL query. Example: SELECT id, companyname FROM customer WHERE isinactive = 'F' FETCH FIRST 10 ROWS ONLY.
number
Max rows per page (default 100, max 1000).
number
Pagination offset.
Example request:
Example response:

Metadata / discovery

Returns the REST metadata catalog root: every record type the account exposes via REST.No parameters required.
string
required
Record type name, e.g. customer, salesOrder, invoice.
Example request:
The response is a JSON-Schema document listing every field, sublist, and enumeration; use it to discover what payload shape the record expects.

Customers

string
SuiteTalk query filter (e.g. companyName START_WITH 'Acme').
number
Page size (default 100, max 1000).
number
Pagination offset.
Example request:
Example response:
string
required
Customer internal ID.
boolean
Inline sublists (addresses, contacts).
Example response:
object
required
Customer payload. Common fields: companyName, email, phone, subsidiary, isPerson, firstName, lastName.
Example request:
Example response:
The new customer’s internal ID is returned in the Location response header (e.g. /record/v1/customer/512).
string
required
Customer internal ID.
object
required
Fields to update.
Example request:

Sales orders

string
SuiteTalk filter (e.g. tranDate ON_OR_AFTER '01/01/2025').
number
Page size.
number
Pagination offset.
string
required
Sales order internal ID.
boolean
Inline line items.
Example response (truncated):

Invoices

string
SuiteTalk filter (e.g. status IS "Invoice:A" for open invoices).
number
Page size.
number
Pagination offset.
string
required
Invoice internal ID.
boolean
Inline invoice lines.

Items

NetSuite has several item subtypes (inventoryItem, assemblyItem, nonInventorySaleItem, serviceSaleItem, …). The tools below default to inventoryItem. To list across all subtypes, use run-suiteql with SELECT id, itemid, itemtype FROM item.
string
default:"inventoryItem"
Item record type.
string
SuiteTalk filter.
number
Page size.
number
Pagination offset.
string
required
Item internal ID.
string
default:"inventoryItem"
Item subtype.

Item fulfillments

Item fulfillment records in NetSuite are normally created by transforming a sales order, not by a bare POST /record/v1/itemFulfillment. The create-item-fulfillment tool wraps the transform endpoint so the LLM doesn’t need to know the URL convention.
string
SuiteTalk filter (e.g. createdFrom IS 4421).
number
Page size.
number
Pagination offset.
string
required
Item fulfillment internal ID.
boolean
Inline fulfilled line items.
string
required
Internal ID of the sales order being fulfilled.
object
required
Fulfillment payload. Set itemReceive: true and quantity on each line you want to ship.
Example request:

Generic record CRUD

Use these when the record type isn’t covered by a domain-specific tool (e.g. purchaseOrder, vendorBill, journalEntry, employee).
string
required
Record type (e.g. purchaseOrder).
string
required
Internal ID.
boolean
Inline sublists.
string
Comma-separated list of fields to return.
string
required
Record type.
string
SuiteTalk filter.
number
Page size.
number
Pagination offset.
string
required
Record type.
object
required
Record payload.
string
required
Record type.
string
required
Internal ID.
object
required
Fields to update.
string
required
Record type.
string
required
Internal ID.
string
required
Record type.
string
required
External ID.
object
required
Record payload.

Sublists

string
required
Parent record type.
string
required
Parent record ID.
string
required
Sublist name (e.g. item, addressBook).
string
required
Parent record type.
string
required
Parent record ID.
string
required
Sublist name.
object
required
Line item payload.

Advanced

Execute an arbitrary signed request against the NetSuite REST API. TBA signing is applied automatically. path is relative to /services/rest.
string
required
HTTP method: GET, POST, PUT, PATCH, or DELETE.
string
required
Path relative to /services/rest (e.g. /record/v1/vendorBill).
object
Request body.
object
Query parameters as a key/value map.
object
Extra headers.
Example request: