ml-connector
PlexProcurify

Plex and Procurify integration

Plex runs manufacturing and finance. Procurify manages procurement and spend. Connecting the two keeps your supplier data and purchase orders in sync across both systems. New suppliers and purchase orders in Plex flow into Procurify automatically, and invoice records move between the two on a schedule you control. ml-connector handles the differences in API shape and authentication, polls both systems reliably, and maintains a complete audit trail.

How Plex works

Plex exposes suppliers, purchase orders, purchase order releases, invoices, customers, parts, inventory, GL accounts, and payments through REST JSON APIs at https://cloud.plex.com/api, secured with OAuth 2.0 client credentials. Plex also offers legacy SOAP Web Services with basic authentication for customers on older versions. Both endpoints require role-based access in Plex, and the API enforces a company code (PCN) to route requests to the correct data partition. Plex publishes no native webhooks, so integration is by polling with a configurable interval, filtering by modified_date or created_date. Rate limits are not publicly documented, so integrations must implement exponential backoff on HTTP 429 responses.

How Procurify works

Procurify exposes vendors, purchase orders, order items, requisitions, bills, payments, account codes, locations, departments, and users through REST JSON APIs at https://<customer-domain>.procurify.com. Every API call is secured with OAuth 2.0 client credentials, and requires both an Authorization bearer token and an X-Procurify-Client header. Procurify offers no webhooks or push notifications, so integration must rely on polling with date-range filters. The API is marked as evolving and subject to change, and some endpoints and fields are intentionally undocumented. Access requires contacting Procurify support, and the API enforces strict rate limits without publishing the exact threshold, so integrations risk suspension if they trigger timeouts.

What moves between them

Purchase orders and supplier invoices flow from Plex into Procurify. Suppliers in Plex are mapped to vendors in Procurify so purchase orders land on the correct vendor. Reference data such as GL accounts, departments, and locations are aligned in both directions so invoices post to the correct cost center. Bills in Procurify remain read-only, so ml-connector does not write approval or payment status back to Plex. The flow runs on a schedule aligned with your procurement cycle, typically daily or every few days.

How ml-connector handles it

ml-connector stores both credential sets encrypted and uses OAuth 2.0 to authenticate to both Plex and Procurify on every poll. For Plex, it passes the company code (PCN) to route requests to the correct data partition and handles the fact that Plex API roles must be assigned in advance. For Procurify, it includes the X-Procurify-Client header on every request as required by the API. Since both systems are poll-only, ml-connector queries Plex for suppliers and purchase orders modified since the last poll, and similarly queries Procurify to detect any changes on that side. Suppliers are mapped to vendors by external ID to handle renames and avoid duplicates. Procurify order items are read-only through the API, so ml-connector creates purchase orders through the requisition approval flow instead. Both systems return HTTP 429 on rate limits, so ml-connector backs off and retries. Every record carries a full audit trail and can be replayed if a downstream mapping fails.

A real-world example

A mid-sized discrete manufacturer runs Plex ERP for financials, procurement, and production planning. The procurement team also uses Procurify for vendor management and spend control. Before the integration, the procurement team entered new purchase orders twice: once in Plex to book the GL impact, and again in Procurify to track vendor compliance and spending. Month-end reconciliation meant manually comparing the two systems and chasing discrepancies. With Plex and Procurify connected, every purchase order entered in Plex automatically flows to Procurify, mapped to the correct vendor and GL account. New suppliers added in Plex appear in Procurify without re-entry. The spend team now sees real-time alignment across both systems, and the month-end reconciliation is eliminated.

What you can do

  • Sync Plex suppliers to Procurify vendors, mapped by external ID to prevent duplicates.
  • Move Plex purchase orders into Procurify, allocated to the correct vendor and GL account.
  • Align Plex GL accounts and departments with Procurify account codes and locations so invoices post to valid dimensions.
  • Handle Plex OAuth with role-based access and company code (PCN) routing, and Procurify OAuth with the required X-Procurify-Client header.
  • Poll on a configurable schedule with exponential backoff on rate limits, a full audit trail on every record, and replay of failed syncs.

Questions

Which direction does data move between Plex and Procurify?
The main flow is from Plex into Procurify. Suppliers, purchase orders, and invoice data move from Plex into Procurify, while GL accounts, departments, and locations are aligned in both directions. Procurify bills remain read-only, so ml-connector does not write payment or approval status back to Plex.
How does the integration handle Plex's company code (PCN) and role-based access?
ml-connector stores the Plex company code (PCN) and uses it on every API call to route requests to the correct data partition. Plex enforces role-based permissions on the integration user, so that user must be assigned the correct roles in Plex before any API call will succeed. If a role is missing, Plex returns a 403 error or empty results.
Why are both systems polled instead of pushed, and how often should the integration run?
Neither Plex nor Procurify offer native webhooks, so integration relies on polling with date-range filters. ml-connector polls both systems on a schedule you configure, typically daily or every few days depending on your procurement cycle. The integration filters by modified_date to avoid re-processing unchanged records.

Related integrations

Connect Plex and Procurify

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

Get started