The Workday integration connects your Atomicwork workspace to Workday's Human Capital Management (HCM) module. This integration focuses on Leave Management, such as leave balances and time off requests, and Staffing, which includes employee details.
You can also sync employee data from Workday with Atomicwork.
Prerequisites
Before you connect Workday to Atomicwork, prepare a dedicated Integration System User (ISU), create an integration security group, register an API client, and grant and activate the required domain permissions. You must have Security Administrator access in Workday, or equivalent permissions, to complete these setup tasks.
Field | Description |
Client ID | The OAuth 2.0 Client ID from the Workday API Client registration |
Client Secret | The OAuth 2.0 Client Secret from the Workday API Client registration |
Tenant Name | The Workday tenant name (e.g., |
REST API Base URL | The base URL for Workday REST APIs (Look at the URL you use to access Workday. If your login URL is |
Authorization Base URL | The base URL for Workday OAuth authorization (e.g., |
Step 1: Create the Integration System User (ISU)
The ISU is the dedicated service account behind the integration. Workday API calls, including user sync and leave or staffing actions, run under this account. Using a dedicated ISU keeps the integration independent of any personal user account.
In Workday, search for and open the Create Integration System User task.
Enter a user name, such as
ISU_Atomicwork.Set a strong password and store the credentials securely. You need these credentials during authorization.
Set Session Timeout Minutes to
0.Leave Require New Password at Next Sign In unchecked.
Leave Do Not Allow UI Sessions unchecked. The account must be able to sign in through the browser during authorization.
Click OK.
Step 2: Create the Security Group and add the ISU
An ISU has no access on its own. Workday permissions are granted to a security group, and the ISU inherits those permissions by being a member of the group.
In Workday, search for and open the Create Security Group task.
Set Type of Tenanted Security Group to Integration System Security Group (Unconstrained). Unconstrained access is required so the integration can access all workers, not only workers in specific organizations.
Enter a name, such as
ISSG_Atomicwork, and click OK.On the next screen, add your ISU, such as
ISU_Atomicwork, under Integration System Users.Click OK, then click Done.
Step 3: Register the API Client
Follow these steps in order to register an API client in Workday so Atomicwork can connect to your tenant. You'll need an account with administrator or integration security permissions for the Register API Client task to appear in Workday search.
Open the API Client task. In Workday, search for and open the Register API Client task. This opens the Edit API Client screen where you'll enter everything below.
Enter a Client Name. In the Client Name field, type `Atomicwork` (or any label you'll recognize later).
Choose the grant type. In Client Grant Type, select Authorization Code Grant. This is the OAuth flow Atomicwork uses to connect.
Set the access token type. In Access Token Type, select Bearer.
Enter the Redirection URI. In the Redirection URI field, enter: https://esd.atomicwork.com/api/external-oauth/public/install
Enter it exactly as shown — it must match Atomicwork's value precisely, or the connection will fail.
Add the scopes for the capabilities you want. In Scope (Functional Areas), add scopes based on which Atomicwork capabilities you plan to use. You can start with what you need and add more later.
For user / employee sync, add:
Scope | Purpose |
Staffing | Worker details and list workers |
System | Required for WQL, which user sync uses to retrieve worker attributes |
For common actions, add the scopes that match the actions you plan to use:
Capability | Scope to add |
Apply for leave / request time off, including leave balances, eligible absence types, and valid time-off dates | Time Off and Leave |
Update / read user details | Staffing |
Add only the scopes for the features you intend to use. If a required scope is missing, the related capability will fail. To enable user sync, add both Staffing and System.
8. Enable the three required checkboxes. Check each of these boxes:
Non-Expiring Refresh Tokens — keeps the connection alive so it doesn't need re-authorizing later.
Grant Administrative Consent — approves the integration for the whole org so individual users aren't prompted.
Include Workday Owned Scope — required for the scopes in Step 6 to work fully.
9. Leave everything else at its default. Don't change any of the following — leave them unchecked or empty:
Support Proof Key for Code Exchange (PKCE) — unchecked
Allow User Delegation — unchecked
Enforce Customized Access Token Expiry — unchecked
Allow Integration Messages — unchecked
Disabled — unchecked (this switch turns the client off; leaving it off keeps the client active)
Locked Out due to Excessive Failed Signon Attempts — unchecked
Restricted to IP Ranges — empty
x509 Certificate — empty
Refresh Token Timeout (in days) — leave as `0`
10. Save. Click OK to save the API client. Workday will display the generated Client ID and Client Secret — copy the Client Secret now, as it is shown only once.
Step 4: Grant Domain Permissions and Activate
API client scopes control what the integration is allowed to request. Domain permissions are a separate Workday control that determines what data the ISU is allowed to read. Workday requires both, so grant the matching domain permissions to the security group you created.
In Workday, search for and open the Maintain Permissions for Security Group task.
Select your security group, such as
ISSG_Atomicwork, set Operation to Maintain, and click OK.On the Domain Security Policy Permissions tab, add the domains for the capabilities you are using. Add one domain per row, then activate the changes at the end.
For user / employee sync, add these domains with Get access:
Domain | Access |
Workday Query Language (enables WQL itself) | Get |
Worker Data: Public Worker Reports | Get |
Worker Data: Workers | Get |
Worker Data: Current Staffing Information | Get |
Person Data: Personal Data | Get |
Person Data: Work Contact Information | Get |
Person Data: Home Contact Information | Get |
For other actions, such as leave, time-off, worker details, and similar actions, grant the tenant-specific domains those actions require. If an action is denied, the Workday error names the domain to add. You can also run View Security for Securable Item on the relevant web service to identify the exact domain an action needs.
Click OK.
Search for and open Activate Pending Security Policy Changes, enter a comment, tick Confirm, and click OK.
Permission changes remain inactive until activation is complete.
Step 5: Connect Workday in Atomicwork
Once your Workday environment is prepared, you can connect it to your workspace.
Navigate to Settings > App store > Workday.
Click Connect button.
Enter your Client ID, Client Secret, Tenant Name, REST API Base URL, and Authorization Base URL.
You are redirected to Workday's authorization page. Sign in with the username and password of the ISU you created in Step 1 — for example ISU_Atomicwork (or ISU_Atomicwork@<tenant> if prompted) — not a personal account, then grant consent. This binds the integration to the ISU so all API calls run under it.
After granting consent, you are redirected back to Atomicwork, and the connection is established automatically.
The REST API Base URL, Authorization Base URL and Tenant Name all come from the endpoint rows near the bottom of the page. The page shows them like this:
Workday REST API Endpoint: https://wd2-impl services1.workday.com/ccx/api/v1/ibmsrv_pt1
Authorization Endpoint: https://impl.workday.com/ibmsrv_pt1/authorize`
Read the values off those rows:
Tenant name is the last word of the Workday REST API Endpoint
REST API Base URL is the Workday REST API Endpoint, keeping only the website address (everything after `.com` is removed).For example, if your REST API Endpoint is `https://wd2-impl- services1.workday.com`~~/ccx/api/v1/ibmsrv_pt1~~ → enter **`https://wd2-impl-services1.workday.com`
Authorization Base URL is the Authorization Endpoint, keeping only the website address. For example, if it's `https://impl.workday.com`~~/ibmsrv_pt1/authorize~~, then enter `https://impl.workday.com`**
In short: for both base URLs, keep only up to `.com` and delete everything after it (the struck-through part above). The tenant name is the short code repeated in those URLs.
Supported actions and modules
After connecting, the integration supports three configurable feature modules: Absence Management, Team Management, and Time Tracking. These modules enable the following actions in your workflows:
Get leave balances: Retrieves leave balances for a specific worker.
Get eligible leave types: Retrieves eligible absence types for a specific worker, filterable by category.
Apply for time off: Submits a time off request for a specific worker, supporting multiple dates.
Get worker details: Retrieves detailed information including job, location, and organization data.
Get valid time off dates: Validates which dates are valid for time off for a specific worker.
List workers: Retrieves a list of all workers with optional search and pagination.
Call API: Executes a generic API call to any Workday endpoint for custom operations.
Troubleshooting common issues
Worker not found: The worker ID is a Workday internal UUID, not the employee number. Use the List Workers action to find the correct UUID.
Leave type requires reason: Some leave types require a reason. Use the Get Eligible Leave Types action to check if a reason is required and provide the reason ID.
Position-based leave type: Some leave types require a position ID. Use the Get Leave Balances action to find the position ID associated with the worker.
Token expired: If the refresh token expires due to prolonged inactivity, you must reconnect the integration in Atomicwork.
