ml-connector
Epicor KineticFishbowl

Epicor Kinetic and Fishbowl integration

Epicor Kinetic runs your manufacturing finance and operations. Fishbowl runs your on-premise inventory and purchasing workflows. Connecting the two keeps your vendor master and purchase orders in sync across both systems without manual re-entry. New vendors and purchase order changes in Epicor flow into Fishbowl, and inventory transactions recorded in Fishbowl can feed back into Epicor for complete supply chain visibility. ml-connector bridges the gap between Epicor cloud-based ERP scope and Fishbowl on-premise focus, so you do not have to maintain dual records.

How Epicor Kinetic works

Epicor Kinetic exposes vendors, purchase orders, invoices, payments, GL accounts, and parts through REST OData v4 endpoints at a tenant-specific cloud URL or on-premises server. Authentication uses Basic Auth, API Key headers, or OAuth2 client credentials for cloud, and Token Resource Service for on-premises deployments. The API requires the company segment in every URL path. Epicor has no native outbound webhooks, so connectors poll on a schedule using OData date filters like UpdatedOn gt {timestamp} and pagination. Bearer tokens expire in approximately one hour and must be refreshed. Write operations for complex objects follow a two-step pattern: first a GetNewXxx call, then an UpdateMaster call.

How Fishbowl works

Fishbowl Advanced is deployed on customer infrastructure and accessed via HTTP or HTTPS at a customer-supplied server URL and port, typically port 2456. Authentication is session token-based: POST /api/login returns a UUID token that subsequent requests use in the Authorization header. Fishbowl has no outbound webhooks; all integrations poll endpoints like GET /api/purchase-orders with date filters. Fishbowl exposes vendors, purchase orders, sales orders, parts, and inventory. GL accounts are not exposed in Fishbowl REST API and are handled by downstream QuickBooks or Xero integration. Customers are read-only via SQL query, not direct REST endpoints.

What moves between them

The main flow runs from Epicor Kinetic into Fishbowl. Purchase orders, vendors, and part master records are pulled from Epicor on a daily or weekly polling schedule via OData query with date filters and pushed into Fishbowl vendor, purchase-order, and part endpoints. Purchase order lines and shipment status can also flow from Fishbowl back to Epicor via the UpdateMaster endpoint, though the primary direction is Epicor to Fishbowl. Inventory transactions in Fishbowl can be queried and sent back to Epicor as receipt or usage records for full supply chain visibility. The sync cadence is configurable and typically aligned with your procurement and receiving cycles.

How ml-connector handles it

ml-connector stores Epicor credentials (tenant URL, username, API key or OAuth2 secret) encrypted and refreshes the OAuth2 bearer token on a one-hour cycle before it expires. For on-premises Epicor, it constructs the company-specific OData URL and includes the required API key header on every request. On the Fishbowl side, it posts to the /api/login endpoint once per session and caches the returned UUID token until the session expires, then re-authenticates. Because both systems are poll-only, ml-connector queries Epicor with an UpdatedOn filter to retrieve only changed records since the last run, and queries Fishbowl by date range or bulk load to identify incoming changes. Purchase order and vendor records are mapped between Epicor OData format and Fishbowl JSON schema; fields like part numbers, quantities, and unit prices are matched carefully to ensure accurate landed costs. ml-connector tracks the last successful sync timestamp per entity type and retries failed records with exponential backoff. Every record carries a full audit trail and can be replayed if downstream validation fails.

A real-world example

A mid-sized manufacturer distributes product across three warehouses and runs Epicor Kinetic for finance, purchasing, and cost accounting, with Fishbowl on-premise for inventory and warehouse workflows. Before the integration, the procurement team maintained a dual vendor list and re-entered each new purchase order into Fishbowl manually after approving in Epicor. With Epicor and Fishbowl connected, new vendors and approved purchase orders flow into Fishbowl automatically, warehouse staff receive orders in real time without delay, and incoming receipts in Fishbowl immediately update inventory and trigger receipt journals in Epicor. The manual re-keying step is eliminated, and inventory counts in both systems stay in sync.

What you can do

  • Pull vendors, purchase orders, and parts from Epicor Kinetic and push them into Fishbowl Advanced on a schedule you control.
  • Keep Fishbowl vendor master and purchase order book current with changes in Epicor source records.
  • Sync purchase order line details including quantities, unit prices, and delivery dates across both systems.
  • Authenticate Epicor with OAuth2 or Basic Auth, handle token refresh, and manage Epicor required company segment routing.
  • Encrypt credentials for both systems, maintain a full audit trail on every sync, and replay failed records with retries.

Questions

Which direction does data flow between Epicor Kinetic and Fishbowl?
The primary flow is Epicor Kinetic to Fishbowl. Vendors, purchase orders, and parts are pulled from Epicor and pushed into Fishbowl. Fishbowl can also push received quantities and shipment status back to Epicor via the UpdateMaster endpoint to keep both systems synchronized on inbound goods. GL accounts are not exposed in Fishbowl REST API.
How does the integration handle Epicor token expiry and company segment requirement?
ml-connector stores the Epicor tenant URL and company segment encrypted and includes the company in every OData request path. It refreshes the OAuth2 bearer token proactively on a one-hour cycle before expiry to prevent mid-sync failures. For on-premises Epicor, it supports Token Resource Service to exchange credentials for short-lived bearer tokens.
Does the integration work with on-premise Epicor and Fishbowl?
Yes. Epicor Kinetic supports both cloud SaaS and on-premises deployments; ml-connector constructs the correct URL for either. Fishbowl Advanced is on-premise only and requires the customer to provide the server URL and port, which ml-connector stores encrypted. Both systems are poll-only, so ml-connector queries OData date filters to detect changes on a schedule independent of webhooks.

Related integrations

Connect Epicor Kinetic and Fishbowl

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started