ml-connector
QuickBooks OnlineTableau

QuickBooks Online and Tableau integration

QuickBooks Online holds your company's invoices, bills, expenses, and general ledger. Tableau visualizes business data through dashboards and reports. Connecting the two lets you build financial dashboards that reflect your current accounting state, track cash flow and expenses in real time, and drill from summary reports down to the invoice or bill that drove each number. ml-connector handles the OAuth dance on the QuickBooks Online side and pushes clean accounting data into Tableau so your finance team works from the same source of truth.

How QuickBooks Online works

QuickBooks Online exposes vendors, customers, invoices, bills, expenses, journal entries, accounts, and departments through the QuickBooks Online Accounting API v3 over HTTPS REST. It uses OAuth 2.0 Authorization Code flow with access tokens that expire in 1 hour and refresh tokens that rotate every 24 to 26 hours. QuickBooks Online supports both webhooks (which fire on Create, Update, Delete, and other operations but contain only the entity ID and name) and polling via a CDC endpoint with 30-day history. All creates and updates require the full object representation with a SyncToken for concurrency control.

How Tableau works

Tableau exposes workbooks, data sources, views, users, groups, and schedules through its REST API in both Tableau Cloud (SaaS) and Tableau Server (self-hosted). It authenticates with a Personal Access Token (PAT) that is exchanged for a session token valid for 240 minutes by default, or via Connected App with JWT. Tableau supports webhooks only for push events (datasource and workbook create, update, delete, refresh start, refresh succeed, refresh fail, and user changes), though webhooks carry no HMAC signature. Views in Tableau are read-only derived objects and cannot be written to directly.

What moves between them

Financial records flow from QuickBooks Online into Tableau on a schedule you define. Invoices, bills, expenses, and journal entries from your QuickBooks Online general ledger are polled and normalized into Tableau datasources, where they populate workbooks and dashboards for financial reporting. Tableau views are read-only, so data moves one direction: QuickBooks Online to Tableau.

How ml-connector handles it

ml-connector stores your QuickBooks Online OAuth credentials and refreshes the access token when it approaches expiry, handling the 1-hour token rotation transparently. It polls your QuickBooks Online company (realm) on a schedule you set, fetching full records for invoices, bills, accounts, customers, vendors, and journal entries, then pushes the data into Tableau datasources via API. Because Tableau Cloud and Server have different scheduling models, ml-connector uses direct datasource refresh endpoints on Cloud and schedule-based refreshes on Server. It maps QuickBooks Online accounts and classes to Tableau dimensions so your dashboard filters and drill-downs are consistent. Tableau webhooks carry no signature verification, so ml-connector validates the event source through additional checks before updating datasources.

A real-world example

A small manufacturing firm uses QuickBooks Online for accounting and Tableau to report financial performance to investors and the board. Before the integration, the finance controller exported invoices, bills, and expense reports from QuickBooks Online each week and manually updated Tableau workbooks, a process that took 3 hours and introduced copy-paste errors. With QuickBooks Online and Tableau connected, invoices and bills flow to Tableau on a daily schedule, and the dashboard reflects current accounts receivable, accounts payable, and expense totals without manual intervention. Month-end reporting now pulls from a single authoritative source.

What you can do

  • Sync invoices, bills, expenses, and journal entries from QuickBooks Online to Tableau datasources on a schedule you control.
  • Refresh Tableau workbooks automatically each time QuickBooks Online data is updated, keeping dashboards current with your general ledger.
  • Map QuickBooks Online accounts, customers, and vendors to Tableau dimensions for consistent filtering and drill-down in financial reports.
  • Authenticate with QuickBooks Online OAuth 2.0 and Tableau Personal Access Tokens, handling token rotation and refresh transparently.
  • Track every record pulled and every datasource refresh in a full audit trail for compliance and troubleshooting.

Questions

Which direction does data flow between QuickBooks Online and Tableau?
Data flows from QuickBooks Online to Tableau only. Invoices, bills, expenses, and journal entries are pulled from QuickBooks Online and pushed into Tableau datasources and workbooks. Tableau views are read-only, so no data flows back to QuickBooks Online.
How does ml-connector handle QuickBooks Online OAuth token expiry?
QuickBooks Online access tokens expire in 1 hour and refresh tokens rotate every 24 to 26 hours. ml-connector monitors token expiry and refreshes credentials before they expire, so your sync schedule runs without interruption. If a refresh token is revoked, you will need to re-authorize the connection.
Do Tableau webhooks require special setup for this integration?
Tableau webhooks carry no HMAC signature verification, so ml-connector uses additional validation to confirm events are authentic before updating datasources. You configure the webhook endpoint once, and ml-connector handles the rest. Polling is also supported if you prefer not to use webhooks.

Related integrations

Connect QuickBooks Online and Tableau

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started