ml-connector
PlexServiceNow

Plex and ServiceNow integration

Plex runs manufacturing operations and finance. ServiceNow handles procurement and accounts payable. Connecting the two keeps your purchase orders and invoice records in sync without manual re-entry. Purchase orders created in Plex flow into ServiceNow's procurement staging tables, and invoices received against those orders are posted to match. Suppliers are aligned in both systems so payment can proceed against the correct vendor.

How Plex works

Plex exposes suppliers, purchase orders, purchase order releases, invoices, GL accounts, and payments through REST JSON APIs at cloud.plex.com and test.cloud.plex.com. Authentication uses OAuth2 client credentials with a Bearer token. Plex has no native webhooks for cloud connectors, so all records are read by polling at intervals you choose, filtering by created_date and modified_date. The platform also supports legacy SOAP Web Services at api.plex.com for older deployments. Plex enforces role-based permissions, so the integration user must have the correct role assigned or API calls will return empty results or 403 errors.

How ServiceNow works

ServiceNow Source-to-Pay exposes purchase orders, invoices, suppliers, cost centers, and GL accounts through REST APIs at a customer-supplied instance URL (https://{instance}.service-now.com). Authentication requires OAuth2 client credentials, user-delegated OAuth2, or Basic Auth with a service account that holds the appropriate module roles. ServiceNow has no native outbound webhook system for cloud connectors, so all records are read by polling on a custom schedule. Source-to-Pay tables are module-licensed add-ons and must be enabled on the ServiceNow instance. Tokens expire after 30 minutes by default, requiring refresh on each request or caching with refresh logic.

What moves between them

The main flow is Plex into ServiceNow. Purchase orders and their line releases created or modified in Plex are polled at intervals you set and posted into ServiceNow's procurement staging tables. Invoices received against those orders flow the same direction and land in the accounts payable staging tables. Suppliers are synced bidirectionally so the vendor master in both systems remains aligned. GL account mappings ensure invoice coding lands on the correct finance dimension in ServiceNow. Payment records are read-only in Plex, so ml-connector does not write financial entries back.

How ml-connector handles it

ml-connector stores both OAuth credential sets encrypted and refreshes tokens before they expire. Because both Plex and ServiceNow lack native webhooks, ml-connector polls each system on a schedule tied to your procurement cycle. For Plex, it uses the REST API with OAuth2 Bearer token authentication and filters by modified_date to find new and changed records. For ServiceNow, it queries the instance URL with OAuth2 client credentials and the appropriate service account roles, refreshing the 30-minute session token as needed. Purchase orders from Plex are mapped to ServiceNow's procurement staging tables by matching supplier codes and account mappings. Plex enforces role-based access, so the integration user role must grant read access to purchase orders and invoices, and ServiceNow enforces module roles on its Source-to-Pay add-on tables. ML-connector implements exponential backoff on rate-limit responses from both systems and tracks every record in an audit trail so failed posts can be replayed after corrections are made.

A real-world example

A mid-sized discrete manufacturer runs Plex ERP for production, quality, and finance across three facilities and uses ServiceNow Source-to-Pay for procurement and accounts payable. Before the integration, the procurement team exported purchase orders from Plex twice a day, manually entered them into ServiceNow, and reconciled invoice matching by hand. With Plex and ServiceNow connected, new and modified purchase orders appear in ServiceNow's staging tables automatically, invoice matching kicks off the same day goods are received, and the procurement team spends time on exceptions rather than data entry.

What you can do

  • Sync Plex purchase orders and releases into ServiceNow procurement staging tables on a schedule you control.
  • Post Plex invoices into ServiceNow accounts payable staging tables to match against received purchase orders.
  • Map Plex suppliers and GL accounts to ServiceNow procurement dimensions so purchasing and coding are correct.
  • Authenticate Plex with OAuth2 client credentials and ServiceNow with its instance-specific OAuth2 or Basic Auth.
  • Poll on a custom schedule tied to your procurement cycle, with retries on rate limits and a full audit trail on every record.

Questions

Which direction does data move between Plex and ServiceNow?
The main flow is Plex into ServiceNow. Purchase orders, releases, and invoices move from Plex into ServiceNow staging tables, while suppliers are synced in both directions to keep the vendor master aligned. Payment records are read-only in Plex, so ml-connector does not write financial entries back into the source system.
Why does ml-connector poll instead of using webhooks?
Plex does not offer native webhooks for cloud connectors, so polling is the only option on the source side. ServiceNow also lacks a native outbound webhook registration system for cloud connectors, so both sides use polling on a schedule tied to your procurement cycle.
How does ml-connector handle role-based access on both sides?
Plex enforces roles on the integration user; that user must have the correct Plex role assigned or API calls will return 403 or empty results. ServiceNow requires the service account to hold the appropriate Source-to-Pay module roles (e.g., sn_apay.apo_user for accounts payable). ml-connector stores both credential sets encrypted and applies them on every request.

Related integrations

Connect Plex and ServiceNow

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

Get started