Skip to main content
Feedback

NetSuite REST operation

The NetSuite REST operation defines how to interact with your NetSuite account. It represents a specific action to perform against a specific NetSuite record type. You must create a separate operation component for each action and object combination that your integration requires.

The NetSuite REST operation supports the following actions:

  • Inbound — Query. The operation requires query filter parameters at runtime to request data.
  • Execute SuiteQL — Runs a SuiteQL SELECT statement against NetSuite and retrieves results as individual documents.
  • Outbound — Create, Update, Upsert, and Delete. Send request JSON data into the connector that corresponds with the defined JSON profile.

Create

The outbound Create action inserts a new Standard or Custom object record into NetSuite.

The connector sends an HTTP POST request to: /services/rest/record/v1/{objectType}.

The request body contains the JSON payload with the fields of the record to create. The response returns the newly created record, including the system-generated internal ID.

Query

The inbound Query action retrieves Standard or Custom object records based on specific filter criteria. At least one query filter must be provided.

The connector sends an HTTP GET request to: /services/rest/record/v1/{objectType}.

Query parameters are appended to the URL based on the filters configured in the operation. A single Query request can return zero or more object record documents.

Update

The outbound Update action modifies an existing Standard or Custom object record in NetSuite.

The connector sends an HTTP PATCH request to: /services/rest/record/v1/{objectType}/{id}

The id field must be present in the input JSON payload. If the id field is missing, the operation fails with: Id is needed for UPDATE operation.

FieldRequiredDescription
idYesThe internal ID of the record to update. Must be present in the input JSON payload.

Upsert

The outbound Upsert action inserts or updates a Standard or Custom object record based on an external identifier. If a record matching the externalId exists, it is updated; otherwise, a new record is created.

The connector sends an HTTP PUT request to: /services/rest/record/v1/{objectType}/eid:{externalId}

The externalId field is extracted from the input payload and used in the URL. It is removed from the payload body before the request is sent to NetSuite.

FieldRequiredDescription
externalIdYesThe external ID used to identify or create the record. Must be present in the input JSON payload.

If the externalId field is missing, the operation fails with: externalId is needed for UPSERT operation.

Delete

The outbound Delete action removes an existing Standard or Custom object record from NetSuite.

The connector sends an HTTP DELETE request to: /services/rest/record/v1/{objectType}/{id}

The record to be deleted is identified by its record ID, which is passed as the Object ID in the Delete operation — not in the input payload.

FieldRequiredDescription
Object IDYesThe internal ID of the record to delete. Provided as the tracked object ID in the Delete operation.

If the Object ID is blank, the operation fails with: ID field is missing.

Execute SuiteQL

The inbound Execute SuiteQL action runs a user-supplied SuiteQL SELECT statement against the NetSuite SuiteQL REST API (/services/rest/query/v1/suiteql). SuiteQL is a SQL-like query language that allows direct querying of NetSuite records, including multi-table joins, aggregate functions, and WHERE clause filtering. Each row returned by NetSuite is output as a separate JSON document.

Enter your SuiteQL SELECT statement in the SuiteQL Query field within the Browse dialog. Import the default Execute SuiteQL object. The connector generates the Request and Response profiles based on the query:

  • The Response Profile is built from the fields specified in the SELECT clause.
  • The Request Profile is generated only when the query contains named placeholders.

To pass dynamic values at runtime, wrap the placeholder name in curly braces ({}) directly in the SQL. For example:

SELECT id, companyname
FROM customer
WHERE id = {customer_id}

At runtime, the connector replaces each {paramName} placeholder with the corresponding value from the input document. If no placeholders are used, no Request Profile is generated and no input document is required.

note

The current release supports single-table SuiteQL queries. Multi-table JOIN support is planned for an upcoming release.

Operation Fields

FieldRequiredDescription
SuiteQL QueryYesThe SuiteQL SELECT statement to execute.
Page SizeNoNumber of records returned per page. Accepted values: 1–1000. Default: 1000.
OffsetNoNumber of records to skip before returning results. Must be a multiple of Page Size. Default: 0.

Options Tab

Click Import Operation, then use the Import wizard to select the object type with which you want to integrate.

FieldCreateQueryUpdateUpsertDeleteExecute SuiteQL
Request ProfileSupportedNot SupportedSupportedSupportedSupportedConditional
Response ProfileSupportedSupportedSupportedSupportedSupportedSupported
Return Application Error ResponsesSupportedSupportedSupportedSupportedSupportedSupported
ObjectSupportedSupportedSupportedSupportedSupportedSupported
Tracking DirectionSupportedSupportedSupportedSupportedSupportedSupported
note

Request Profile for Execute SuiteQL is generated conditionally — only when the SuiteQL Query contains {paramName} placeholders.

  • Object — Displays the object type that you selected in the Import Operation wizard.
  • Tracking Direction — Select the document tracking direction for the operation, either Input Documents or Output Documents. This setting determines which document appears in Process Reporting.
  • Request Profile — A JSON profile component that represents the JSON structure sent by the connector.
  • Response Profile — A JSON profile component that represents the JSON structure received by the connector.
  • Return Application Error Responses — Controls whether an application error prevents an operation from completing. If cleared, the process stops and reports the error on the Process Reporting page. If selected, processing continues and passes the error response to the next component.

Browse

The Browse capability allows you to discover available NetSuite object types and their field definitions directly within Boomi. A configured connection is required to use Browse.

  • Object Types — When you open the Browse tab on an operation, the connector retrieves the list of all available NetSuite object types from the NetSuite metadata-catalog API: /services/rest/record/v1/metadata-catalog

  • Object Definitions — When you select an object type, the connector fetches the JSON Schema for that object from the metadata-catalog API. The schema is returned as input and output profiles in JSON format and is used to build the request and response profiles for the operation.

On this Page