Tableau
Tableau Desktop connects to Syntra through its Other Databases (ODBC) connector. The Syntra installer registers a System DSN (Syntra QuickBooks) the first time it runs, so Tableau sees Syntra in the dropdown immediately.
Prerequisites
Section titled “Prerequisites”- Syntra installed and running.
- Tableau Desktop 2020.1 or later (any version that ships the ODBC connector).
- The account running Tableau must be able to read the System DSN. If Tableau’s DSN list is empty, confirm the DSN exists under System DSN (not only User DSN) in
odbcad32.exe.
Connect
Section titled “Connect”Step 1 — open the ODBC connector
Section titled “Step 1 — open the ODBC connector”- Open Tableau Desktop.
- Under Connect → To a Server, click More… if needed, then pick Other Databases (ODBC).
Step 2 — pick the DSN
Section titled “Step 2 — pick the DSN”- In the DSN dropdown, choose
Syntra QuickBooks. - Click Connect.
If the DSN isn’t listed, use the Connect Using → Connection Attributes path and enter:
DRIVER=Syntra ODBC - QuickBooks ODBC;SERVER=127.0.0.1;PORT=5433;DATABASE=qbconnectStep 3 — authenticate
Section titled “Step 3 — authenticate”Enter the credentials from the [auth] section of config.toml:
| Field | Value |
|---|---|
| Username | qbconnect (installer default) |
| Password | changeme (installer default — change it!) |
Click Sign In.
Tick Require SSL only if you have TLS configured on the server.
Step 4 — pick tables
Section titled “Step 4 — pick tables”- In the Schema dropdown, select
public. - Drag tables from the left panel onto the canvas.
- Tableau auto-detects join relationships from matching column names. Most joins follow
list_idon the parent table =*_ref_list_idon the referring table (for example,invoices.customer_ref_list_id→customers.list_id).
Custom SQL
Section titled “Custom SQL”For advanced queries, click New Custom SQL in the left panel and paste your query:
SELECT i.ref_number, c.full_name AS customer, i.txn_date, il.item_ref_full_name AS item, il.quantity, il.amountFROM invoice_lines ilJOIN invoices i ON il.txn_id = i.txn_idJOIN customers c ON i.customer_ref_list_id = c.list_idWHERE i.txn_date >= '2025-01-01';Live vs. Extract
Section titled “Live vs. Extract”| Mode | Description | When to pick it |
|---|---|---|
| Live | Tableau sends each visualisation’s query back to Syntra on demand. | Small result sets or dashboards that need current data. |
| Extract | Tableau writes a local .hyper snapshot and runs every visualisation against that instead. | Large datasets, complex calcs, published workbooks — the usual choice. |
For most use cases, Extract mode with scheduled refreshes gives the best balance of performance and freshness.
Publishing to Tableau Server / Tableau Cloud
Section titled “Publishing to Tableau Server / Tableau Cloud”- Build your workbook with an Extract data source.
- Publish to Tableau Server (or Tableau Cloud with Bridge).
- Configure refresh schedules to rebuild the extract from Syntra.
- Tableau Server or Tableau Bridge needs the Syntra ODBC driver installed locally. Re-run the Syntra installer on the server/bridge host if it’s a different machine than Tableau Desktop.
- Data types. Money and quantity fields come through as exact decimals, dates as plain dates, booleans as true/false. No casting gymnastics required.
- Performance. Apply filters early in the data source (not just in the viz) to keep the row count Tableau pulls from Syntra low.
- Parameters. Combine Tableau parameters with Custom SQL to build user-driven queries (date ranges, customer pickers, status filters).
- Custom fields. QuickBooks custom fields appear as
custom_*columns on the underlying table. See Custom Fields. - Relationships. Most
*_ref_list_id→list_idjoins auto-detect, but classes, terms, and templates sometimes need a manual relationship. Review the Model view after first load.