Skip to main content
Technical Preview

Overview

A client-mode connector for a curated inventory and manufacturing slice of NetSuite SuiteTalk REST Web Services under /services/rest (record/v1 + query/v1): BASE_ADDRESS is the SuiteTalk REST root (https://{account}.suitetalk.api.netsuite.com/services/rest). Topics use erp/netsuite/<object>/<verb>.
NetSuite REST APIs require a real account ID and an OAuth 2.0 Bearer token (or TBA). This template has not been verified against a live account. Prefer Hub secrets for tokens. Pull per-record OpenAPI with GET .../record/v1/metadata-catalog/{recordType} and Accept: application/swagger+json.

Basic Syntax

Events

Auth

Option A — OAuth 2.0 Bearer (default in the template): Pass the access token on the MQTT request payload:
The connector sends Authorization: Bearer {value.json.access_token}. Obtain the token via OAuth 2.0 client credentials (M2M) or authorization code against https://{account}.suitetalk.api.netsuite.com/services/rest/auth/oauth2/v1/token. Option B — Token-Based Auth (OAuth 1.0a): Supported by NetSuite REST Web Services but not modeled in this client-mode header set. Use a broker-side TBA signer or an upstream action if you need TBA. Prefer Hub secrets / GET SECRET. Never commit real credentials.

Example MQTT payloads

GET inventory item Topic: erp/netsuite/inventory-item/get
POST inventory adjustment Topic: erp/netsuite/inventory-adjustment/create
GET work order Topic: erp/netsuite/work-order/get
POST work order completion (transform) Topic: erp/netsuite/work-order-completion/create
POST SuiteQL Topic: erp/netsuite/suiteql/query
The SuiteQL event already sends Prefer: transient. Body should include at least {"q": "..."} (optional params for bound parameters).

Deploy notes

  1. Replace YOUR_ACCOUNT in BASE_ADDRESS.
  2. Deploy only NetSuiteRestApi.lot with -addRoute (no ADD METADATA in that file).
  3. Use hub-metadata.lot + icon.png for Hub template listing (WITH STATUS "beta").
  4. Status stays blocked in the factory queue until a live authenticated HTTP smoke succeeds.

References

Last modified on October 21, 2026