SYSPRO and Tableau integration
SYSPRO runs manufacturing finance and operations. Tableau visualizes that data for decision makers. Connecting the two keeps your financial reports, inventory dashboards, and supplier metrics current without manual exports. Records flow from SYSPRO into Tableau as refreshable datasources tied to your operational schedule, so the moment a sales order posts in SYSPRO, it's available in Tableau reports without lag.
What moves between them
Records flow from SYSPRO into Tableau. ml-connector polls SYSPRO's OData layer (GeneralLedger accounts, ArInvoice, ArCustomer, InvMaster items, ApSupplier, PorMasterHdr orders) at a schedule you set, typically every 5-15 minutes for financial records. Extracted data is transformed into Tableau-compatible row format and posted into existing Tableau datasources or created as new extracts. Historical balances and inventory snapshots are available on demand. Reference data such as GL accounts, cost centers, and customer dimensions are synced in both directions so Tableau dimension filters always reference valid SYSPRO entities.
How ml-connector handles it
ml-connector obtains a SYSPRO session token at startup by calling Utilities/Logon with operator credentials, includes the token on every OData poll, and refreshes it before expiry or if a call returns a session-expired error. It fetches SYSPRO records using OData's $filter and $select parameters to pull only changed records since the last sync (filtering on PostDate or InvoiceDate). Each record is validated against the Tableau datasource schema, then posted via Tableau's REST endpoint for datasource content. ml-connector stores both SYSPRO operator credentials and Tableau PAT encrypted, tracks Tableau token expiry so a refresh does not cause an outage, and maps SYSPRO GL account codes and cost center IDs to Tableau datasource column names so financial dimensions align. If a Tableau API call returns 429 (rate limit), ml-connector backs off and retries. Every extraction and load carries a timestamp and audit ID so failed records can be identified and replayed from the last known good state.
A real-world example
A mid-sized distribution company runs SYSPRO for accounts payable, accounts receivable, inventory, and general ledger. Finance managers need daily visibility into cash flow, aging payables, inventory turnover, and cost center spend for budget forecasting, but today they export CSV files from SYSPRO daily and re-upload them into Tableau, a manual step that delays reporting by hours and is error-prone. With SYSPRO and Tableau connected, financial records and inventory snapshots flow automatically every 15 minutes. Finance can drill into aging analysis, cost center variance, and inventory aging in Tableau without waiting for an export, and the data is always current. The manual upload step is eliminated.
What you can do
- Poll SYSPRO's OData endpoints for financial records, inventory, suppliers, and customers on a regular schedule without manual export.
- Transform SYSPRO records into Tableau-compatible rows and post them as refreshable extracts or append to existing datasources.
- Manage SYSPRO session tokens and Tableau Personal Access Tokens, refreshing them automatically before they expire.
- Map SYSPRO GL accounts, cost centers, and customer dimensions to Tableau datasource columns so financial and operational dimensions stay aligned.
- Track every extraction and load in an audit log, identify failed records by timestamp, and replay them without re-pulling the full dataset.
Questions
- How often does data flow from SYSPRO to Tableau?
- ml-connector polls SYSPRO on a schedule you set, typically every 5-15 minutes for financial records and less frequently for slower-changing reference data like suppliers and inventory. Tableau extracts refresh based on that schedule, so your dashboards are current to the last poll cycle. The schedule is configurable per datasource.
- Does the integration require SYSPRO to push data via webhooks?
- No. SYSPRO does not support outbound webhooks, so ml-connector uses polling instead. It queries OData tables with filters on timestamp fields (PostDate, InvoiceDate) to fetch only changed records since the last sync, reducing server load while keeping data fresh.
- How are SYSPRO credentials and Tableau tokens stored?
- Both credential sets are encrypted at rest using envelope encryption and are never logged or exposed. ml-connector stores the SYSPRO session token in memory and refreshes it before expiry to prevent outages. Tableau PAT is rotated automatically if a call returns a token-expired error, so credential renewal does not require manual intervention.
Related integrations
More SYSPRO integrations
Other systems that connect to Tableau
Connect SYSPRO and Tableau
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started