ml-connector
PlexFedEx

Plex and FedEx integration

Plex runs your manufacturing and ERP. FedEx moves your products to customers. Connecting the two eliminates manual shipment entry and keeps your sales orders updated with real-time tracking. When a sales order is ready to ship in Plex, ml-connector creates a shipment in FedEx and pushes tracking numbers back into Plex so your manufacturing floor, warehouse, and customer service teams see one truth about where each order stands.

How Plex works

Plex is a cloud-native ERP platform that exposes suppliers, purchase orders, sales orders, inventory, GL accounts, and customers through REST JSON APIs authenticated with OAuth 2.0 bearer tokens, or through legacy SOAP Web Services with Basic authentication using a company code (PCN). Plex does not offer native webhooks, so all data retrieval requires polling on a configurable interval (5-15 minutes recommended) filtering by modified_date or created_date. Role-based permissions are enforced on the Plex side, and the integration user must have the correct permissions assigned or API calls will return empty results.

How FedEx works

FedEx exposes shipments, tracking events, rate quotes, freight requests, and pickup management through REST APIs authenticated with OAuth 2.0 client credentials (API Key and API Secret from the FedEx Developer Portal). FedEx offers webhooks through its Advanced Integrated Visibility service (paid subscription) for tracking event push notifications, and a free Track API for polling historical and in-transit tracking data. FedEx enforces strict auth rate limits (3 tokens per second, triggers 403 for 10 minutes on overflow) and API rate limits (1,400 transactions per 10 seconds per project), and requires a FedEx account number for account-rated shipment creation.

What moves between them

Sales orders and shipment requests flow from Plex into FedEx. When a Plex sales order is marked ready to ship, ml-connector reads the order, customer, and inventory details and creates a shipment in FedEx with the destination address, weight, and service type. After shipment creation, ml-connector polls the FedEx Track API to retrieve tracking numbers and status updates and writes those back to the Plex sales order so manufacturing and customer service teams have real-time visibility without switching systems.

How ml-connector handles it

ml-connector polls Plex REST API on a schedule you define (typically every 5-15 minutes) looking for sales orders marked ready to ship. For each order, it reads the customer master data and inventory details, maps the Plex customer address to FedEx address fields (validating country and postal code), and constructs a shipment request. It authenticates FedEx with OAuth 2.0 client credentials, caches the bearer token for the full 1-hour TTL to stay under the IP-level auth rate limit (3 tokens per second), and submits the shipment request with a unique transactionId for client-side deduplication. Once FedEx returns a label and tracking number, ml-connector writes the tracking number back to the Plex sales order via the REST API. If Plex role-based permissions are not granted, the integration user must request the correct role from a Plex administrator before the API can return order data. FedEx rate limiting is monitored, and ml-connector backs off exponentially if the API returns 429 or if a burst of requests triggers the per-IP auth limit.

A real-world example

A mid-sized discrete manufacturer builds automotive components for tier-1 suppliers using Plex for production planning, inventory, and order management. Before the integration, the warehouse team manually entered each order into FedEx's website, called customer service for tracking numbers, and wrote those numbers back into Plex by hand. This created a lag between shipment and visibility, and customers frequently called asking where their order was because the sales order in Plex had no tracking information. With Plex and FedEx connected, every sales order ready to ship automatically creates a FedEx label, and tracking numbers flow back into Plex within 2-3 minutes. The warehouse prints the label from Plex, ships the package, and customer service can see the tracking number in the same Plex screen where they manage the order, so fulfillment is faster and customer inquiries are answered immediately.

What you can do

  • Automatically create FedEx shipments from Plex sales orders marked ready to ship, mapping customer addresses and package weights.
  • Retrieve FedEx tracking numbers and delivery status and write them back to Plex sales orders for real-time visibility.
  • Authenticate Plex with OAuth 2.0 and validate role-based permissions, and authenticate FedEx with account-rated credentials.
  • Poll Plex on a configurable interval to find new shipment requests, with exponential backoff on FedEx rate limits and auth errors.
  • Maintain a full audit trail of every shipment created and tracking update received, with error replay if a downstream call fails.

Questions

What data moves between Plex and FedEx?
Sales orders and shipment requests flow from Plex into FedEx, where ml-connector creates shipments with customer addresses, weights, and service types. FedEx tracking numbers and delivery status flow back into Plex sales orders. Customer master data (name, address, postal code, country) is read from Plex to populate FedEx shipment destination fields. PO references and order numbers are passed through as customer-provided fields so Plex order details stay connected to the FedEx shipment.
How does ml-connector handle FedEx rate limits and auth tokens?
FedEx enforces IP-level auth rate limits (3 tokens per second) and API rate limits (1,400 transactions per 10 seconds). ml-connector caches the OAuth 2.0 bearer token for its full 1-hour TTL to minimize token requests and stay under the auth limit. If a request returns 429 or an auth burst triggers a 403, ml-connector backs off exponentially and retries, and tracks all failures in the audit log.
What happens if a Plex integration user does not have the correct role assigned?
Plex enforces role-based permissions on all API calls. If the integration user does not have permission to read sales orders or customer data, the REST API will return empty results or 403 Forbidden. The user must request the correct Plex role from a Plex administrator before the integration can proceed. ml-connector logs the permission error in the audit trail so it can be diagnosed quickly.

Related integrations

Connect Plex and FedEx

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

Get started