ml-connector
SYSPROMonday.com

SYSPRO and Monday.com integration

SYSPRO runs procurement, sales, and finance in manufacturing and distribution businesses. Monday.com organizes team workflows and business processes on custom boards. Connecting SYSPRO to Monday.com brings invoice data, purchase order status, and customer activity directly into the boards where your operations and finance teams work. New invoices and purchase orders appear in Monday.com automatically, updated by schedule or webhook, so no re-keying and no manual board updates.

How SYSPRO works

SYSPRO Adaptive ERP exposes suppliers, purchase orders, supplier invoices, customer invoices, general ledger accounts, inventory items, and goods receipts through two main interfaces: e.net Business Objects (REST or SOAP, read and write), authenticated with a session token obtained by logging in to the Logon utility; and OData (REST GET only), authenticated with HTTP Basic Auth using an operator code and auto-generated OData password. SYSPRO Cloud and on-premise instances publish no shared base URL, so the full server address and port must be configured per customer. The system does not emit webhooks, so integration partners must poll OData tables using timestamp filters on fields like PostDate and InvoiceDate, typically every 5 to 15 minutes for financial data.

How Monday.com works

Monday.com exposes a GraphQL endpoint at api.monday.com/v2 that accepts queries and mutations to create, read, and update boards, items (rows), and columns (fields). Every board is a container; items are rows; columns are typed fields that hold status, text, numbers, dates, and custom values. Monday.com supports two authentication methods: a Personal API Token sent as a raw string in the Authorization header, and OAuth 2.0 with a Bearer access token. The platform emits webhook events for board-level changes including item creation, column value updates, and item deletion. Monday.com rate-limits by plan (1,000 to 5,000 requests per minute), enforces a query complexity budget of 5 million points, caps mutations at 40 per minute per board, and requires the column value argument in mutations to be a JSON-encoded string.

What moves between them

The flow is unidirectional from SYSPRO into Monday.com. ml-connector polls SYSPRO's OData tables on a configurable schedule (typically every 5 to 15 minutes), reads newly posted or modified invoices, purchase orders, and supplier records, and transforms each into a Monday.com item on a designated board, mapping SYSPRO data fields to Monday.com columns. Supplier names and account balances populate text and number columns; invoice amounts and due dates populate amount and date columns; item status reflects posting state in SYSPRO. Updates in SYSPRO (such as a payment posting to an invoice) trigger a re-sync that updates the corresponding Monday.com item. Reference data such as suppliers and customers can be synced bidirectionally if a separate board is configured as a lookup source.

How ml-connector handles it

ml-connector connects to SYSPRO by accepting the full server URL and operator credentials, logs in via the e.net Logon utility to obtain a session token, and uses that token on all subsequent calls to OData or Business Objects endpoints. It refreshes the token if a call indicates timeout, and it caches the operator's e.net security permissions to avoid repeated permission checks. On the Monday.com side, it stores either a Personal API Token or an OAuth 2.0 bearer token encrypted, and uses the GraphQL endpoint to query existing boards, check for duplicate items (by matching SYSPRO transaction ID to a custom column), and create or update items with the transaction data. Because Monday.com column values in mutations must be JSON-encoded strings (not objects), ml-connector pre-encodes all column values, and it respects the 40-mutation-per-minute board limit by batching updates and queueing excess calls for later retry. SYSPRO OData filters use timestamp fields to retrieve only records modified since the last poll, reducing API load and permitting a tight sync cadence. Every record carries full audit: the transaction ID from SYSPRO, the timestamp of the poll that fetched it, the board and item IDs where it landed in Monday.com, and the UTC time of the sync. If a Monday.com mutation fails due to rate limit or board complexity, ml-connector backs off, retries with exponential jitter, and logs the full error chain.

A real-world example

A mid-sized distributor runs SYSPRO for procurement, order fulfillment, and accounting across three regional warehouses. The operations manager and the AP team use Monday.com boards to track incoming shipments, invoice status, and payment approvals. Before the integration, the team received SYSPRO invoices via email exports each morning, manually entered them into Monday.com, and spent hours reconciling invoice counts and amounts across the two systems. With SYSPRO and Monday.com connected, every new supplier invoice syncs automatically into a dedicated board within 15 minutes of posting to SYSPRO. The AP team sees invoice due dates, amounts, and supplier names in Monday.com columns, can update payment status on the Monday.com board, and the Monday.com item history serves as the audit trail. The operations team tracks purchase order status and goods receipts in a separate board, eliminating the manual email loop and giving the finance team a single source of truth.

What you can do

  • Sync SYSPRO supplier invoices, purchase orders, and customer transactions to Monday.com boards on a configurable schedule (5 to 15 minute intervals).
  • Map SYSPRO data fields to Monday.com columns, representing invoice amounts, due dates, posting status, and supplier metadata.
  • Authenticate SYSPRO with session tokens (e.net) or HTTP Basic Auth (OData), refreshing tokens on timeout to prevent sync interruption.
  • Respect Monday.com rate limits and mutation caps, backing off and retrying failed updates with exponential jitter and full error audit.
  • Maintain complete transaction history and sync state, tracking SYSPRO transaction IDs, poll timestamps, Monday.com item locations, and error details for every record.

Questions

Why does the integration poll SYSPRO instead of using webhooks?
SYSPRO Cloud and on-premise versions do not emit outbound webhooks to external systems. ml-connector instead polls the OData tables on a schedule you define (typically 5 to 15 minutes), using timestamp filters on PostDate and InvoiceDate to fetch only newly posted or modified records. This approach is reliable, avoids missed transactions, and aligns with SYSPRO's supported integration patterns.
How does ml-connector handle SYSPRO's per-customer server URLs and session tokens?
SYSPRO publishes no shared SaaS base URL. ml-connector accepts the full server address, port, and operator credentials per customer, logs in via the e.net Logon utility to obtain a session token, and includes that token on all subsequent API calls. If the token expires due to timeout, ml-connector detects the expiry response, re-authenticates, and retries the call, ensuring sync continuity without manual intervention.
What happens if Monday.com rate limits or mutation caps are hit during a sync?
Monday.com enforces rate limits (1,000 to 5,000 requests per minute depending on plan) and caps mutations at 40 per board per minute. When ml-connector encounters a rate limit response or reaches the mutation cap, it backs off with exponential jitter, queues the remaining updates, and retries them in subsequent polling cycles. All failures and retries are logged in the audit trail so you can see exactly when and why a sync was delayed.

Related integrations

Connect SYSPRO and Monday.com

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

Get started