About Workday
Workday is a human capital management (HCM) platform. The Serval Workday integration is a per-tenant connection to your Workday environment: it gives Serval workflows live access to Workday’s REST sub-APIs (30+ modules including Staffing, Person, Absence Management, Payroll, and Recruiting), Workday Query Language (WQL), and ten Workday Web Services (SOAP) services. It also ships two installable workflow bundles - Worker Lookup, and Time Off & Benefits - so common HR lookups work out of the box. Every connection is specific to your tenant: the REST API Base URL, Token Endpoint, and optional user-auth endpoints all belong to your Workday environment. Authentication: Service account via OAuth 2.0 refresh-token grant, tied to an Integration System User (ISU) and an API Client for Integrations registered in your Workday tenant. An optional, feature-flagged per-user (3-legged) OAuth path lets certain actions run as the end user. Data sync: On-demand only. Nothing is mirrored into Serval on a schedule - workflow actions and health checks call Workday live, and a fresh access token is obtained from your tenant’s token endpoint for every call.What the Workday integration enables
| Capability | Description |
|---|---|
| REST requests across 30+ Workday modules | Typed request actions for Workday’s REST sub-APIs, including Staffing, Person, Absence Management, Compensation, Payroll, Global Payroll, Recruiting, Talent Management, Time Tracking, Expense, Procurement, Projects, Custom Reports (RaaS), Workday Help, Prism Analytics, Student modules, Workday Connect messaging, and more. |
| WQL (Workday Query Language) queries | Run WQL queries against standard data sources such as allWorkers, allActiveWorkers, and allActiveAndTerminatedWorkers - used by worker lookups and the WQL health check. |
| SOAP (Workday Web Services) requests | Typed SOAP actions for ten services: Staffing, Human Resources, Absence Management, Benefits Administration, Compensation, Integrations, Payroll, Performance Management, Recruiting, and Time Tracking. Common operations include Get_Workers, Hire_Employee, Terminate_Employee, Get_Job_Postings, and Get_Organization_Goals. |
| Worker lookup and change-request helpers | Higher-level actions such as find worker by email or employee ID, find eligible absence types, get organization goals, and update a worker’s primary home phone number or home address (including adding a home phone number where none exists). |
| Worker Lookup bundle | Six prebuilt workflows: Search for Workday Worker by Name, Get Workday Worker ID by Email, Get Workday Worker, List Workday Workers, Get Workday Worker Absence, and Get Workday Holiday Events. All default to no-approval. |
| Time Off & Benefits bundle | Four prebuilt workflows: Get User PTO Balance from Workday, Get Workday Eligible Absence Types, Lookup Workday Team Member Time Off Requests, and Get Workday Worker Benefit Elections. All default to no-approval. |
| Write workflows | Two additional prebuilt write workflows: Update Workday Worker Primary Home Phone Number and Update Workday Worker Primary Home Address. Both default to installer-approval. |
| Per-user (as-user) requests | When the optional per-user OAuth app is configured, a user-scoped variant of the REST request action calls Workday as the acting user with their own credential (currently the Request sub-API). The user must have connected their personal Workday account first. |
Get your credentials
Setting up the connection requires a Workday administrator. You will create an Integration System User (ISU), grant it the security it needs, register an API Client for Integrations, and generate a refresh token. Workday’s official API reference is the Workday REST Services Directory.- Service account (required)
- Per-user OAuth (optional)
Create the Integration System User
ServalIntegration). The password cannot contain the characters &, <, or >.Exempt the ISU from password expiration
Create a security group
Serval Integration Group), and add the ISU under Integration System Users.Grant domain security policies
Allow the group to authenticate
Register the API client
Serval Workday API Client), make it a confidential client, enable the Refresh Token grant, allow Non-Expiring Refresh Tokens, and save. Copy the Client ID and Client Secret.Generate the refresh token
Copy the endpoints
/ccx/api/<tenant> - this maps to Serval’s REST API Base URL field) and the Token endpoint (ends with /ccx/oauth2/token - this maps to Serval’s Token Endpoint field).Copy the SOAP WSDL URL
Connect in Serval
Open the Workday connect form
Enter your Tenant Name
mycompany. This becomes the connection’s name in Serval. Saving without it fails with: Invalid Workday configuration: tenant name is requiredEnter the OAuth credentials
Invalid Workday configuration: client ID is required, Invalid Workday configuration: client secret is required, and Invalid Workday configuration: refresh token is requiredEnter the endpoints
https://wd2-impl-services1.workday.com/ccx/api/mycompany. It must start with https:// and contain /ccx/api/ - Serval derives every REST and SOAP endpoint from this one URL. Errors on create: Invalid Workday configuration: REST API base URL is required or Invalid Workday configuration: REST API base URL must start with https://. When editing: REST API base URL must start with https:// or Invalid REST API base URL formatToken Endpoint (required) - for example, https://wd2-impl-services1.workday.com/ccx/oauth2/token. Must start with https://. Errors on create: Invalid Workday configuration: token endpoint is required or Invalid Workday configuration: token endpoint must start with https://. When editing: Token endpoint must start with https:// or Invalid token endpoint formatEnter the SOAP fields
https://wd2-impl-services1.workday.com/ccx/service/amn1/Human_Resources/v28.2. ISU Username (required by the form) - for example, ServalIntegration. ISU Password (required by the form) - stored encrypted.(Optional) Configure per-user OAuth
https://wd2-impl-services1.workday.com/<tenant>/authorize). Leave them blank if this connection only uses the service account. These endpoints are validated when the user OAuth flow runs (not at save): both the authorize and token endpoints must be HTTPS URLs on *.workday.com or *.myworkday.com.Verifying the connection
Four health checks verify the connection on demand: List Workday Workers - lists up to 10 workers through the Staffing API using the service-account credential, verifying REST connectivity and worker-read permissions.- Success:
Successfully listed [number] workers - Failure:
Unable to list workers.- on permission errors (401/403) it addsThe API credentials may be invalid or the integration user may not have the required permissions.; on Workday server errors (500/502/503) it addsWorkday returned a server error. This is likely a temporary issue - please try again later.
- Success:
Successfully listed [number] supervisory organizations - Failure:
Unable to list supervisory organizations.- with the same conditional permission and server-error suffixes as above.
SELECT worker, fullName FROM allWorkers LIMIT 1) to verify Workday Query Language access.
- Success:
Successfully executed WQL query (returned [number] result(s)) - Failure:
Unable to execute WQL query.- with the same conditional permission and server-error suffixes as above.
- Success:
Successfully connected to Workday SOAP API (retrieved [number] worker(s)) - Failure:
Unable to connect to Workday SOAP API.- with SOAP-specific suffixes: on authentication errors,The ISU username or password may be invalid. Please check your integration configuration.; on forbidden errors,The ISU does not have permission to access the Staffing SOAP service. Please check Workday security group assignments.; on WSDL errors,Could not connect to the WSDL URL. Please verify the WSDL URL is correct and accessible.; on connection errors,Could not connect to Workday. Please verify the WSDL URL and network connectivity.; otherwise the generic permission and server-error suffixes.
Gotchas and troubleshooting
Every Workday action suddenly fails at once
Every Workday action suddenly fails at once
The WQL health check fails but everything else passes
The WQL health check fails but everything else passes
The SOAP check fails even though the form saved without errors
The SOAP check fails even though the form saved without errors
The REST API Base URL is the keystone field
The REST API Base URL is the keystone field
/ccx/api/; if it doesn’t, SOAP endpoint derivation fails with an Unexpected API domain format error. If anything looks wrong across the board, verify this field first against the View API Clients task in Workday.Editing the connection cleared a field
Editing the connection cleared a field
Per-user OAuth quirks
Per-user OAuth quirks
*.workday.com or *.myworkday.com, since the client secret travels to these URLs. If someone tries to connect their personal Workday account before the app is configured, the attempt fails with: workday connection has no user-auth OAuth app configured (set the User-Auth OAuth Client ID/Secret). Other endpoint errors include: workday connection is missing the user-auth authorize/token endpoint, workday user-auth authorize endpoint "<url>" must use https, and workday user-auth authorize endpoint "<url>" is not an allowed workday host. An as-user workflow action fails at run time if the acting user has not connected their personal Workday account. User tokens are refreshed only near expiry and always against the exact connection that minted them.Following an older setup guide?
Following an older setup guide?
https://wd2-impl-services1.workday.com/ccx/service/amn1/Human_Resources/v28.2), not a bare /ccx address.Need help? Contact support@serval.com for assistance with your Workday integration.

