ml-connector
Oracle NetSuiteWorkday HCM

Oracle NetSuite and Workday HCM integration

Oracle NetSuite runs your general ledger, purchasing, and inventory. Workday HCM runs your workers and payroll across multiple cost centers and organizations. Connecting them keeps your workforce master data aligned with your chart of accounts and departments. New hires and terminations in Workday reflect immediately in NetSuite headcount, and departments and cost centers stay in sync across both systems. ml-connector handles the different authentication models and moves the data on a schedule you control.

How Oracle NetSuite works

Oracle NetSuite exposes vendors, purchase orders, vendor invoices, GL accounts, cost centers, employees, departments, locations, and journal entries through SuiteTalk REST Web Services and OAuth 2.0 Client Credentials authentication (M2M with certificate, or legacy Token-Based Authentication). NetSuite publishes Event Subscriptions that push webhooks for supported record types such as invoices and sales orders, though no native HMAC signature is provided. For bulk reads and historical data, integrations poll via SuiteQL queries. OAuth tokens expire every 60 minutes with no refresh token in the M2M flow, and SuiteScript governance units apply to high-volume event processing.

How Workday HCM works

Workday HCM exposes workers, positions, organizations, compensation, cost centers, GL accounts, and ledger account summaries through three API surfaces: REST for HCM and staffing data only, SOAP WWS (WS-Security UsernameToken) for full CRUD including finance and procurement, and RaaS for custom report extraction. REST API uses OAuth 2.0 with a long-lived refresh token and a 60-minute access token expiry. SOAP WWS requires Integration System User credentials. Workday publishes no native webhooks; integrations must poll on a schedule such as 5 minutes or longer. Most resources support date-filtered incremental queries, and HTTP 429 with Retry-After signals rate limiting.

What moves between them

The main flow is Workday into Oracle NetSuite. Worker records, compensation, and cost center assignments from Workday are polled on a schedule tied to your payroll or HR cycle and written into NetSuite employee and department entities. GL accounts and cost centers are validated in both directions so every payroll allocation can post to a dimension that exists in NetSuite. Payroll GL journals generated in Workday can also be read and posted into NetSuite's general ledger. The relationship is hierarchical: Workday organizations map to NetSuite departments, Workday positions align with NetSuite employee job assignments, and Workday cost centers validate against NetSuite general ledger dimension values.

How ml-connector handles it

ml-connector stores both credential sets encrypted and manages two separate OAuth2 flows: NetSuite Client Credentials (M2M) with certificate and Workday REST with a refresh token. NetSuite tokens expire every 60 minutes, so ml-connector requests a new token before each batch of SuiteQL queries. Workday tokens refresh via the long-lived refresh token when the 60-minute access window closes. Because Workday publishes no webhooks, polling drives the schedule tied to your payroll calendar. Cost centers and organizations are synced first to establish the dimension hierarchy in NetSuite, then workers are upserted so compensation postings land on valid GL account and cost center combinations. Worker terminations in Workday trigger a deactivation in NetSuite. Workday rate limits return HTTP 429 with Retry-After, so ml-connector backs off and retries. Every record carries a full audit trail and can be replayed if a downstream write fails.

A real-world example

A mid-sized professional services firm runs Oracle NetSuite for project accounting, vendor management, and general ledger, and uses Workday HCM for staffing and payroll across multiple offices and cost centers. Before the integration, the finance team received a monthly headcount report exported from Workday and manually verified it against NetSuite's employee count and department assignments, then reconciled differences by hand. With Workday and Oracle NetSuite connected, worker hires and terminations flow automatically into NetSuite, departments and cost centers are always in sync, and the finance team stops spending days on manual headcount reconciliation. Month-end close starts with employee and cost center records already aligned.

What you can do

  • Sync Workday workers into Oracle NetSuite employees and keep headcount aligned with hires, transfers, and terminations.
  • Map Workday organizations and cost centers to NetSuite departments and GL dimensions so compensation postings land on valid accounts.
  • Authenticate Oracle NetSuite with OAuth 2.0 Client Credentials and Workday with OAuth 2.0 refresh token on REST or WS-Security on SOAP.
  • Poll Workday on a schedule tied to your payroll or HR cycle, with automatic retries and a full audit trail on every record.
  • Handle both systems' token expiry and rate limiting without manual intervention or outage.

Questions

Which direction does data move between Oracle NetSuite and Workday HCM?
The main flow is Workday into Oracle NetSuite. Worker records, compensation, cost centers, and organizations flow from Workday into NetSuite so headcount and department assignments stay aligned with the general ledger. GL accounts and dimensions are validated in both directions so payroll postings land on valid NetSuite accounts. NetSuite's general ledger is read-only from Workday.
How does ml-connector handle the different authentication models?
Oracle NetSuite uses OAuth 2.0 Client Credentials with a certificate for M2M integration, with tokens expiring every 60 minutes and no refresh token. Workday REST API uses OAuth 2.0 with a long-lived refresh token. ml-connector stores both credential sets encrypted, manages token refresh separately for each system, and requests new NetSuite tokens before each batch of queries to stay current.
Since Workday has no webhooks, how does the integration stay current?
ml-connector polls Workday on a schedule tied to your payroll calendar, such as daily or on payroll run days. Most Workday resources support date-filtered queries for incremental pulls, so the integration only fetches new or changed records since the last poll. Workday rate limits return HTTP 429 with Retry-After, so ml-connector backs off and retries rather than skipping records.

Related integrations

Connect Oracle NetSuite and Workday HCM

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

Get started