SYSPRO and Cleo integration
SYSPRO runs manufacturing, procurement, and finance. Cleo Integration Cloud handles B2B and EDI workflows between trading partners and systems. Connecting the two lets your SYSPRO purchase orders and supplier invoices flow into Cleo as EDI 850 and 810 transactions, ready to transmit to your suppliers and partners. ml-connector handles the different APIs on each side, bridges the authentication, and ensures every document reaches Cleo and lands in the right folder.
What moves between them
The main flow is SYSPRO into Cleo. Purchase orders and supplier invoices read from SYSPRO via OData are mapped to EDI 850 and 810 documents respectively and posted into Cleo folders. General ledger postings also flow from SYSPRO into Cleo for audit and reporting. The direction is unidirectional because Cleo is integration middleware, not a back-office ERP; confirmation and acknowledgment transactions from Cleo can feed back into SYSPRO if a return flow is configured.
How ml-connector handles it
ml-connector caches SYSPRO session tokens after login and refreshes them on timeout or logoff. It polls SYSPRO OData tables filtered on timestamp fields (PostDate, InvoiceDate, ChangeDate) at your configured interval to detect new and changed records. Each record is mapped to EDI form (PO to 850, invoice to 810) and posted to a Cleo folder via REST with the Cleo OAuth Bearer token. Cleo file operations are idempotent, so retries do not create duplicates. ml-connector tracks which SYSPRO records have been sent to Cleo in its own database to avoid re-transmission, and it records the timestamp of each poll so the next run picks up only what is new. Failures in Cleo's HTTP response are retried with exponential backoff, and every transmission is logged for audit.
A real-world example
A mid-sized discrete manufacturer uses SYSPRO Adaptive ERP for production and procurement, and needs to send purchase orders to a Cleo-managed EDI network that connects to over 100 suppliers across North America and Asia. Before the integration, the procurement team exported purchase orders from SYSPRO, manually converted them to EDI 850 format, and uploaded them to Cleo through the UI. With SYSPRO and Cleo connected, each PO issued in SYSPRO flows into Cleo automatically as an 850 document, ready to transmit to the supplier network. Supplier confirmations arrive in Cleo as 855 documents and are available for the procurement team to review. The manual export and upload step is eliminated.
What you can do
- Read purchase orders and supplier invoices from SYSPRO via OData polling and convert them to Cleo EDI 850 and 810 transactions.
- Map SYSPRO general ledger postings into Cleo audit folders for cross-system tracking and reconciliation.
- Handle SYSPRO session token refresh and Cleo OAuth Bearer token rotation automatically on each request.
- Poll SYSPRO on a configurable schedule and filter for new records by timestamp to avoid duplicate transmissions.
- Track transmission status and replay failed Cleo file uploads without re-querying SYSPRO.
Questions
- Which direction does data move between SYSPRO and Cleo?
- The main flow is SYSPRO into Cleo. Purchase orders, invoices, and GL records are read from SYSPRO and converted to EDI form or files in Cleo. Cleo is integration middleware, not a back-office system, so Cleo does not write financial data back into SYSPRO. If supplier confirmations from Cleo need to feed back into SYSPRO, that is a separate reverse flow configured as needed.
- How does ml-connector handle SYSPRO session tokens and Cleo OAuth?
- ml-connector logs into SYSPRO at startup using the Operator credentials and session token, caching the token until it expires or is invalidated. On each Cleo call, it refreshes the Cleo Bearer token by exchanging the username and password for a new short-lived token. Both tokens are stored encrypted in the integration database.
- Why does ml-connector poll SYSPRO instead of waiting for a webhook?
- SYSPRO has no outbound webhook system for cloud integrations, so ml-connector polls OData tables on a regular interval filtered by timestamp fields to detect new and changed records. The poll interval is configurable and can be as frequent as 5 minutes for financial data, depending on your needs and SYSPRO load.
Related integrations
More SYSPRO integrations
Other systems that connect to Cleo
Connect SYSPRO and Cleo
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started