Sage 100 and Fishbowl integration
Sage 100 runs your accounting and general ledger. Fishbowl runs your inventory and purchasing. Connecting them closes the loop between what you receive and what you owe. Purchase orders created in Fishbowl automatically create accruals in Sage 100. Vendor invoices recorded in Sage 100 sync back to Fishbowl to match against receipts. Your inventory and accounts payable stay aligned without manual re-keying.
What moves between them
The primary flow is Fishbowl to Sage 100. New purchase orders created in Fishbowl are polled and mapped to vendors in Sage 100, then create matching PO records and expense accruals in the GL. When Sage 100 records vendor invoices against those POs, ml-connector polls Sage 100's AP invoice register and syncs the invoice details back to Fishbowl to close purchase orders and update receipts. Reference data such as vendors and part numbers are aligned so new vendors in Fishbowl can be created in Sage 100, and part numbers in Fishbowl match Sage 100 item codes.
How ml-connector handles it
ml-connector stores credentials for both systems encrypted and handles the very different auth on each side: for Sage 100, it passes username and password per SOAP or agent call with the required company code; for Fishbowl, it manages the session token and refreshes it when it expires. Because both are on-premises polling systems with no webhooks, ml-connector polls both on configurable intervals tied to your purchasing and receiving cycle, typically every 15 minutes for POs and invoices and hourly for vendor masters. Purchase orders in Fishbowl are mapped to Sage 100 vendors using standardized matching rules, and new POs create both a PO record and an expense accrual at the GL account level. When Sage 100 records AP invoices, ml-connector reads the invoice details and syncs them back to Fishbowl to record the invoice against the original PO, closing the receipt loop. Both systems require network access to the customer's local servers and credentials are never shared; all communication is direct from ml-connector to each system using their native APIs.
A real-world example
A mid-sized manufacturer runs Sage 100 for general ledger and accounts payable, and Fishbowl for purchasing and inventory. Before the integration, the procurement team created purchase orders in Fishbowl, and the accounting team manually keyed those orders into Sage 100 to create GL accruals. When vendors shipped goods, the receiving team recorded receipts in Fishbowl, but the accounting team had to manually match those receipts to the POs in Sage 100 and record AP invoices separately. With Fishbowl and Sage 100 connected, new POs in Fishbowl automatically flow to Sage 100 and create the GL accrual, and when invoices are recorded in Sage 100, they sync back to Fishbowl to close the PO and record the received goods. Month-end close is faster because procurement and accounting data are already aligned.
What you can do
- Create purchase orders in Sage 100 automatically from purchase orders created in Fishbowl, with the correct vendor and expense account.
- Sync vendor invoices from Sage 100 back to Fishbowl to match against received goods and close purchase orders.
- Align vendors between Sage 100 and Fishbowl so new vendors can be created in Sage 100 and used immediately in Fishbowl.
- Poll both systems on schedules aligned with your purchasing cycle, handling Sage 100 SOAP authentication and Fishbowl session tokens securely.
- Track all purchase orders and invoices with a full audit trail and replay any record if a sync fails.
Questions
- Which direction does data move between Sage 100 and Fishbowl?
- The main flow is Fishbowl to Sage 100. Purchase orders created in Fishbowl are synced to Sage 100 to create POs and GL accruals. Vendor invoices recorded in Sage 100 are then synced back to Fishbowl to close purchase orders and record receipts. Vendors and part numbers are aligned in both directions so both systems stay current.
- How does ml-connector handle the different authentication systems?
- Sage 100 uses username and password per call with a required company code; Fishbowl uses session tokens obtained at login and refreshed when they expire. ml-connector stores both credential sets encrypted and manages each system's auth independently, presenting the correct credentials and format on every call to each system.
- Since Sage 100 and Fishbowl are on-premises, how does the integration work?
- Both systems require the customer to provide network access to their local servers. ml-connector polls each system directly using their native APIs at configurable intervals, typically every 15 minutes for purchase orders and invoices. There are no webhooks or shared multi-tenant endpoints, so ml-connector calls each system at the customer's own server URLs using the credentials you provide.
Related integrations
More Sage 100 integrations
Other systems that connect to Fishbowl
Connect Sage 100 and Fishbowl
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started