SYSPRO and Google BigQuery integration
SYSPRO runs manufacturing finance and distribution. Google BigQuery is your cloud data warehouse. Connecting them moves your financial records automatically from SYSPRO into BigQuery for analysis, reporting, and archival without manual exports. Invoice detail, purchase orders, GL postings, and supplier information flow on a schedule you control, giving your analytics and BI teams fresh data without ETL overhead. BigQuery's partitioning and clustering keep queries fast even as years of SYSPRO history accumulates.
What moves between them
The main flow is SYSPRO into Google BigQuery. Invoices, PO headers and details, GL postings, supplier master records, and item inventory data are polled from SYSPRO via OData at intervals you set (typically 5-15 minutes for transactional data), then loaded into BigQuery as append-only tables partitioned by ingestion date. Each record carries the original SYSPRO timestamp and a unique identifier so BigQuery can detect and skip duplicates on replay. BigQuery never writes back to SYSPRO, making this a read-mostly integration ideal for analytics and audit trails.
How ml-connector handles it
ml-connector stores the SYSPRO session token and BigQuery service account credentials encrypted and uses them on every poll and load cycle. It polls SYSPRO's OData layer with REST GET requests filtered by timestamp (PostDate, InvoiceDate, etc.) to fetch only new or modified records since the last run. The session token is refreshed on 401 or timeout. Fetched records are transformed into JSON and posted to BigQuery's tabledata.insertAll endpoint, which deduplicates by insertId (derived from the SYSPRO record ID) so replay is safe. BigQuery partitions incoming rows by date for query performance. On the SYSPRO side, because OData is read-only, no write operations are attempted; for SYSPRO to source GL entries or invoice detail that may require e.net Business Objects reads, the integration uses the appropriate SYSPRO layer for each entity. BigQuery's 1-hour token expiry is tracked and refreshed before requests. Every SYSPRO row and its BigQuery insert is logged for audit and replay on failure.
A real-world example
A mid-sized discrete manufacturer runs SYSPRO for AP, AR, and manufacturing cost accounting across three plants. Their finance team needs to close the books monthly, but invoice detail and GL posting detail sit locked in SYSPRO with no easy export to their BI tools. Auditors ask for drill-down on sampled invoices and require a 3-year history. With SYSPRO connected to BigQuery, every invoice and GL posting flows automatically into BigQuery tables partitioned by month. The BI tool (Looker or Data Studio) queries BigQuery directly, audit requests run SQL on the full history without re-exporting, and month-end close includes pre-validated GL trial balances. The manual invoice export step disappears.
What you can do
- Poll SYSPRO invoices, PO headers, and PO line items via OData and load them into BigQuery datasets partitioned by ingestion date.
- Sync SYSPRO GL postings and GL master account records into BigQuery for trial balance and GL audit reporting.
- Replicate SYSPRO supplier master and customer master records so BigQuery reports have current vendor and customer names.
- Manage session-token and HTTP Basic Auth for SYSPRO alongside OAuth 2.0 Service Account for BigQuery, with automatic token refresh on expiry.
- Poll on a schedule you control with change detection via SYSPRO timestamp filters, deduplication in BigQuery by insertId, and a full audit trail on every record.
Questions
- Which direction does data flow between SYSPRO and Google BigQuery?
- The flow is SYSPRO into BigQuery only. Invoices, POs, GL entries, and master data are polled from SYSPRO and inserted into BigQuery tables. BigQuery never writes back to SYSPRO, making this a read-mostly integration ideal for analytics, archival, and audit trails without risking SYSPRO transactional data.
- How does the integration handle SYSPRO's customer-specific server URL and lack of webhooks?
- ml-connector accepts the full SYSPRO instance URL (http://{server}:{port}) per customer, since SYSPRO publishes no shared SaaS base. Because SYSPRO has no outbound webhooks, polling is the only option - the integration polls SYSPRO's OData layer on a schedule you set (typically 5-15 minutes for financial data) with timestamp filters on PostDate or InvoiceDate to fetch only new or changed records.
- What happens if a SYSPRO session token expires or a BigQuery token refresh fails?
- ml-connector tracks both session-token expiry and OAuth 2.0 access-token expiry (1 hour for BigQuery). On 401 from SYSPRO, it re-authenticates with the stored credentials; on BigQuery token expiry, it refreshes at the Google OAuth endpoint before the next insert. Every failed load is logged and can be replayed once credentials or network are restored.
Related integrations
More SYSPRO integrations
Other systems that connect to Google BigQuery
Connect SYSPRO and Google BigQuery
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started