Microsoft Dynamics 365 F&O and UKG integration
Microsoft Dynamics 365 F&O runs finance, procurement, and the general ledger. UKG runs payroll and HR. Connecting the two means the labor cost UKG produces after each pay run posts into the D365 F&O general ledger without re-keying, and employee cost center and department assignments stay in agreement across both systems. UKG has no chart of accounts of its own, so the ledger stays in D365 F&O where it belongs. ml-connector handles the very different APIs on each side and moves the data on a schedule tied to your payroll calendar.
What moves between them
The main flow runs from UKG into Microsoft Dynamics 365 F&O. After each payroll run, ml-connector reads UKG third-party pay distributions and posts the labor cost as general journal lines into D365 F&O, mapped to the matching MainAccounts and financial dimensions. Employee records flow the same direction so D365 F&O reflects UKG hires, terminations, and cost center assignments. Reference data such as cost centers and departments is aligned so payroll allocations land on valid D365 F&O dimensions. UKG has no ledger to receive postings, so ml-connector never writes financial entries back into payroll.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the UKG side it sends HTTP Basic auth plus both API key headers on every request, because omitting either returns a silent 401, and it uses page and per_Page paging across the Core REST surface. On the D365 F&O side it accepts the full tenant operations.dynamics.com host per customer, requests an Entra ID bearer token by client credentials, and refreshes it before the roughly one-hour expiry. Cost centers and departments are mapped first, so every journal line references a main account and financial dimension that already exist in D365 F&O; dimension values are passed as the formatted display string D365 F&O expects, which must be configured for integrating applications first. Posted GL entries are read-only in D365 F&O, so labor cost is created through journal entities rather than written to GeneralJournalAccountEntries directly. Neither API has a built-in idempotency key, so ml-connector dedupes on the pay period and employee with a BullMQ jobId before it posts, which avoids double-booking a re-read pay run. Where UKG webhooks are enabled, a verified payroll event can trigger the read, while a scheduled poll tied to the pay calendar backfills anything missed within the 14-day webhook retention window. Service protection limits on D365 F&O and the per-tenant gateway limit on UKG both return HTTP 429, so ml-connector honors Retry-After and backs off with jitter, and 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 with about 600 employees across two plants and a head office runs Microsoft Dynamics 365 F&O for finance and procurement and uses UKG Pro for payroll and HR. Before the integration, the finance team exported payroll registers from UKG every pay period and re-entered the labor totals into D365 F&O by hand, then spent the first days of month-end close chasing differences between HR headcount and the labor accounts in the ledger. With Microsoft Dynamics 365 F&O and UKG connected, each pay run's GL distributions post into D365 F&O automatically, allocated to the cost center for each plant, and employee changes keep the two systems aligned. Month-end close starts with the labor accounts already reconciled, and the manual re-keying step is gone.
What you can do
- Post UKG payroll labor cost into the Microsoft Dynamics 365 F&O general ledger after every pay run, allocated to the correct main accounts and financial dimensions.
- Keep D365 F&O aligned with UKG hires, terminations, and cost center assignments.
- Map UKG cost centers and departments to D365 F&O financial dimensions so payroll lands on valid accounts.
- Authenticate UKG with Basic auth and its two API keys, and Microsoft Dynamics 365 F&O with an Entra ID bearer token.
- Poll on a schedule tied to your payroll calendar, honoring Retry-After on 429, with jobId dedup and a full audit trail on every record.
Questions
- Which direction does data move between Microsoft Dynamics 365 F&O and UKG?
- The main flow is UKG into Microsoft Dynamics 365 F&O. Payroll GL distributions and employee records move from UKG into D365 F&O, while cost centers and departments are aligned so journals land on valid dimensions. UKG has no chart of accounts, so the ledger stays in D365 F&O and ml-connector never writes financial entries back into payroll.
- How does the integration get general ledger data out of UKG when UKG has no chart of accounts?
- UKG Pro is an HRIS and WFM product, so it does not store ledger journals or account balances. ml-connector reads the third-party pay endpoint, which returns pay distributions with GL account numbers, debit and credit amounts, and cost centers. Those distributions are mapped to D365 F&O main accounts and financial dimensions and posted as general journal lines, so the ledger entries are built in D365 F&O rather than pulled from UKG.
- Does UKG push payroll events, or does ml-connector poll for them?
- Both are supported. UKG offers outbound webhooks signed with HMAC SHA-256, so a verified event can trigger a read, but webhook events expire after 14 days. Because of that retention limit and because D365 F&O finance reads run by polling, a scheduled poll tied to the payroll calendar is the default and backfills anything a webhook missed.
Related integrations
More Microsoft Dynamics 365 F&O integrations
Other systems that connect to UKG
Connect Microsoft Dynamics 365 F&O and UKG
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started