Skip to content

NetSuite

Connect Querri to NetSuite and ask questions about your customers, transactions, items and inventory in plain language.

The NetSuite connector uses NetSuite’s token-based authentication to read your account through SuiteQL, NetSuite’s query language, and copies each table into Querri as a source in your Library. It’s listed under ERP and Accounting.

You need four credentials from NetSuite, plus your account ID:

  • An integration record with token-based authentication turned on. It gives you a consumer key and secret. In NetSuite, integration records live under Setup > Integration > Manage Integrations.
  • An access token for the user and role Querri should connect as. It gives you a token ID and secret. Access tokens live under Setup > Users/Roles > Access Tokens.

The role behind the access token decides what Querri can read, so give it access to the records you want to analyze.

  1. Open the connector. Click Connect in the app rail and pick NetSuite in Add data, or click Connect on NetSuite in SettingsConnectors (admins).

  2. Enter your account details:

    FieldWhat to enter
    Account IDYour NetSuite account ID. Sandbox accounts use a hyphen suffix, such as 1234567-SB1
    Company URLOptional. Your account’s base URL. Leave it empty to use the standard NetSuite address
    Consumer Key, Consumer SecretFrom the integration record
    Token ID, Token SecretFrom the access token
  3. Save. Click Save. There’s no separate test step: Querri checks the credentials with NetSuite first, and creates the connector only if they work. If they don’t, nothing is saved and the dialog shows NetSuite’s reason. When it works, the dialog closes and you’ll see “NetSuite connected”.

  4. Load your data. Open the connector in the Library by clicking it under Connectors in the browse panel. If nothing has loaded yet, you’ll see “NetSuite is connected, but no data has loaded yet.” Click Load data now. Only the connector’s owner can start a load.

  1. Account ID: which NetSuite account to connect.
  2. The integration record hint: where the consumer key and secret come from.
  3. The access token hint: where the token ID and secret come from.

The first load brings in every table below. Inactive records are left out wherever NetSuite marks them.

AreaTables
CRMCustomers, Contacts, Vendors, Employees, Partners, Opportunities, Support Cases, Campaigns
FinanceChart of Accounts, Subsidiaries, Departments, Classes, Locations, Currencies, Accounting Periods, Payment Terms, Price Levels, Payment Methods
TransactionsTransactions, Transaction Lines, Transaction Accounting Lines
ItemsItems
InventoryInventory Balance, Bins
ProjectsProjects / Jobs, Project Tasks
HRJob Requisitions

A few things to know:

  • Transactions holds every transaction type in one table: invoices, orders, bills, payments, journals and more. Use its type column to tell them apart. Transaction Lines and Transaction Accounting Lines join to it on the transaction column.
  • Items also holds every item type in one table, with a type column.
  • Some tables need a NetSuite module: Support Cases (Customer Service Management), Campaigns (Marketing campaign management), Subsidiaries (OneWorld), Projects / Jobs and Project Tasks (Projects), and Job Requisitions (SuitePeople). Without the module, that table can’t load.

The connector’s owner can set schedules on its Schedule tab, with Full Refresh, Incremental, or both.

NetSuite supports incremental syncs. On most tables, an incremental run fetches only records whose lastModifiedDate changed since the last successful sync, and Querri always uses that field, so you can leave Cursor Field blank. Transaction Lines, Transaction Accounting Lines, Inventory Balance, Bins, Payment Terms, Price Levels and Payment Methods have no such field, so every sync fetches them in full. Those line tables can be large.

To refresh by hand, right-click the connector under Connectors in the Library and choose Re-sync now, which runs an incremental sync.

Scheduled syncs use credits when they run; syncs you start by hand don’t. See Sync Scheduling and Credits.

Querri shows NetSuite’s own reason. Check that:

  1. Account ID matches the account, including any sandbox suffix.
  2. Your consumer key and secret come from the same integration record, with token-based authentication turned on.
  3. Your token ID and secret belong to an access token for that integration record, and nobody has revoked it.

Check that the access token’s role can see those records, and that your account has any module the table needs.

  • Token-based authentication. Querri signs each request with your integration and token credentials. It never uses a NetSuite password.
  • Secrets are encrypted. The consumer secret and token secret are stored encrypted.
  • Read only in practice. Querri runs SuiteQL queries to read data. Limit the role’s permissions to the records you want in Querri.
  • Querri keeps a copy. Synced data is stored in Querri. Disconnecting deletes the data the connector synced.