Sage 300 and Databricks integration
Sage 300 runs your core finance and operations on Windows. Databricks holds your cloud data lake for analytics and reporting. Connecting the two moves your finance transactions into Databricks so your data team can analyze spend, revenue, and cash flow alongside operational metrics without re-keying or manual exports. ml-connector handles the polling cadence, credential encryption, and a full audit trail on every record written.
What moves between them
Vendors, invoices, purchase orders, and general ledger transactions flow from Sage 300 into Databricks on a configurable schedule. ml-connector polls Sage 300's REST endpoints using date filters to fetch new and updated records since the last sync, then writes them into Databricks tables mapped to your data model. Sage 300 is pull-only, so records flow one direction: read from Sage 300, write to Databricks.
How ml-connector handles it
ml-connector stores the Sage 300 HTTP Basic Auth credentials encrypted and passes them with every API request to the customer-hosted IIS endpoint. On the Databricks side, it exchanges the service principal client credentials for an OAuth 2.0 bearer token and refreshes it before expiry every 3600 seconds. Polling uses Sage 300 OData filters to fetch records modified since the last run, with pagination to handle large result sets. Each transaction is mapped into the Databricks table schema you define, and a metadata row tracks the source record ID, sync timestamp, and audit checksum. If a write to Databricks fails, ml-connector retries with exponential backoff and surfaces the error so you can replay the batch.
A real-world example
A mid-sized manufacturing business uses Sage 300 for procurement, invoicing, and general ledger. The finance team exports vendors and invoices weekly to build reports on spend by vendor and GL account, while the data team builds forecasts on cash flow. Before the integration, exports were manual and lag-prone; invoices often arrived in the report a week after posting. With Sage 300 and Databricks connected, invoices and vendors sync automatically every night, so the finance team's reports are fresh and the data team's cash flow forecasts are current by morning.
What you can do
- Sync vendors, invoices, purchase orders, and GL transactions from Sage 300 to Databricks on a configurable schedule.
- Authenticate Sage 300 with HTTP Basic Auth and Databricks with OAuth 2.0 service principal credentials.
- Poll Sage 300 with OData date filters and pagination to fetch only new and updated records.
- Map Sage 300 transactions into Databricks tables with metadata tracking, checksums, and audit timestamps.
- Retry failed writes with exponential backoff and surface errors for replay and investigation.
Questions
- Which direction does data move between Sage 300 and Databricks?
- Data flows one direction: from Sage 300 into Databricks. ml-connector polls Sage 300 on a schedule, fetches vendors, invoices, purchase orders, and GL transactions, and writes them into Databricks tables. Sage 300 has no webhooks, so polling is the only option.
- Does Sage 300 require special setup for the API to work?
- Yes. Sage 300 runs on a customer-hosted IIS server, so you must expose that server over HTTPS and create an API user in Sage 300 Administrative Services with Web API security group assigned. The user's username and password must be uppercase. ml-connector sends these credentials in the Authorization header with every request.
- How does ml-connector handle the token expiry in Databricks OAuth?
- Databricks OAuth tokens expire in 3600 seconds. ml-connector tracks token expiry and refreshes it automatically before expiry on every poll cycle, so a token renewal never causes an outage. The refresh uses the service principal client ID and secret you provide.
Related integrations
More Sage 300 integrations
Other systems that connect to Databricks
Connect Sage 300 and Databricks
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started