AdvancedOracle NetSuiteSuiteAnalytics Connect

Setting up NetSuite SuiteAnalytics Connect for ODBC and JDBC access

Question
how to connect to NetSuite with SuiteAnalytics Connect ODBC driver

Also searched as

  • netsuite odbc driver power bi connection setup
  • suiteanalytics connect dsn configuration
  • netsuite odbc query timeout error
  • netsuite analytics connect vs saved search performance

Short answer

SuiteAnalytics Connect is a separately licensed feature that exposes a read-only relational view of NetSuite data over ODBC or JDBC for BI tools like Power BI, Tableau and Excel. Setup means enabling the feature, downloading the driver, configuring a DSN against the account's connect host, and using a role with the SuiteAnalytics Connect permission.

Applies to: NetSuite editions with SuiteAnalytics Connect provisioned (Enterprise/Ultimate tiers or purchased add-on), ODBC and JDBC drivers for Windows, macOS and Linux BI clients

Set up SuiteAnalytics Connect for BI access

  1. 1Confirm the account has SuiteAnalytics Connect provisioned; it is a licensed add-on, not something every account can simply enable at Setup > Company > Enable Features > SuiteCloud without it being purchased.
  2. 2Download the correct driver (ODBC for Windows/Power BI/Tableau Desktop, JDBC for Java-based BI or ETL tools) from the link under Setup > Integration > SuiteAnalytics Connect (or Setup > Company > Enable Features if using the newer flow), matching your NetSuite account's driver version.
  3. 3Install the driver on the machine or server that will run the BI tool, not on end users' machines individually if you are centralizing reports on a server.
  4. 4Create a role (or reuse an existing one) with the 'SuiteAnalytics Connect' permission under Setup, plus view permission on whatever record types the reports need.
  5. 5Configure a DSN (Windows ODBC Data Source Administrator, or the equivalent on macOS/Linux) with the host in the form ACCOUNTID.connect.api.netsuite.com, the account ID (with the sandbox suffix if applicable), and either TBA credentials or email/password plus role ID for authentication depending on the driver version.
  6. 6Test the DSN connection before pointing a BI tool at it; a successful test confirms host, port (typically 1708 for the native protocol or the driver's documented port) and credentials are all correct.
  7. 7In Power BI, Tableau or Excel, connect via the ODBC data source you created and browse the exposed table list, which mirrors NetSuite record types (Transaction, TransactionLine, Customer, Item and many joined views) rather than raw internal database tables.
  8. 8Write SQL against these tables using standard SELECT/JOIN/WHERE syntax; SuiteAnalytics Connect is read-only, so there is no INSERT/UPDATE/DELETE support.

What SuiteAnalytics Connect actually exposes

Rather than a raw dump of NetSuite's internal database schema, Connect exposes a curated, documented relational layer: tables like Transaction, TransactionLine, Customer, Item, Account and many joined or derived views, plus your account's custom fields as additional columns on the relevant table.

This layer is read-only by design; it is meant for reporting and analytics, not for writing data back into NetSuite. Any write-back requirement needs SuiteTalk REST/SOAP or SuiteScript instead.

Saved searches can also be exposed as their own queryable objects through Connect, which is useful when a saved search already encodes business logic (filters, formula columns) that would otherwise need to be reproduced in the BI tool's own query layer.

Why big pulls time out or run slowly

TransactionLine in particular can be enormous in a mature NetSuite account, and a BI tool that tries to pull the whole table with no filters, or that joins several large tables without a selective WHERE clause, commonly hits query timeouts or takes long enough to look hung.

The practical fix is the same as with any reporting warehouse: filter by date range and subsidiary/business unit at the query level rather than pulling everything and filtering in the BI tool, and prefer incremental pulls (only new/changed rows since the last extract, using lastmodifieddate) for scheduled refreshes instead of full reloads every time.

SELECT t.tranid, t.trandate, tl.item, tl.quantity, tl.netamount
FROM transaction t
JOIN transactionline tl ON tl.transaction = t.id
WHERE t.trandate >= TO_DATE('2026-01-01','YYYY-MM-DD')
  AND t.type = 'SalesOrd'

Common connection failures

A connection that fails immediately is usually the host (wrong account ID or missing sandbox suffix), the port, or a firewall blocking outbound access from the BI server to NetSuite's connect endpoint on the required port.

A connection that succeeds but every query fails with a permission error usually means the role used for the DSN lacks the SuiteAnalytics Connect permission itself, view access to specific record types, or both; check the role, not just the user's login credentials.

Common pitfalls

  • !Assuming SuiteAnalytics Connect is available on every NetSuite edition; it requires specific provisioning.
  • !Pulling entire large tables (especially TransactionLine) without date or business unit filters and blaming NetSuite for slow BI refreshes.
  • !Using a broad administrator role for the DSN instead of a scoped reporting role, which is both a security risk and slower due to unnecessary field-level permission checks.
  • !Not accounting for driver version mismatches after a NetSuite release upgrade, which can break previously working DSNs until the driver is updated.
  • !Trying to write data back through the ODBC connection, which is not supported since Connect is read-only.

How an ERP-grounded AI assistant handles this

For teams that already have SuiteAnalytics Connect wired into a warehouse or BI tool, ERPray can be grounded directly on those same read-only tables and answer ad hoc business questions in natural language without anyone hand-writing a new SQL join every time, while still respecting the same role-based data access the ODBC connection uses.

Frequently asked questions

Is SuiteAnalytics Connect included with every NetSuite subscription?

No, it is a separately licensed feature typically available on higher editions or as a purchased add-on. Accounts without it provisioned will not see the feature usable even if the checkbox appears to exist in Enable Features.

Can I use SuiteAnalytics Connect to update NetSuite records?

No, it is strictly read-only. Any write operations need to go through SuiteTalk REST or SOAP web services, RESTlets, or SuiteScript instead of the ODBC/JDBC connection.

Why do custom fields not show up in the ODBC table list?

Custom fields need to be exposed to SuiteAnalytics before they appear as queryable columns; check the custom field's 'Available for SuiteAnalytics' or equivalent checkbox on its definition, since not every custom field is exposed by default.

What is the difference between using saved searches and raw SQL through Connect?

A saved search already encapsulates filters and formulas as configured in NetSuite's UI, so querying it through Connect reuses that logic. Raw SQL against the base tables gives full flexibility but means reproducing any business logic that a saved search would otherwise provide for free.

Related

Advanced

Working with NetSuite's SuiteTalk REST Web Services API

SuiteTalk REST exposes NetSuite records at https://ACCOUNTID.suitetalk.api.netsuite.com/services/rest/record/v1/{recordType}/{id} and ad hoc SQL-like queries at /services/rest/query/v1/suiteql, both authenticated with TBA or OAuth 2.0. It returns JSON, paginates large result sets with limit/offset and a hasMore flag, and needs expandSubResources or a specific fields query to pull sublist and related data efficiently.

Advanced

Avoiding governance limit errors in NetSuite Map/Reduce scripts

A NetSuite Map/Reduce script gives each map or reduce invocation of a key its own fresh governance allotment instead of sharing one pool across the whole run, so most SSS_USAGE_LIMIT_EXCEEDED failures come from a single key doing too much work, not from the total record count. Fix it by moving heavy logic out of getInputData, keeping map and reduce functions idempotent and cheap per key, and checking runtime.getCurrentScript().getRemainingUsage() before expensive calls.

Advanced

Authenticating NetSuite RESTlets with OAuth 2.0 and Token-Based Authentication

NetSuite RESTlets can be called with either Token-Based Authentication (TBA, OAuth 1.0a signed requests) or OAuth 2.0, and both require a Setup > Integrations > Manage Integrations record before any token is issued. Machine-to-machine OAuth 2.0 uses a client credentials grant with a JWT bearer assertion signed by a certificate; TBA uses a consumer key/secret plus a per-user access token signed with HMAC-SHA256.

Error fix

Fix NetSuite SSS_USAGE_LIMIT_EXCEEDED Error

SSS_USAGE_LIMIT_EXCEEDED fires when a SuiteScript execution consumes all the governance units (usage points) allotted to its script type before it finishes. Fix it by checking runtime.getCurrentScript().getRemainingUsage() before expensive calls, yielding or rescheduling in Scheduled scripts, and moving heavy record-count work into Map/Reduce, which yields automatically across stages.

Error fix

Fix NetSuite INVALID_FLD_VALUE Error

INVALID_FLD_VALUE means NetSuite rejected a value you tried to set on a field because it does not match the field's expected type, list option, or reference record. Fix it by confirming the internal ID or text value actually exists on that field's source list and matches the field's value type (text versus list versus record reference) before setting it.

Error fix

Fix NetSuite SSS_MISSING_REQD_ARGUMENT Error

SSS_MISSING_REQD_ARGUMENT means a NetSuite API call, most often record.create(), record.load(), or search.create(), was called without a parameter that method requires, such as type or id. Fix it by checking the object literal you passed against the current SuiteScript 2.x API signature and confirming no required key is undefined at runtime.

AI for ERP

AI for NetSuite, Beyond the Built-In Text Tools

NetSuite's built-in AI covers text generation, not grounded answers on your own data. See how a private LLM over SuiteQL adds real Q&A and controls.

AI for ERP

AI agents for NetSuite manufacturing operations

AI agents for NetSuite manufacturing: WIP tracking, routing exceptions, and work order status grounded in SuiteQL, with human approval on anything that writes back.

Stuck on Oracle NetSuite?

Talk to engineers who work inside Oracle NetSuite every week, and who build private AI that answers these questions from your own ERP data.