21 October 2026

How to Connect Sage Intacct to Power BI, and What to Model Once You Have

Sage Intacct connects to Power BI through its web services API: either a connector that speaks that API (CData and similar), a staged extract into a database Power BI reads, or custom queries against the API directly. There's no native Microsoft connector. The connection is the easy half. The half that decides whether the report is trusted is the modelling: general ledger detail not reports, dimension IDs not names, credit notes handled, and a trial balance reconciliation on every refresh. Here's both halves.

Sage Intacct connects to Power BI through its web services API, and there are three ways to use it: a purpose-built connector that translates Intacct's API into tables Power BI can read (CData sells one; others exist), a scheduled extract that stages Intacct data into a SQL database or a lakehouse that Power BI then reads, or custom queries against the API from Power Query or a small application. There's no native Microsoft connector for Intacct in Power BI's Get Data list as of September 2026, so one of those three is the route. The connection is the easy half and takes days. The half that decides whether a finance director trusts the result is the modelling, and I've built enough Power BI on Intacct to have a short list of what matters: model the general ledger detail rather than Intacct's reports, join on dimension IDs rather than names, handle credit notes and adjustments explicitly because they don't carry the same links invoices do, write the measures so the engine can skip empty rows, and reconcile to the trial balance on every refresh with the variance shown.

I've written separately about when Intacct's own reporting is the right answer and when Power BI earns its place (Sage Intacct Reporting). This post assumes you've decided Power BI is needed and want to do it well.

Which connection route?

Route How it works Cost shape Refresh and history Who maintains it
Connector (CData and similar) A Power BI connector or ODBC driver that calls Intacct's web services and presents objects as tables Licence per connector or per user, annual Power BI's schedule (8/day Pro, 48/day capacity); history is whatever Intacct holds The vendor; you configure
Staged extract A scheduled job (an integration platform, a script, or a Fabric pipeline) pulls Intacct objects into SQL Server, Azure SQL or a lakehouse; Power BI reads that Build cost plus a small database; no per-user licence Your schedule; you can keep snapshots Intacct doesn't IT or the partner who built it
Custom API queries Power Query or a small app calls the Intacct API directly Developer time Power BI's schedule; authentication handled in code A developer; fragile without one

Source: Sage Intacct web services documentation and the connector vendors' pages, read 21 September 2026.

Which one:

  • Fastest with no developer: the connector. Accept the licence.
  • Any real volume, multi-entity, or a need for history: the staged extract. Intacct's API gives you the current state; if you want "what did aged debtors look like at each month end" you have to store it, and the staging database is where. It's also faster for Power BI to refresh from a database than from an API paging through a large GL.
  • Small, single-entity, a developer on hand: custom queries.

For anything I'd stand behind in front of a board, the staged extract is the route, because the model reads a stable source and the refresh is a normal database refresh.

What to pull from Intacct

Not the reports. The objects:

  • General ledger detail (GL entries and their journal headers), with every dimension: entity, department, location, project, customer, vendor, employee, item, class, and your user-defined dimensions.
  • The chart of accounts with account categories, so the P&L and balance sheet structure comes from Intacct rather than being re-keyed.
  • The dimension tables themselves (departments, locations, projects, customers, vendors), with their IDs, names, and status.
  • Accounts receivable and payable: invoices, credit notes (adjustments), payments, at line level, with due dates.
  • Statistical accounts if you use them; headcount and units live there and they're useful on the same page as the financials.
  • Reporting periods and books (accrual, cash, and any user-defined books), so the model reports on the same basis Intacct does.
  • Budgets, if they're in Intacct, at account × period × dimension.

What to model

The lessons, in the order they've cost me time:

Build the P&L from GL detail, not from Intacct's financial reports. The reports are the output of the report writer and their layout changes. The GL detail plus the account categories gives you every statement, every dimension, every cut, and it doesn't break when someone edits a report.

