How to Integrate Oracle NetSuite with Power BI for Reporting and Planning

Connect Oracle NetSuite to Power BI without SuiteAnalytics Connect: copy your NetSuite data into a warehouse you own, refresh it on a schedule, then report in Power BI.
Collaborative Business Analytics in Action

Table of Contents

NetSuite holds the numbers your reports need, but getting them into Power BI cleanly is where most finance teams like yours get stuck. Exports go stale, live connectors slow down, and each report ends up with its own copy of the data. There’s a cleaner, faster, repeatable way to do it, and it starts with where the data lands.

This guide walks through how you can setup Acterys NetSuite Sync, from  connection to a working Power BI report; plus how you can add planning to those same reports inside your Power Bi. And the best part, you won’t need a SuiteAnalytics Connect license or an ODBC gateway for any of it. 

Why Not just Connect Power BI Straight to NetSuite?

You could point Power BI at NetSuite directly, through SuiteAnalytics Connect or a refresh-time connector, and for one small report that’s fine. But, this starts to hurt once several reports query the same large tables on every refresh, or once a second team wants the same data. Copying NetSuite into a warehouse once, and reading from there, scales better than querying it again for every report. And it’s as simple as 1, 2, 3.  

Connect NetSuite with Power BI in 3 Steps

  1. Connect your NetSuite account with a token. No ODBC driver, no SuiteAnalytics Connect license. 
  2. Select the tables you want, and set each to incremental or full refresh. 
  3. Choose your destination and schedule it. The first load runs, then it repeats on its own. 

 

Bonus: You can extend reporting into financial planning. With your NetSuite actuals in Power BI, you can use Acterys to build budgets, update forecasts, and compare planned versus actual performance, with governed write-back keeping your planning data connected to the latest numbers. 

Step 1: Connect your NetSuite account

NetSuite Sync connects through NetSuite’s REST web services and SuiteQL, the query interface built into every NetSuite account. You create an integration record in NetSuite, issue a token-based auth pair and paste it in, and the connection is verified against your account before anything runs. There’s no ODBC driver to install and no SuiteAnalytics Connect license to buy. 

Because the sync runs under the role you assign it, NetSuite’s own permissions carry through to the warehouse, so people only see what they’re cleared to see. 

Step 2: Select the tables and set the mode

Next you pick what to copy. The table list reads live from your account, so your custom records, custom fields and saved searches show up next to the standard ones. You can tick the finance set in one go, the general ledger posting lines, transactions and their lines, chart of accounts, subsidiaries and the rest, or add sales, inventory and project records for other teams. Where a join is too complex for a saved search, you can write custom SuiteQL and it becomes a table like any other. 

For each table you set the mode. Large tables run incremental, so after the first load only the rows that changed come across, while small dimension tables refresh in full each time. 

netsuite-sync-add-data

Pick the NetSuite records to sync, and each one becomes a table in your warehouse. Company and figures are illustrative.

Step 3: Choose the destination and schedule it

Last, you pick where the data lands and how often. The destination is a warehouse you own: Azure SQL or SQL Server, Snowflake, Microsoft Fabric or BigQuery. The schema is created in your target, the first load runs, and the schedule takes over from there.  Each table runs on its own schedule, from nightly to hourly, and after the first load only changed rows move. A nightly general ledger load is enough for most finance reporting, while a sales dashboard might refresh several times through the day.  

netsuite-sync-tables

Every table carries its own schedule and last-run status. Figures are illustrative.

Report on NetSuite data in Power BI

From here it runs on its own. Your reports read the warehouse like any other database, with no NetSuite gateway driver to maintain and no per-report query back to NetSuite. Every sync is logged and checked against NetSuite, so you can trust what’s on the page before anyone builds on it. 

To skip the blank-page start, Acterys ships Power BI templates for the common finance views, from the P&L and balance sheet to budget versus actuals, each wired to the synced tables. Check out our NetSuite integration page for further details. 

netsuite-sync-overview-linkedin

NetSuite actuals in a Power BI profit and loss view, built on the synced tables. Company and figures are illustrative.

From reporting to planning on the same numbers

Reading NetSuite in Power BI is the reporting half. Once the actuals sit in the warehouse, Acterys adds planning, budgeting and forecasting in Power BI and Excel with write-back, so a plan is measured against last night’s actuals rather than last month’s export. 

Try it for yourself 

For more information, and to try it yourself, check out Acterys NetSuite Sync.  

Frequently asked questions

Yes. Acterys NetSuite Sync reads NetSuite through its REST web services and SuiteQL, which every NetSuite account includes, so no SuiteAnalytics Connect license or ODBC driver is needed.

Copy your NetSuite records into a data warehouse you own, such as Azure SQL, Snowflake, BigQuery or Microsoft Fabric, on a schedule. Power BI then connects to that warehouse like any other database, so reports read a copy instead of querying NetSuite on every refresh. 

Each table runs on its own schedule, from nightly to hourly. After the first load, most tables pull only the records that changed, so refreshes stay fast even on large transaction tables. 

No. You create an integration record in NetSuite, paste a token-based auth pair into Acterys NetSuite Sync, then pick your tables and schedule. A developer isn’t required to keep it running when fields or records change.