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: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
erp/netsuite/inventory-adjustment/create
erp/netsuite/work-order/get
erp/netsuite/work-order-completion/create
erp/netsuite/suiteql/query
Prefer: transient. Body should include at least {"q": "..."} (optional params for bound parameters).
Deploy notes
- Replace
YOUR_ACCOUNTinBASE_ADDRESS. - Deploy only
NetSuiteRestApi.lotwith-addRoute(noADD METADATAin that file). - Use
hub-metadata.lot+icon.pngfor Hub template listing (WITH STATUS "beta"). - Status stays blocked in the factory queue until a live authenticated HTTP smoke succeeds.

