ml-connector
PlexDayforce

Plex and Dayforce integration

Plex runs manufacturing, inventory, and financials. Dayforce runs payroll and HR. Connecting the two keeps your workforce records and labor costs synchronized. Payroll journals from Dayforce post into Plex's general ledger allocated to the correct cost centers and departments, and employee hires, terminations, and role changes in Dayforce flow into Plex's HR module. ml-connector bridges the different authentication schemes, manages the hourly token refresh on the Dayforce side, and keeps the two systems aligned on a schedule that matches your payroll calendar.

How Plex works

Plex is a cloud-native ERP and MES platform targeting discrete manufacturing, exposing financials, purchasing, inventory, HR, and production data through REST APIs via Plex Connect at cloud.plex.com/api and https://test.cloud.plex.com/api, as well as legacy SOAP Web Services at api.plex.com. REST APIs authenticate with OAuth 2.0 client credentials, while legacy SOAP requires Basic auth with username, password, and company code (PCN) to route to the correct data partition. Plex offers no native webhooks, so integration requires polling on a configurable interval, filtering by modified_date or created_date. The Plex developer portal is gated and requires an authenticated account to access full specifications. Role-based permissions are enforced, and the integration user must have the correct Plex role assigned to successfully query financial and HR entities.

How Dayforce works

Dayforce is a cloud-based Human Capital Management platform covering HR, payroll, workforce management, benefits, recruiting, and talent management. It exposes employees, organizational units, jobs, positions, pay summaries, and employee balance periods through REST APIs with a client-specific base URL (retrieved and refreshed daily from ClientMetadata endpoint). Authentication uses OAuth 2.0 Resource Owner Password Credentials (ROPC), returning a Bearer JWT that expires in 3600 seconds. All access is via polling only; Dayforce Integration Studio offers scheduled syncs configured in the admin console, but Dayforce has no native outbound webhooks. Scopes and permissions are role-based, controlled by the HCM Anywhere API permissions assigned to the integration user in the Dayforce admin console. The sandbox environment is shared across all customers and does not persist POST or PATCH requests.

What moves between them

The integration runs from Dayforce into Plex. Employees, organizational units, and job titles flow from Dayforce into Plex's HR module to keep headcount aligned. Payroll summaries and cost allocations generated after each pay cycle in Dayforce are read by ml-connector and posted into Plex's general ledger, mapped to the matching Plex GL accounts and cost centers. The flow is one-way from payroll into ERP; Plex HR and financial records do not flow back into Dayforce. Synchronization is scheduled, typically running a few hours after each payroll run completes in Dayforce.

How ml-connector handles it

ml-connector maintains the OAuth 2.0 credential set for each system encrypted. On the Dayforce side, it manages the 1-hour token expiry by refreshing the ROPC bearer token before each poll cycle to avoid expired-token errors. On the Plex side, it accepts the tenant-specific Plex instance URL and routes REST calls through Plex Connect (or SOAP calls through the legacy Web Services endpoint if the customer prefers). The integration filters Dayforce employee and payroll records by modified_date to avoid re-processing unchanged data. Employee records are mapped to Plex HR entities; payroll GL documents and cost center allocations are parsed from Dayforce and posted to Plex GL accounts, with duplicate detection via external reference ID to handle Dayforce reconciliations and corrections. The Dayforce integration user must have HCM Anywhere API permissions granted in the Dayforce admin console; missing permissions cause API calls to fail silently or return HTTP 403. Because both systems are polling-only, ml-connector polls on a calendar-driven schedule rather than reacting to real-time events, reducing the frequency and cost of API calls.

A real-world example

A mid-sized discrete manufacturer operates Plex for production scheduling and inventory, and Dayforce for payroll across three plants. Before the integration, the finance team pulled payroll registers from Dayforce each pay period and manually coded each pay line to the correct plant cost center in an Excel reconciliation sheet, then entered the totals into Plex. Month-end close took two days of reconciling headcount and labor costs. With Plex and Dayforce connected, payroll GL documents flow automatically into Plex after each payroll run, already allocated to the correct plant cost centers. Employee records stay in sync, and the manual reconciliation step is eliminated. The finance team now completes labor account reconciliation in hours instead of days.

What you can do

  • Sync Dayforce employees and organizational units into Plex HR to keep headcount and department structure aligned.
  • Post Dayforce payroll GL documents into Plex's general ledger after each pay cycle, allocated to the correct cost centers.
  • Map Dayforce job titles and roles to Plex HR entities so employee records are complete and role changes are reflected.
  • Manage Dayforce OAuth 2.0 ROPC token refresh on a 1-hour cycle to avoid authentication timeouts.
  • Poll both systems on a schedule tied to your payroll calendar, with duplicate detection and a full audit trail on every record.

Questions

What employee and payroll data moves from Dayforce into Plex?
Dayforce employees, organizational units, job titles, and employee balance data flow into Plex's HR module to keep workforce records synchronized. Payroll GL documents and cost allocations generated after each pay run in Dayforce are posted to Plex's general ledger, mapped to the correct GL accounts and cost centers in Plex. This is a one-way flow from Dayforce into Plex; Plex HR and GL records do not flow back.
How does ml-connector handle Dayforce's 1-hour token expiry?
Dayforce OAuth 2.0 tokens expire after 3600 seconds. ml-connector monitors token age and refreshes the bearer token before each poll cycle using the Resource Owner Password Credentials (ROPC) grant, so authentication never fails due to token expiry. The client-specific Dayforce URL is also refreshed daily from the ClientMetadata endpoint to minimize redirect overhead.
Why do both systems require polling instead of webhooks?
Neither Plex nor Dayforce offers native outbound webhooks to external integrations. Plex requires polling the REST API or reading SFTP DataSources extracts; Dayforce offers Integration Studio scheduled syncs but not external event-driven pushes. ml-connector polls both systems on a calendar-driven schedule tied to your payroll cycle, filtering by modified_date to fetch only changed records and reduce API call volume.

Related integrations

Connect Plex and Dayforce

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

Get started