SYSPRO and Snowflake integration
SYSPRO runs manufacturing and distribution operations across procurement, finance, and inventory. Snowflake stores and queries data at scale. Connecting the two pulls financial and operational records from SYSPRO and loads them into Snowflake as a queryable data lake, so you can report, analyze, and reconcile without leaving Snowflake. AP invoices, GL postings, purchase orders, inventory receipts, and supplier master data sync automatically on a schedule you set, keeping Snowflake up to date with your operational ledger.
What moves between them
The main flow is unidirectional, from SYSPRO into Snowflake. AP invoices, invoice postings, purchase order headers and details, GL master and balance records, inventory masters and warehouse quantities, customer headers, and supplier master data are polled from SYSPRO on your configured schedule and loaded into corresponding Snowflake tables. Each load captures the full record at the moment of the pull, allowing you to build slowly changing dimension tables, replayable audit logs, and daily reconciliation reports in Snowflake. Writes do not flow back to SYSPRO; Snowflake is a read-mostly destination for data lake and reporting purposes.
How ml-connector handles it
ml-connector accepts the SYSPRO server URL and credentials (session token or HTTP Basic Auth for OData) and Snowflake's account identifier plus Key Pair Authentication materials. It polls SYSPRO's OData tables on a repeating schedule, filtering by timestamp fields to find records created or modified since the last sync, then batches those records into Snowflake table inserts via the SQL API. Because SYSPRO session tokens expire on logoff or timeout, ml-connector renews the token before each poll cycle. Snowflake's asynchronous SQL API returns a statement handle; ml-connector polls that handle until the load completes, then records the high-water timestamp for the next sync. If SYSPRO is unavailable or Snowflake rate-limits a request, ml-connector retries with exponential backoff, preserving the audit trail so failed records can be replayed. Every load is tracked in audit tables so you can answer which records came from which poll, what time SYSPRO saw them, and when Snowflake loaded them.
A real-world example
A mid-sized electronics distributor runs SYSPRO for procurement, AP, and inventory across three distribution centers. The finance team uses Snowflake for analytics and month-end reconciliation. Before the integration, invoices entered in SYSPRO had to be manually exported and loaded into Snowflake weekly, and inventory receipts were reported by hand to Snowflake for cash flow analysis. With SYSPRO and Snowflake connected, invoices flow automatically into Snowflake within minutes of posting, inventory receipts update Snowflake in near real-time, and the finance team can build live reconciliation dashboards showing AP aging, spend by supplier, and warehouse stock levels. Month-end close is faster because the manual export-and-load step is gone.
What you can do
- Pull invoices, GL postings, purchase orders, and inventory transactions from SYSPRO on a schedule you control, and load them into Snowflake tables.
- Authenticate SYSPRO with session tokens or HTTP Basic Auth, and Snowflake with RSA Key Pair Authentication.
- Track the high-water timestamp from the last sync so each poll loads only new or modified records.
- Retry failed pulls with exponential backoff and maintain a full audit trail so you can replay records if a load fails.
- Query all SYSPRO data natively in Snowflake without re-keying, joining with your own tables for reporting and analysis.
Questions
- What direction does data move between SYSPRO and Snowflake?
- Data flows one direction, from SYSPRO into Snowflake. AP invoices, GL postings, purchase orders, inventory, and supplier master records are polled from SYSPRO and loaded into Snowflake tables. Writes do not flow back to SYSPRO; Snowflake is a data lake destination for reporting and analytics.
- How does ml-connector handle SYSPRO session tokens and Snowflake Key Pair authentication?
- ml-connector logs into SYSPRO using the supplied credentials and obtains a session token (or uses HTTP Basic Auth for OData), then includes that token on every poll request. For Snowflake, ml-connector uses the supplied RSA private key to generate a JWT, presents it as a bearer token, and renews it before expiry. If either authentication fails, ml-connector retries with exponential backoff.
- How often are records synced, and what happens if a sync fails?
- ml-connector polls SYSPRO on a schedule you set (typically every 5 to 15 minutes for financial data), pulling records modified since the last sync using timestamp filters. If a poll or load fails, ml-connector backs off and retries, and the audit trail preserves which records succeeded and which failed so you can investigate or replay the failed batch.
Related integrations
More SYSPRO integrations
Other systems that connect to Snowflake
Connect SYSPRO and Snowflake
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started