ml-connector
PlexCin7

Plex and Cin7 integration

Plex runs manufacturing and inventory in discrete operations. Cin7 Core runs order fulfillment and accounting. Connecting the two keeps your procurement and sales in sync without manual re-entry. Purchase orders and supplier invoices from Plex flow into Cin7's purchase ledger, and sales orders from Cin7 update Plex customer records. The integration handles the very different authentication schemes on each side and moves the data on a schedule you control.

How Plex works

Plex exposes suppliers, purchase orders, purchase releases, invoices, customers, sales orders, inventory, parts, containers, GL accounts, and payments through REST JSON at https://cloud.plex.com/api or legacy SOAP XML DataSources at https://api.plex.com/api/datasources. Authentication uses OAuth 2.0 client credentials with a Bearer token, or for SOAP endpoints, Basic auth with a username, password, and company code (PCN). Plex has no native webhook system, so records are read by polling with a configurable interval and filtering by modified_date or created_date. Developer access to the full OpenAPI spec is gated behind an authenticated Plex account, and role-based permissions must be assigned to the integration user.

How Cin7 works

Cin7 Core exposes suppliers, purchases, sales, sale payments, customers, products, product availability, and the chart of accounts through REST JSON at https://inventory.dearsystems.com/externalapi/v2/. Authentication uses custom API key headers (api-auth-accountid and api-auth-applicationkey) rather than OAuth or Basic auth. Cin7 Core can push outbound events via webhooks configured in the UI Automation module for sales, purchases, suppliers, customers, and stock changes, but webhooks are not HMAC-signed and the chart of accounts is read-only via API. Purchases cover the full procure-to-pay cycle via an Approach field that distinguishes order, invoice, and receipt stages.

What moves between them

The main flow runs from Plex to Cin7. Purchase orders and supplier invoices from Plex map into Cin7 purchases at the ORDER and INVOICE stages, aligned by supplier and part number. Supplier records sync from Plex into Cin7 supplier master data. Sales orders created in Cin7 flow back to Plex customer records and sales orders so Plex production can track demand by customer. The chart of accounts is aligned in both directions so invoice GL mappings reference valid Cin7 accounts. Both systems require polling since Plex has no webhooks and Cin7 webhooks are optional; ml-connector polls both on a schedule tied to your procurement and sales cycle.

How ml-connector handles it

ml-connector stores both credential sets encrypted. On the Plex side it presents OAuth2 client credentials, refreshing the Bearer token when a call returns 401, and implements exponential backoff on HTTP 429 since Plex rate limits are not publicly documented. On the Cin7 side it presents the custom API key headers on every request. ml-connector detects duplicate purchase orders and invoices by matching external reference fields since Plex REST API does not document Idempotency-Key support, and uses Cin7's Approach field to stage purchases correctly through procure-to-pay. Since Plex SOAP DataSources are customer-specific and available procedures vary per Plex configuration, ml-connector polls REST endpoints where possible and falls back to DataSources only if REST lacks the needed entity. Suppliers are matched by name or code, and parts are matched by Plex part number against Cin7 product SKU. Every record carries a full audit trail and can be replayed if a downstream call fails.

A real-world example

A mid-sized discrete manufacturer uses Plex for production planning and procurement, and Cin7 Core for distributed inventory and fulfillment across multiple warehouses. Before the integration, the procurement team exported purchase orders from Plex weekly, re-entered line items into Cin7, and then manually matched supplier invoices to purchase orders to avoid duplicate payments. Sales orders were entered separately in Cin7, and Plex had no visibility of customer demand, forcing production to guess at job sequencing. With Plex and Cin7 connected, each purchase order flows into Cin7 on creation, invoices post automatically, and sales orders from Cin7 populate Plex demand signals. The procurement team no longer re-keys purchase data, and production can plan to actual customer orders.

What you can do

  • Sync Plex purchase orders, releases, and supplier invoices into Cin7 purchases at the correct procure-to-pay stage.
  • Map Plex suppliers and parts to Cin7 suppliers and products by code, keeping both systems aligned.
  • Flow Cin7 sales orders back to Plex customer records and sales order master data.
  • Authenticate Plex with OAuth2 client credentials and Cin7 with custom API key headers, with exponential backoff on rate limits.
  • Poll both Plex and Cin7 on a schedule tied to your procurement cycle, with full deduplication and audit trail on every record.

Questions

Which direction does data move between Plex and Cin7 Core?
The main flow is Plex into Cin7. Purchase orders, releases, and invoices move from Plex into Cin7 purchases, while suppliers and parts are aligned between both systems. Sales orders created in Cin7 flow back to Plex customer records and sales orders so Plex can see customer demand for production planning.
How does the integration handle Plex's OAuth2 and Cin7's custom API key headers?
ml-connector stores both credential sets encrypted and presents each on every request. Plex credentials are refreshed when a call returns 401, and Cin7 API keys are presented as custom headers. Both systems are polled on a schedule since neither offers full webhook coverage that ml-connector can reliably use.
How does the integration match suppliers, parts, and purchase orders across the two systems?
Suppliers are matched by name or code from Plex to Cin7 suppliers. Parts are matched by Plex part number to Cin7 product SKU. Purchase orders and invoices are deduplicated by external reference field since Plex REST does not document Idempotency-Key support. Cin7's Approach field (ORDER, INVOICE, RECEIVE) ensures each purchase is staged correctly through procure-to-pay.

Related integrations

Connect Plex and Cin7

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

Get started