Power BI
Power BI Desktop connects to Syntra through the built-in ODBC data source. You don’t need any extra connector, add-in, or custom data gateway — the Syntra installer already registered the driver and a default DSN on the machine.
Prerequisites
Section titled “Prerequisites”- Syntra installed and running (the default
Syntra QuickBooksSystem DSN is present). - Power BI Desktop (current version).
- The account running Power BI Desktop must be able to read the System DSN. If Power BI shows an empty DSN list, make sure the DSN exists under System DSN (not only User DSN) in
odbcad32.
Connect
Section titled “Connect”Step 1 — open the ODBC connector
Section titled “Step 1 — open the ODBC connector”- Open Power BI Desktop.
- On the Home ribbon, click Get data → More….
- In the Get Data dialog, pick Other in the left pane, select ODBC, and click Connect.
Step 2 — pick the DSN
Section titled “Step 2 — pick the DSN”- In Data source name (DSN), choose
Syntra QuickBooksfrom the dropdown. - Leave the Advanced options section collapsed unless you need to pass a custom connection string; the DSN already has everything.
- Click OK.
If the DSN isn’t listed, use Advanced options → Connection string (non-credential properties) and paste:
Driver={Syntra ODBC - QuickBooks ODBC};Server=127.0.0.1;Port=5433;Database=qbconnect;Step 3 — authenticate
Section titled “Step 3 — authenticate”Power BI prompts for credentials the first time you connect:
- Click Database on the left.
- Enter the username and password from the
[auth]section ofconfig.toml(installer defaults areqbconnect/changeme— change them in production). - Click Connect.
Step 4 — pick tables
Section titled “Step 4 — pick tables”The Navigator window lists every QuickBooks entity (customers, invoices, items_inventory, bills, accounts, etc.). Tick the tables you need, then click Load to import or Transform data to stage them in Power Query first.
Import vs. DirectQuery
Section titled “Import vs. DirectQuery”| Mode | Behaviour | When to use |
|---|---|---|
| Import | Power BI pulls the data once into its in-memory engine and refreshes on a schedule. Fast visuals, offline-capable. | The normal choice for dashboards and monthly reporting. |
| DirectQuery | Power BI sends each visual’s query back to Syntra on every click. Near-real-time but slower. | When freshness matters more than visual responsiveness. |
For most QuickBooks reporting scenarios, Import is the right pick. Schedule refreshes in the Power BI Service to keep the dataset current.
Custom SQL
Section titled “Custom SQL”Rather than loading entire tables, you can write a SQL query that Syntra executes once and Power BI treats as a single result set:
- In the ODBC data source dialog, expand Advanced options.
- Paste the query into SQL statement (optional):
SELECT c.full_name AS Customer, SUM(i.balance_remaining) AS TotalOutstanding, COUNT(*) AS InvoiceCountFROM invoices iJOIN customers c ON i.customer_ref_list_id = c.list_idWHERE i.is_paid = falseGROUP BY c.full_nameORDER BY TotalOutstanding DESC- Click OK.
Scheduled refresh in the Power BI Service
Section titled “Scheduled refresh in the Power BI Service”To refresh after publishing to the Power BI Service:
- Install the On-premises data gateway (standard mode) on the machine running Syntra (or any machine that can reach it on port 5433).
- Configure an ODBC data source in the gateway pointing at the same DSN (
Syntra QuickBooks) and the same credentials. - Publish your Power BI dataset and bind it to the gateway under Settings → Datasets → Gateway connection.
- Set a refresh schedule on the dataset.
The gateway must have the Syntra ODBC driver installed (re-run the Syntra installer on the gateway host if needed).
- Relationships. Power BI can auto-detect relationships using
list_id↔*_ref_list_idcolumns. Review them in the Model view; Syntra exposes all foreign-key references as plain columns, so the auto-detector catches most joins but occasionally picks the wrong pair (especially for templates and terms). Edit relationships in the Model view when in doubt. - Date tables. Build a dedicated date dimension in Power BI for time intelligence measures (YTD, MTD, YoY). QuickBooks’ own
txn_datecolumns are transactional, not a continuous calendar. - Import filters. Limit the transaction-table imports with a WHERE clause on
txn_date(last 24 months, last fiscal year, etc.). Pulling the full history of a 10-year file slows both the initial import and every refresh. - Custom fields. QuickBooks user-defined fields appear as
custom_*columns. See Custom Fields. - Numeric types. Money and quantities come through as
Decimaland preserve precision end-to-end. Avoid theDoubletype for financial measures — useFixed decimal numberinstead.