SYSPRO and Fishbowl integration
SYSPRO runs manufacturing operations and order fulfillment. Fishbowl runs inventory and purchase order management. Connecting the two keeps your parts master, supplier data, and inventory levels aligned across both systems. New suppliers and price updates in SYSPRO flow into Fishbowl automatically, and inventory transactions in Fishbowl trigger reconciliation back into SYSPRO without manual re-entry. ml-connector bridges the very different authentication and polling models on each side and handles the on-premise server URLs both systems require.
What moves between them
The main flow runs from SYSPRO into Fishbowl. ml-connector reads ApSupplier, InvMaster, and InvPrice records from SYSPRO OData on a polling schedule, then pushes them into Fishbowl as Vendor and Part records. Inventory levels are read from SYSPRO's InvWarehouse table and compared against Fishbowl's Inventory endpoint, and any discrepancies are logged for review. Reference data flows both directions so supplier validation in Fishbowl matches SYSPRO's supplier master. Read operations use OData polling; any writes use the e.net Business Objects API to preserve SYSPRO audit trails. Fishbowl's purchase order and inventory transactions are logged but not written back to SYSPRO, since SYSPRO is the source of truth for supplier and part definitions.
How ml-connector handles it
ml-connector stores both credential sets encrypted and manages session tokens for each system independently: for SYSPRO it handles the session GUID returned by Utilities/Logon or maintains HTTP Basic credentials; for Fishbowl it caches the Bearer token and refreshes it on 401 by re-authenticating. On the SYSPRO side it accepts the customer's full server URL (since SYSPRO publishes no shared base address) and validates OData paths against that instance. ml-connector polls ApSupplier, InvMaster, InvPrice, and InvWarehouse from SYSPRO using $filter on timestamp fields like InvoiceDate and PostDate, then maps those records into Fishbowl Part and Vendor payloads. Because SYSPRO OData write access is not available, any updates to SYSPRO data trigger a read-reconcile-log pattern rather than a write-back. Fishbowl session tokens are short-lived, so ml-connector tracks token expiry and re-authenticates before the timeout. Both systems lack outbound webhooks, so polling frequency is determined by your operational cadence rather than real-time events. Every record carries source and destination identifiers so failed records can be replayed, and polling cursors are persisted so no data is skipped on connector restart.
A real-world example
A mid-sized discrete manufacturer uses SYSPRO 8 cloud for ERP (production scheduling, purchase orders, supplier management) and Fishbowl Advanced on-premise for detailed inventory tracking, bin locations, and manufacturing order planning. Before the integration, the procurement team manually entered new suppliers from SYSPRO into Fishbowl every month, and part prices updated in SYSPRO required a separate data entry step in Fishbowl. Inventory counts never matched: SYSPRO showed ledger balances while Fishbowl tracked physical warehouse locations, and the variance report consumed two days each quarter. With SYSPRO and Fishbowl connected, supplier master changes flow automatically, part prices and descriptions synchronize on a daily poll, and inventory discrepancies are flagged for investigation rather than manually re-entered. The quarterly inventory reconciliation now starts with known-clean data and focuses only on unexplained variances.
What you can do
- Read SYSPRO suppliers, items, and pricing from OData and write them into Fishbowl's Vendor and Part records on a polling schedule.
- Sync inventory levels from SYSPRO's warehouse tables into Fishbowl and flag discrepancies for review.
- Manage session tokens for both SYSPRO (via Utilities/Logon and HTTP Basic Auth) and Fishbowl (via /api/login), with automatic refresh on expiry.
- Accept customer-supplied on-premise server URLs for both SYSPRO and Fishbowl, since neither system exposes a shared SaaS endpoint.
- Poll both systems on a 5-15 minute cycle with timestamp filtering and full audit trails for every supplier, part, and inventory record.
Questions
- Which direction does data move between SYSPRO and Fishbowl?
- The main flow is SYSPRO into Fishbowl. Supplier master, part definitions, and pricing move from SYSPRO into Fishbowl, and inventory levels are read from both for reconciliation. Fishbowl purchase orders and inventory transactions are logged but not written back to SYSPRO, since SYSPRO owns the supplier and part master.
- Does SYSPRO OData read-only constraint affect writes?
- Yes. SYSPRO OData is read-only, so ml-connector reads supplier and inventory data via OData but uses the e.net Business Objects API (REST or SOAP) for any writes to preserve audit trails. For pure polling integrations where SYSPRO is the source, OData polling is sufficient and avoids the complexity of two authentication paths.
- How does the integration handle on-premise URLs and missing webhooks?
- ml-connector accepts the full SYSPRO and Fishbowl server URLs per customer since both systems are on-premise or cloud-with-custom-instance. Because neither system pushes outbound events, ml-connector polls on a schedule tied to your operational cadence (5-15 minute intervals are typical for financial data) and uses timestamp filtering to detect new and changed records since the last poll.
Related integrations
More SYSPRO integrations
Other systems that connect to Fishbowl
Connect SYSPRO and Fishbowl
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started