NetSuite
Connect Querri to NetSuite and ask questions about your customers, transactions, items and inventory in plain language.
Overview
Section titled “Overview”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.
Before you start
Section titled “Before you start”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.
Connecting to NetSuite
Section titled “Connecting to NetSuite”-
Open the connector. Click Connect in the app rail and pick NetSuite in Add data, or click Connect on NetSuite in Settings → Connectors (admins).
-
Enter your account details:
Field What to enter Account ID Your NetSuite account ID. Sandbox accounts use a hyphen suffix, such as 1234567-SB1Company URL Optional. Your account’s base URL. Leave it empty to use the standard NetSuite address Consumer Key, Consumer Secret From the integration record Token ID, Token Secret From the access token -
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”.
-
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.
- Account ID: which NetSuite account to connect.
- The integration record hint: where the consumer key and secret come from.
- The access token hint: where the token ID and secret come from.
What syncs
Section titled “What syncs”The first load brings in every table below. Inactive records are left out wherever NetSuite marks them.
| Area | Tables |
|---|---|
| CRM | Customers, Contacts, Vendors, Employees, Partners, Opportunities, Support Cases, Campaigns |
| Finance | Chart of Accounts, Subsidiaries, Departments, Classes, Locations, Currencies, Accounting Periods, Payment Terms, Price Levels, Payment Methods |
| Transactions | Transactions, Transaction Lines, Transaction Accounting Lines |
| Items | Items |
| Inventory | Inventory Balance, Bins |
| Projects | Projects / Jobs, Project Tasks |
| HR | Job Requisitions |
A few things to know:
- Transactions holds every transaction type in one table: invoices, orders, bills, payments, journals and more. Use its
typecolumn to tell them apart. Transaction Lines and Transaction Accounting Lines join to it on thetransactioncolumn. - Items also holds every item type in one table, with a
typecolumn. - 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.
Keeping data fresh
Section titled “Keeping data fresh”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.
Troubleshooting
Section titled “Troubleshooting”The credentials are rejected
Section titled “The credentials are rejected”Querri shows NetSuite’s own reason. Check that:
- Account ID matches the account, including any sandbox suffix.
- Your consumer key and secret come from the same integration record, with token-based authentication turned on.
- Your token ID and secret belong to an access token for that integration record, and nobody has revoked it.
A table is missing or empty
Section titled “A table is missing or empty”Check that the access token’s role can see those records, and that your account has any module the table needs.
Security & permissions
Section titled “Security & permissions”- 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.
Next Steps
Section titled “Next Steps”- Sync Scheduling: full and incremental schedules
- Managing Connections: change, refresh and remove connectors
- Data Connectors Overview: every connector Querri offers