ml-connector
Microsoft Dynamics GPWorkday HCM

Microsoft Dynamics GP and Workday HCM integration

Microsoft Dynamics GP manages on-premises financials and accounting for SMBs. Workday HCM handles payroll, benefits, and workforce on the cloud. When they are connected, worker records automatically flow from Workday into Dynamics GP to keep headcount aligned, payroll GL journals post into the general ledger after each run, and cost centers stay valid across both systems. The two operate with different authentication models and network topologies, but ml-connector handles the translation so your accounting team does not re-key payroll data into the ledger.

How Microsoft Dynamics GP works

Microsoft Dynamics GP runs on-premises on a customer's Windows Server with a SQL Server database. It exposes financial and payroll records through Service Based Architecture REST endpoints at https://<server>:<port>/GPService/Tenants(<TenantName>)/Companies(<CompanyName>)/<Module>/<Resource>, or through SOAP/WCF Web Services for older versions. Authentication requires Windows domain credentials mapped to a Dynamics GP user account with appropriate role-based security. Dynamics GP does not support webhooks or push notifications, so reads occur by polling with ModifiedDate filters at intervals you define.

How Workday HCM works

Workday HCM is a cloud SaaS platform with customer-specific subdomain URLs. Financial and procurement data, including suppliers, invoices, GL accounts, and accounting journals, is accessed through Workday's SOAP API at https://{host}.workday.com/ccx/service/{tenant}/{ServiceName}/{version} using WS-Security UsernameToken authentication with an Integration System User. Worker and organizational data can also be read via REST at https://{host}.workday.com/ccx/api/{service}/{version}/{tenant}/{resource} using OAuth2 client credentials with a 60-minute access token expiry. Workday has no native webhooks, so integration polling on a defined schedule is the standard approach.

What moves between them

The main flow runs from Workday into Dynamics GP. After each payroll cycle, ml-connector reads Workday accounting journals and GL postings through the SOAP API, maps the labor cost allocations to the corresponding Dynamics GP GL accounts and cost centers, and posts the journal entries into Dynamics GP's general ledger. Worker records, including hires, terminations, and rehires, are read from Workday and synchronized into Dynamics GP employee records to keep headcount and organizational structure in sync. Cost centers and organizational entities are validated in both directions so payroll allocations reference GL dimensions that already exist in Dynamics GP. GL postings are read-only in Workday, so ml-connector does not write financial entries back into payroll.

How ml-connector handles it

ml-connector stores Workday OAuth2 credentials encrypted and manages token refresh automatically when access tokens expire after 60 minutes. On the Dynamics GP side, it accepts the customer's on-premises server address, port, and tenant/company database names, and stores the Windows domain account credentials encrypted for authentication. Because Dynamics GP requires the caller to be on the customer's network (or behind a firewall-exposed gateway), ml-connector can run as a local agent or behind the customer's VPN. It polls both systems on a schedule tied to your payroll calendar, using Workday's SOAP API for GL journals and Dynamics GP's REST or SOAP endpoints for validation and posting. Dynamics GP's SBA REST bodies require the top-level Payload wrapper, and Workday's SOAP pagination limits approximately 2000 records per call, so ml-connector batches large payroll runs across multiple requests. Cost center codes must exist and be posted in Dynamics GP before the payroll GL entry arrives, so the sync order is cost center first, then GL posting. Because Dynamics GP has no built-in idempotency mechanism, ml-connector uses the external GL document reference number as a deduplication key to prevent duplicate postings. Workday enforces rate limits with HTTP 429 responses and includes a Retry-After header, which ml-connector respects. Every record carries an audit trail and can be replayed if a downstream Dynamics GP validation fails.

A real-world example

A mid-sized manufacturing firm runs Dynamics GP on-premises for accounting and inventory, and Workday HCM for payroll and benefits. The HR and finance teams previously operated in silos: payroll runs happened in Workday, and finance manually extracted the labor registers each pay period, verified them against Dynamics GP headcount, and re-entered the GL postings by hand before closing the books. With Microsoft Dynamics GP and Workday HCM connected, each payroll cycle automatically flows labor costs into Dynamics GP's GL allocated to the correct department or plant cost center, and worker records from Workday keep the employee roster current. Finance now starts month-end close with labor accounts already reconciled, eliminating the manual re-keying step and reducing headcount variance issues.

What you can do

  • Post Workday payroll accounting journals into Dynamics GP's general ledger after each pay cycle, allocated to the correct cost centers.
  • Keep Dynamics GP employee records synchronized with Workday workers, including hires, terminations, and organizational changes.
  • Validate cost centers and GL dimensions exist in Dynamics GP before payroll entries are posted, preventing GL posting failures.
  • Authenticate Workday with OAuth2 SOAP integration credentials and Dynamics GP with on-premises Windows domain credentials through a firewall gateway.
  • Poll on a schedule you control, with deduplication by GL document reference, retries on rate limits, and a full audit trail on every record.

Questions

How does ml-connector handle Dynamics GP being on-premises while Workday is cloud?
ml-connector can run as a local agent inside the customer's network where it can reach the Dynamics GP on-premises server directly, or behind a customer-managed firewall gateway that exposes the Dynamics GP endpoint securely. The Workday side is always cloud-accessible via SOAP API over HTTPS. Credentials are stored encrypted and the system polls on a schedule you define.
What happens if a cost center in the payroll GL entry doesn't exist in Dynamics GP?
ml-connector validates cost centers before attempting to post. If a cost center is missing or inactive in Dynamics GP, it raises a validation error in the audit trail and pauses that journal entry for correction. Cost centers must be set up and active in Dynamics GP before the corresponding payroll entry is posted.
How are duplicate GL postings prevented when ml-connector retries?
ml-connector uses the Workday GL document reference number (or a composite unique identifier across the payroll cycle) as a deduplication key in Dynamics GP. If the same document is retried, Dynamics GP recognizes the key and does not create a duplicate posting. The audit trail logs each attempt so you can see what was retried and why.

Related integrations

Connect Microsoft Dynamics GP and Workday HCM

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

Get started