Plex and Microsoft Dynamics 365 Sales integration
Plex runs manufacturing and financial operations. Dynamics 365 Sales runs the sales pipeline and customer relationship management. Connecting them keeps your customer master data and sales activities in sync so every salesperson works with current customer information and every fulfillment team sees the latest opportunity status. New customers and sales orders in Plex flow into Dynamics 365 Sales automatically, so your CRM always reflects what your operations teams are actually running.
What moves between them
Customer records and sales orders flow from Plex into Dynamics 365 Sales. Plex customers map to Dynamics 365 accounts, Plex contacts map to Dynamics 365 contacts, and Plex sales orders populate Dynamics 365 opportunities and sales orders with their status and line items. The sync runs on a configurable polling interval, typically 5-15 minutes, so Plex remains the source of truth for customer and order data while Dynamics 365 Sales provides the sales team's collaborative workspace. Dynamics 365 Sales does not have GL accounts or vendor records, so only customer, contact, and sales-related entities move in this direction.
How ml-connector handles it
ml-connector stores both OAuth 2.0 credential sets encrypted and refreshes tokens as they near expiry. On the Plex side, it polls the REST API using modified_date and created_date filters to retrieve changed customer and sales order records on a schedule you control (typical 5-15 minute intervals), with exponential backoff on HTTP 429 rate-limit responses since Plex rate limits are not publicly documented. On the Dynamics 365 Sales side, it uses OAuth 2.0 to obtain tokens from Microsoft Entra ID and posts records via the Dataverse Web API. Customer records are mapped to accounts with billing and shipping addresses extracted to contact records, sales orders are mapped to opportunities with status transitions reflected, and line-item details are preserved. Because Plex offers no webhooks, all sync is poll-triggered rather than event-triggered, so there is an intentional latency window. The integration respects Plex role-based permissions, so the integration user must have the correct Plex role assigned. Every record carries a full audit trail and can be replayed if a downstream Dynamics 365 Sales call fails.
A real-world example
A discrete manufacturer runs Plex ERP for production planning, purchasing, and order fulfillment across four plants, and uses Dynamics 365 Sales for territory management and pipeline forecasting. Before the integration, the sales team manually entered new customer records and sales orders from Plex into Dynamics 365 Sales at the start of each week, and opportunity stage updates were entered by hand as orders progressed through fulfillment. The sales pipeline forecast often drifted from actual backlog because order status changes in Plex did not synchronize. With Plex and Dynamics 365 Sales connected, every new customer appears in Dynamics 365 Sales as an account within 15 minutes, every sales order creates an opportunity automatically, and status changes in Plex (scheduled, in production, shipped) update the opportunity stage in Dynamics 365 Sales in real time. The sales forecast now matches the operational reality, and the sales team can focus on next orders instead of data entry.
What you can do
- Sync customer records from Plex into Dynamics 365 Sales as accounts and contacts with billing and shipping address details.
- Map Plex sales orders to Dynamics 365 Sales opportunities and orders, reflecting status and line-item data.
- Authenticate both sides using OAuth 2.0 and manage token refresh automatically.
- Poll Plex on a configurable schedule (5-15 minute intervals) using modified_date filters to detect new and changed records.
- Maintain a full audit trail and replay records if a Dynamics 365 Sales API call fails.
Questions
- Which direction does data move between Plex and Dynamics 365 Sales?
- Data flows from Plex into Dynamics 365 Sales. Plex customers become Dynamics 365 Sales accounts, Plex contacts become Dynamics 365 Sales contacts, and Plex sales orders become Dynamics 365 Sales opportunities and sales orders. Dynamics 365 Sales is read-only for this integration, so opportunity updates made in Dynamics 365 Sales do not flow back to Plex. Plex remains the source of truth for customer and order master data.
- How does the integration handle Plex's lack of webhooks?
- ml-connector polls the Plex REST API on a configurable interval (typically 5-15 minutes) using modified_date and created_date filters to detect new and changed records. This poll-based approach introduces a latency window, but it ensures the sync works reliably without requiring Plex to push events. Exponential backoff handles rate-limit responses gracefully.
- What happens if the Plex integration user does not have the correct role?
- Plex enforces role-based permissions on API calls. If the integration user lacks the correct Plex role, API calls return 403 (Forbidden) or empty result sets, and the sync will stall. The integration user must be assigned the correct Plex role before syncing begins, and role changes must be tested against the Plex REST API to confirm API access is restored.
Related integrations
More Plex integrations
Other systems that connect to Microsoft Dynamics 365 Sales
Connect Plex and Microsoft Dynamics 365 Sales
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started