ml-connector
Sage 100Workday HCM

Sage 100 and Workday HCM integration

Sage 100 runs on-premises finance and inventory. Workday runs cloud HR and payroll. When your workforce changes in Workday or compensation is updated, those changes need to flow into Sage 100 so your GL accounts and vendor records stay aligned with your people. ml-connector moves the data on a schedule tied to your payroll cycle, handling the very different APIs and authentication models on each side.

How Sage 100 works

Sage 100 is an on-premises ERP system covering accounts receivable, accounts payable, general ledger, inventory, and purchasing. It exposes data through SOAP Web Services (eBusiness at a customer-hosted endpoint, limited to Sales Orders and AR Customers) or through a local Windows agent that wraps the BOI COM layer for full access to AP invoices, GL accounts, purchase orders, and vendors. There is no native REST API or cloud interface, and no webhooks or event streams, so integrations must poll using DateLastUpdated or DateCreated fields. Authentication uses stateless username and password passed with each SOAP call, with no token refresh or OAuth support. The system requires a 3-character company code on every call, individual user enablement for Web Services, and Windows service account credentials for the local agent.

How Workday HCM works

Workday HCM is a cloud-based platform covering workforce management, payroll, benefits, talent, and financial management. It exposes data through multiple surfaces: REST API for HCM and staffing data (Workers, Positions, Organizations, Compensation, Cost Centers), SOAP WWS for full CRUD including finance and procurement (Suppliers, Purchase Orders, GL Accounts, Accounting Journals), and RaaS for custom report extraction. Authentication uses OAuth2 with a 60-minute access token and long-lived refresh token for REST calls, or WS-Security UsernameToken for SOAP calls through an Integration System User. Workday does not support native webhooks or event pushes, so integrations must poll on a minimum 5-minute schedule. HTTP 429 responses with Retry-After headers enforce rate limits, and the API surfaces are versioned and updated twice per year (R1 and R2 releases).

What moves between them

Worker and compensation records flow from Workday HCM into Sage 100 on a schedule tied to your payroll cycle. Cost centers and organizational hierarchies from Workday align with Sage 100's GL account dimensions so payroll journal entries post to valid accounts and cost centers. Supplier and purchase order data can flow bidirectionally depending on your process: Workday can read Sage 100 vendors and POs, or vendor master records can be maintained in Workday and synced back into Sage 100. GL accounts and cost center validation tables are kept in sync in both directions so payroll allocations land on valid dimensions.

How ml-connector handles it

ml-connector stores Sage 100 credentials (username, password, company code, SOAP endpoint URL) and Workday credentials (OAuth2 client credentials, ISU username and password for SOAP) encrypted in its vault. For Workday REST calls, ml-connector obtains an OAuth2 access token and handles the 60-minute expiry by refreshing on schedule. For Sage 100 SOAP calls, it passes credentials with each request as the system has no token support. ml-connector polls Workday on your defined schedule (typically daily for workers and cost centers, more frequently for compensation changes), filters by DateLastUpdated to pull only changed records, and maps Workday cost center codes and organizational hierarchies into Sage 100's GL account segments. Worker records become GL cost allocations, and position changes flow as updates to existing GL records. Since Sage 100 is on-premises with no webhooks, ml-connector cannot receive pushed notifications from Workday; instead, Workday is the source of truth and Sage 100 is synchronized inbound. ml-connector handles Workday HTTP 429 rate limits by backing off and retrying, tracks Workday API version release cycles (R1 and R2 each year) so queries remain compatible, and wraps every sync in a full audit trail so failed records can be replayed once credentials or data are corrected.

A real-world example

A mid-sized manufacturing company runs Sage 100 on-premises for finance, inventory, and purchasing, and uses Workday HCM for payroll and workforce management across three plants. Before the integration, the finance team manually re-entered payroll headcount into Sage 100's GL cost center accounts at the end of each pay period, leading to reconciliation delays and errors between HR headcount and the labor accounts. After compensation changes in Workday, GL allocations in Sage 100 would lag by days until someone remembered to update them. With Sage 100 and Workday HCM connected, ml-connector syncs workers and their assigned cost centers into Sage 100 daily, so the GL accounts for each plant are always aligned with Workday's workforce. Month-end close is faster because the payroll account balance matches HR headcount automatically.

What you can do

  • Sync Workday HCM workers, positions, and compensation records into Sage 100's GL cost center structure on a schedule you control.
  • Map Workday cost centers and organizational hierarchies to Sage 100's multi-segment GL accounts and vendor cost allocations.
  • Handle Workday OAuth2 token refresh cycles and Sage 100's stateless username-password SOAP authentication transparently.
  • Poll both systems on a schedule tied to your payroll cycle, with HTTP 429 backoff and a full audit trail on every record.
  • Validate cost centers and GL accounts before posting so payroll allocations land on valid dimensions in both systems.

Questions

Which direction does data move between Sage 100 and Workday HCM?
The primary flow is Workday HCM into Sage 100. Workers, positions, compensation, and cost centers sync from Workday into Sage 100's GL accounts and cost allocations. Cost center and GL account validation tables are kept in sync in both directions so payroll allocations always reference valid accounts. Supplier and purchase order data can flow bidirectionally depending on your process, but HR and payroll records are read from Workday and written into Sage 100.
Does the integration work with Sage 100 on-premises and the local Windows agent?
Yes. ml-connector accepts either the eBusiness SOAP endpoint URL (for AR Customers and Sales Orders only) or credentials for the local Windows agent that wraps the BOI COM layer (for full access to AP, GL, PO, and vendor records). For payroll and GL integration, the local agent is required. ml-connector encrypts the agent credentials and passes them with each BOI request, handling the COM layer's record-locking retry behavior automatically.
How does the integration handle the different API surfaces in Workday - REST for HCM and SOAP for Finance?
ml-connector uses the REST API to fetch Workers, Positions, Organizations, and Cost Centers from Workday HCM, managing OAuth2 token refresh as needed. For financial and GL data (GL Accounts, Journals, Cost Centers with accounting metadata), it switches to Workday's SOAP WWS surface using WS-Security UsernameToken credentials. Both surfaces are polled on your schedule with 429 rate-limit backoff, so a single sync run can gather HR and financial data without credential switching at the job level.

Related integrations

Connect Sage 100 and Workday HCM

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

Get started