SAP Business One and Tableau integration
SAP Business One holds your company's financial transactions, inventory levels, and sales orders. Tableau presents that data as interactive dashboards. Connecting the two keeps your business intelligence dashboards current without manual extract exports or nightly batch jobs. Your finance team gets up-to-date dashboards for month-end close, inventory review, and sales performance without asking IT to run an export every morning.
What moves between them
SAP Business One transactional records (invoices, purchase orders, inventory, journal entries) are read on a schedule tied to your financial cycle. ml-connector transforms each record into columns matching your Tableau data source schema, publishes the extract, and triggers a refresh in Tableau. Inventory levels and sales data flow continuously so your Tableau dashboards reflect current source data. The flow is one-direction: SAP Business One to Tableau. No write-back occurs.
How ml-connector handles it
ml-connector maintains a single reusable SAP Business One session per customer instance, reusing the B1SESSION cookie across requests to avoid the 5-second cold-start penalty of logging in on each call, and monitoring session expiry to refresh before a request fails. On the Tableau side, it exchanges a personal access token for a session token, stores both encrypted, and re-authenticates only when the session expires. It reads SAP Business One records using OData $filter with UpdateDate to fetch only changed records since the last run, batches them by paging with $top and $skip, and maps each record to its matching Tableau column. Tableau's site-scoped API requires the site ID in every path, so ml-connector stores and validates the site ID per customer. Extracts are published as CSV or Parquet files and refresh triggered through Tableau's dedicated endpoints. Duplicate transactions in SAP Business One are detected using DocNum before insert, and failed extract publishes are retried with exponential backoff.
A real-world example
A mid-market distributor runs SAP Business One on-premise for order fulfillment, inventory, and finance. Their sales and finance teams use Tableau dashboards to track daily sales by region, inventory aging, and profit margin by customer. Previously, the BI team ran manual extracts from SAP Business One three times daily and uploaded them to Tableau, a 45-minute task that created delays and errors when someone forgot to run it. With SAP Business One and Tableau connected, extracts publish automatically every two hours, dashboards update without human intervention, and the sales director gets current numbers on demand.
What you can do
- Extract financial and operational records from SAP Business One and publish them as refreshed Tableau data sources on a schedule you control.
- Read updated records since the last sync using OData filters to avoid re-processing the entire dataset.
- Map SAP Business One dimensions and measures to Tableau data source columns without manual re-keying or intermediate scripts.
- Handle SAP Business One session reuse and Tableau personal access token lifecycle so authentication does not become an outage.
- Detect duplicate transactions in SAP Business One and retry failed Tableau refreshes with a full audit trail.
Questions
- Which direction does data move between SAP Business One and Tableau?
- SAP Business One to Tableau only. Financial transactions, inventory records, and sales orders are read from SAP Business One and published as Tableau data source extracts. Tableau is the read-and-display layer; no data flows back into SAP Business One.
- How does ml-connector handle SAP Business One's customer-specific Service Layer URL and session timeout?
- ml-connector stores the full Service Layer URL per customer, accepts it at setup time, and maintains a single reusable session across all requests by caching and monitoring the B1SESSION cookie. When the session expires after 30 minutes of inactivity, ml-connector logs in again before the next request, avoiding the 5-second cold-start penalty on every call.
- Does the integration require SAP Business One webhooks to be enabled?
- No. ml-connector polls SAP Business One using OData $filter with UpdateDate to fetch only records changed since the last run, making webhooks optional. If your SAP Business One instance does support webhooks, ml-connector can listen for them instead, but polling is the default and does not require SAP admin configuration.
Related integrations
More SAP Business One integrations
Other systems that connect to Tableau
Connect SAP Business One and Tableau
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started