NetSuite connector
Create, update, and transform NetSuite records from any Neblex workflow or agent, from a single customer lookup to a full order-to-cash chain, with SuiteQL and saved-search reads, and every call queued against your account's concurrency governance rather than fighting it.
Overview
The NetSuite connector gives a Neblex workflow or agent governed access to a NetSuite account: read records with SuiteQL and saved searches, write and update any record type the role permits, and use NetSuite's own record transformation model to turn a sales order into an invoice or an item fulfillment without rebuilding the record by hand.
- Works against production, sandbox, and Release Preview accounts, switched per connection
- Reads the record and field metadata catalog at connection time, so custom records, custom fields, and custom segments appear with no manual mapping file
- Every call is queued against the account's concurrency limit, so a burst of workflow steps does not trip governance for the rest of the account
- One connector powers deterministic workflows, agent tool calls, and scheduled sync jobs, all in the same run log
Why teams use the NetSuite connector
The three jobs this connector is picked for most often, and what each one gets you.
- Run order-to-cash without rekeying.
- Get NetSuite data out on a schedule.
- Give finance an assistant with guardrails.
Worked example
A real flow finance teams turn on early, with the actual field-level detail.
Approved CRM opportunity to a posted NetSuite invoice, with a value gate
A closed-won opportunity in the CRM becomes a NetSuite customer, sales order, and invoice. Orders above a threshold pause for controller approval before anything posts.
- Trigger: CRM
Opportunitymoves toClosed Won, passing the account, contact, line items, andAmount. - Customer:
Upsert recordoncustomer, keyed on external IDcrm_account_id, mappingaccount.name → companyName,account.billing_country → addressbook.country,account.terms → terms,account.subsidiary_code → subsidiary. - Gate: if
Amountis 50,000 or more, send an approval to the controller with the order summary. On reject, stop and post the reason back to the opportunity. On approve, continue. - Order:
Create recordonsalesOrder, mappingentityfrom the upserted customer,otherRefNum → PO number, and each opportunity line to anitemsublist line withline.sku → item,line.quantity → quantity,line.unit_price → rate. - Invoice:
Transform recordfrom the sales order toinvoice, so NetSuite carries the lines and tax forward under its own rules. - Close the loop: write the NetSuite
invoiceinternal ID and tran ID back to the opportunity, and post the invoice link to the deal channel in Slack.
Example flows
Common patterns other teams start from with this connector.
- Quote-to-cash sync. Closed-won opportunities flow from the CRM to CPQ to NetSuite billing automatically, with no rekeying between systems. (Sales and RevOps)
- Store order to ERP. Paid Shopify orders become NetSuite sales orders, with new shoppers created as customers and fulfillment status flowing back to the store. (E-commerce ops)
- Payment reconciliation. Every paid Stripe invoice is matched to its open NetSuite invoice and recorded as a customer payment, with unmatched items queued for review. (Finance)
- ERP to warehouse. Transactions, balances, and custom records sync into Snowflake on a schedule, with an incremental filter on the last modified date. (Data)
Supported objects
All standard record types the connected role can access are supported. Custom records, custom fields, and custom segments are picked up from the metadata catalog at connection time.
Commonly used standard records
Customer, Contact, Vendor, Sales Order, Invoice, Cash Sale, Estimate, Item Fulfillment, Purchase Order, Vendor Bill, Credit Memo, Customer Payment, Journal Entry, Inventory Item, Non-Inventory Item, Assembly Item, Subsidiary, Employee
Custom records (any
customrecord
type) and custom fields behave identically to standard records across every operation above, including SuiteQL joins and the transform action where NetSuite defines a transformation.
Security and access
The connection runs as a NetSuite role, so access is exactly what that role's permissions and restrictions allow, and no more.
- OAuth 2.0 or Token-Based Auth. OAuth 2.0 for interactive setup, Token-Based Authentication for unattended server-to-server connections. No password storage.
- Role and restriction aware. Reads and writes respect the role's permission level per record type, plus subsidiary, department, and class restrictions on the employee behind the role.
- IP and token controls. Compatible with NetSuite IP address rules and per-integration token management, so a connection can be revoked without touching the others.
- Full audit trail. Every record read, write, and transform, with the payload and the NetSuite internal ID, flows into the same Neblex audit trail as every other connector.
Limits, as the vendor publishes them
The shape of the vendor's limits, as published at the time of writing. Verify the exact figures for your plan; they change without notice. Neblex honors the vendor's own rate-limit and retry signals and backs off within them.
- Concurrent requests are capped by your account's concurrency governance, which varies by service tier and SuiteCloud licenses. The connector queues and paces calls to stay under it
- SuiteQL and saved-search reads return up to 1,000 rows per page before pagination
- RESTlet calls are bounded by SuiteScript governance units per script execution
- File attachments through REST are capped around 10 MB inline, with larger files routed through the File Cabinet
- Exponential backoff and retry are applied automatically on
SSS_REQUEST_LIMIT_EXCEEDEDand concurrency rejections
What a flow can do in NetSuite
Create and update customers, sales orders, invoices, and purchase orders, run SuiteQL queries and saved searches, batch create, update, and delete records, transform an estimate into a sales order, bill purchase orders and fulfil orders, call RESTlets for custom logic, and many more.
The connector exposes 271 operations, generated from NetSuite as it ships, and 0% of them describe their output so later steps can map fields without guessing. Authentication: ConnectionString.
How flows react to changes in NetSuite
The NetSuite connector declares 1 trigger, delivered by polling on the schedule you set. A flow that starts from one of them runs with the changed record already in hand.
Flows can start on any record changed.
Frequently asked questions
Does the NetSuite connector support custom records and fields?
Yes. Custom records, custom fields, and custom segments are read from the metadata catalog at connection time and work across every trigger, action, and search with no extra configuration.
Can it react to changes on the next poll?
Close to it. The connector declares 1 change trigger, such as Record changed, delivered by polling on the schedule you set, from every minute upward, so a flow starts with the changed record in hand. If NetSuite can send webhooks on your plan, point them at a Neblex webhook endpoint for an event-driven start instead.
How does it handle NetSuite's record transformation model?
The Transform record action calls NetSuite's own transformation, so a Sales Order becomes an Invoice or an Item Fulfillment under NetSuite's rules, with lines and tax carried forward rather than rebuilt.
Will a large sync trip governance for the rest of the account?
No. The connector queues calls against the account concurrency limit and backs off on governance errors, so a backfill runs slower rather than blocking other integrations.
Does it work with sandbox accounts?
Yes. Each connection targets a production, sandbox, or Release Preview account, so you can build and test against a sandbox and promote the same flow to production through environments.
Bring one real integration
We will build it with you against your own systems, with the run log open.