Join on dimension IDs, show dimension names. Names get edited; IDs don't. A model keyed on department name silently splits a department into two the day someone fixes a typo.

Handle credit notes and adjustments explicitly. Intacct's AR adjustments don't carry every link an invoice does (contract references, for one), so a model that assumes every AR line joins the same way will drop or double-count them. Bring them in as their own document type, decide how each measure treats them, and reconcile.

Write the measures so the engine can skip empty rows. A finance matrix over several years of GL detail, with measures that force a value for every cell (a COALESCE-style pattern, or returning zero instead of blank), will take minutes to render because the engine can't eliminate the empty combinations. The same matrix with the measures returning blank where there's nothing runs in seconds. This isn't a tuning nicety; it's the difference between a report people open and one they don't.

Multi-entity means an entity dimension on everything, and intercompany eliminations as an explicit set of accounts or a flag, so the consolidated view is the sum of entities less eliminations and each step is visible.

Reconcile to the trial balance on every refresh. A page with the model's balance by account (or by category) next to Intacct's trial balance for the same period and book, with the variance. Zero is the only acceptable number. This page is the reason a finance director will trust the report over a spreadsheet, and it's the first page I build.

Store the month-end snapshots. Ageing, balances, open items. If you're on the staged-extract route, this is a scheduled append into a snapshot table. After six months it's the trend chart everybody asks for.

What does it cost?

Licences: Power BI Pro is £10.80 per user per month on Microsoft's UK page as of September 2026, paid yearly, excluding VAT, for everyone who opens the report. Plus a connector licence if you take that route, or a small database if you stage.

Build: a single-source report on Intacct (one entity or several, one written question, the headline figure reconciled to the trial balance to the penny) is what the First Report is for: £1,950 fixed, ten working days, published to your own workspace (see the First Report). Intacct plus a CRM or a project system is two sources and a Reporting Sprint. If a Power BI model on Intacct already exists and the numbers don't tie or the reports are slow, that's a Health Check first.

Common questions

Does Power BI have a native Sage Intacct connector?

No. As of September 2026 there's no Intacct entry in Power BI's Get Data list. You connect through a third-party connector that speaks Intacct's web services API (CData and others), a staged extract into a database, or custom API queries.

What's the best way to connect Sage Intacct to Power BI?

For anything beyond a small single entity, stage the data: a scheduled extract into SQL Server, Azure SQL or a lakehouse, with Power BI reading that. It's faster to refresh, it lets you keep month-end snapshots Intacct doesn't store, and the model reads a stable source.

Which Intacct data should I bring into Power BI?

GL detail with all dimensions, the chart of accounts with categories, the dimension tables with IDs, AR and AP at line level including adjustments, statistical accounts, reporting periods and books, and budgets. Not the financial reports; build those in the model.

Why is my Power BI finance report on Intacct slow?

Usually because the measures force a value into every cell of a matrix, so the engine can't skip the empty combinations across years of GL detail. Rewrite the measures to return blank where there's no data and the same visual drops from minutes to seconds.

Why don't my Power BI totals match the Intacct trial balance?

Commonly: credit notes or adjustments joining differently from invoices, a book mismatch (accrual vs cash), an entity or period filter, or a dimension keyed on name rather than ID. A reconciliation page comparing the model to the trial balance by account on every refresh finds it.

Can Power BI consolidate multiple Intacct entities?

Yes, though Intacct already consolidates natively, so use Intacct's consolidation for statutory purposes. Power BI's value is the management view: entities side by side, eliminations visible, joined to non-Intacct data like the CRM or projects.

How much does it cost to put Power BI on Sage Intacct?

Power BI Pro at £10.80 per viewer per month (Microsoft UK, September 2026), plus a connector licence or a small staging database. A single-source First Report is £1,950 fixed, reconciled to the trial balance before it ships.

Start with twenty minutes.

Tell me what's eating your week. I'll tell you whether it's a report, an automation, some AI advice, or nothing you need me for.