Workday
Workday Connector Documentation
Overview
The Workday connector enables seamless integration between Leena AI and Workday's cloud-based Human Capital Management suite. This connector allows you to automate HR workflows, manage employee data, process time-off requests, and handle business process approvals directly from your Leena AI workspace using Workday REST APIs.
Integration Details
Leena AI integrates with Workday using Workday Community REST APIs.
Supported Workday REST Version: v1
Prerequisites
Before setting up the Workday connector, ensure you have:
- Administrator access to your Workday organization
- Access to Workday with sufficient permissions to create Integration System Users
- Ability to register API clients and generate tokens in Workday
- Access to your Leena AI workspace with connector management permissions
Setup Instructions
Before You Begin
Before integrating with Workday, we strongly recommend using an Integration System User (ISU). Using an ISU ensures that all integration operations are logged under a designated user, separate from regular workflow processes.
Note: If your integration involves custom objects in Workday, you must register a Workday API client as the Workday REST API requires authentication through an OAuth client setup.
Step 1: Create Integration System User (ISU)
Your Integration System User must be assigned the required permissions to create a successful integration. You may receive a 403 error during integration if your ISU has insufficient permissions.
- Type Create Integration System User into Workday's search bar and select the task
- Enter a username and set a password in the Create Integration System User task
- Set Session Timeout Minutes to 0 to prevent the ISU from timing out
- Select the Do Not Allow UI Sessions checkbox to enhance security by restricting UI logins
- Navigate to the Maintain Password Rules task
- Exempt the integration system user from password expiration by adding them to the System Users exempt from password expiration field
Step 2: Create Integration Security Group
To set up a security group for your integration, complete the following steps:
- Search for Create Security Group in Workday and select the corresponding task
- Locate the Type of Tenanted Security Group field and select your security group type:
- Integration System Security Group (Unconstrained): Allows group members to access all data instances secured by the group
- Integration System Security Group (Constrained): Grants access to a subset of data instances based on context
Note: Contact your Workday integration partner before selecting an option to ensure the appropriate security group type is used.
- Name your security group
- Assign the Integration System User (ISU) you created in Step 1 as a member
- For constrained groups, specify the organization scope
Step 3: Grant Domain Access to Security Group
- Search for Maintain Permissions for Security Group in Workday and select the task
- Choose the security group you created from the Source Security Group list
- Go to the Domain Security Policy Permissions tab
- Assign necessary permissions for each domain (e.g., GET and PUT operations)
- Ensure the security group has GET permissions for the following domain security policies:
- Integration Build
- Integration Process
- Integration Debug
- Integration Event
Step 4: Activate Security Policy Changes
- Type Activate Pending Security Policy Changes into Workday's search box and select the task
- Enter a reason for your audit in the comment field, then click OK
- On the next screen, select the Confirm checkbox, then click OK
Step 5: Register API Client for Integrations (Required for Custom Objects)
This step is only required if you plan to work with custom objects in Workday.
Prerequisites:
- Admin access to your company's Workday account
- Integration System User (ISU) authenticated with GET and View access enabled
Steps:
- Search for Register API Client for Integrations in Workday's search field
- Select the task to access the registration page
- Enter a name for your API client in the Client Name field
- Select the Non-Expiring Refresh Tokens option
- Specify the scope of access for the API client. Ensure to include the Integration scope, which covers:
- Integration Build
- Integration Debug
- Integration Process
- Integration Event
- Click OK to generate the Client ID and Client Secret
- Save the Client Secret and Client ID securely
- Click Done
Step 6: Generate Non-Expiring Refresh Token
- Type View API Clients in the search field in Workday
- Open the View API Clients report from the search results
- Navigate to the API Clients for Integrations tab
- Select the API client you registered in Step 5
- Click the ellipsis (...) next to the client name and choose API Client > Manage Refresh Tokens for Integrations
- Input the Workday account of a user authorized to access the custom report in the Workday Account field
- Click OK
- Navigate to the Delete or Regenerate Refresh Token page and select Generate New Refresh Token
- Click OK
- Copy the refresh token from the Successfully Regenerated Refresh Token page
- Click Done to complete the process
Step 7: Find Your Token Endpoint URL
- Enter View API Clients into the search field in Workday
- Access the View API Clients report from the search results
- Save the URL listed in the Token Endpoint field
Step 8: Find Your WSDL/Base URL
- In the search bar, search for and click Public Web Services
- At the top of the page, click the more options menu beside Public Web Services
- In the drop-down menu, hover over Web Service, then click View WSDL
- Copy the WSDL URL
Step 9: Identify Your Tenant ID
Your tenant ID can be fetched from your Workday login URL.
Example: If your URL is https://impl.wd12.myworkday.com/leenaai_dpt1/d/home.htmld, the tenant ID is leenaai_dpt1 (the ID after the base URL).
Step 10: Configure Workday Connector in Leena AI
-
Log in to your Leena AI workspace
-
Navigate to Settings > Integrations
-
Search for "Workday" and select it from the list
-
Choose one of the two authentication types:
Option A: Workday OAuth 2.0 (Recommended)
| Parameter | Description | Example |
|---|---|---|
| WSDL/Base URL | The WSDL/base URL for all API endpoints (from Step 8) | https://wd12-impl-services1.workday.com/ccx/service/... |
| Tenant ID | Your Workday tenant ID (from Step 9) | leenaai_dpt1 |
| Client ID | Client ID generated in Step 5 | (your client ID) |
| Client Secret | Client Secret generated in Step 5 | (your client secret) |
| Refresh Token | Non-expiring refresh token from Step 6 | (your refresh token) |
Option B: Basic Authentication
| Parameter | Description | Example |
|---|---|---|
| WSDL URL | The WSDL/base URL for all API endpoints (from Step 8) | https://wd12-impl-services1.workday.com/ccx/service/... |
| Username | Admin username with REST API execution permissions | admin@company |
| Password | Admin password with domain access for REST APIs | (your password) |
Note: The admin user must have access to the domain to which the REST API/action is associated.
Supported Actions
Time-Off Management
Get Time-Off Balances
Retrieve time-off balances for all assigned time-off/leave types for a worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| Category | The time-off type category | Jury Duty |
| Effective from | Date from which balances are effective | 2025-01-08 |
| Worker | Worker ID for whom to fetch balances | 071a30bde95e1001446b7f714f300000 |
| Limit | Maximum number of results (for pagination) | 100 |
| Offset | Starting index of records | 100 |
Get Eligible Absence Types
Fetch applicable/eligible absence types for a specific worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| Category | Pre-defined broader category of absence types | Leave of Absence type |
| Effective from | Date from which absence types are effective | 2025-01-08 |
| Worker | Worker for whom to fetch eligible absence types | 071a30bde95e1001446b7f714f300000 |
| Limit | Maximum number of results (for pagination) | 100 |
| Offset | Starting index of records | 100 |
Get Time-Off Details
Retrieve applied time-off details for a worker. Can be used to view or cancel applied time-offs.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| Time-off type | Fetch requests by type (optional) | Vacation (Hours) |
| Status | Fetch requests by status (optional) | Approved |
| Worker | Worker for whom to fetch applied time-offs | 071a30bde95e1001446b7f714f300000 |
| From Date | Date after which time-off requests were applied | 2025-01-01 |
| To Date | Date before which time-off requests were applied | 2025-01-10 |
| Limit | Maximum number of results (for pagination) | 100 |
| Offset | Starting index of records | 100 |
Request Time-Off
Raise time-off requests for a specific worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| Time-off type ID | Unique time-off ID for the request | e7363fe834bd4c2883d36652ac6c979a |
| Time-off type descriptor | Label of the time-off type | Vacation (Hours) |
| Daily quantity | Total units (days/hours) for the request | 4 |
| Worker | Worker for whom to apply time-off | 071a30bde95e1001446b7f714f300000 |
| Dates | Dates for which time-off is requested | 2025-01-01, 2025-01-02, 2025-01-03, 2025-01-04 |
| Comment | Comment for the time-off request (optional) | |
| Attachments | Supporting attachments (optional) | |
| Description | Description of the request (optional) |
Get Holidays
Retrieve assigned/eligible holidays for a worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| From Date | Date after which to fetch holiday events | 2025-01-01 |
| To Date | Date before which to fetch holiday events | 2025-01-08 |
| Worker | Worker for whom to fetch holiday events | 071a30bde95e1001446b7f714f300000 |
| Limit | Maximum number of results (for pagination) | 10 |
| Offset | Starting index of records | 10 |
Worker Information Management
Get Workers
Retrieve a list of all workers in your Workday organization.
Get Additional Names
Retrieve additional names specific to a worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| ID type | Type of ID (Worker ID or Person ID) | 071a30bde95e1001446b7f714f300000 |
| Limit | Maximum number of results (for pagination) | 100 |
| Offset | Starting index of records | 100 |
Note: Most transactions associate a user via Worker ID, but Person ID can be used for fetching and updating profiles.
Get Home Addresses
Retrieve all home addresses for a worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| ID type | Type of ID (Worker ID or Person ID) | 071a30bde95e1001446b7f714f300000 |
| Limit | Maximum number of results (for pagination) | 100 |
| Offset | Starting index of records | 100 |
| Is only Primary? | Fetch only primary home addresses | True |
| Is only Public? | Fetch only public home addresses | True |
Get Work Addresses
Retrieve work addresses for a worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| ID type | Type of ID (Worker ID or Person ID) | 071a30bde95e1001446b7f714f300000 |
| Limit | Maximum number of results (for pagination) | 100 |
| Offset | Starting index of records | 100 |
Get Home Emails
Retrieve all home emails for a worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| ID type | Type of ID (Worker ID or Person ID) | 071a30bde95e1001446b7f714f300000 |
| Limit | Maximum number of results (for pagination) | 100 |
| Offset | Starting index of records | 100 |
| Is only Primary? | Fetch only primary home emails | True |
| Is only Public? | Fetch only public home emails | True |
Get Work Emails
Retrieve work emails for a worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| ID type | Type of ID (Worker ID or Person ID) | 071a30bde95e1001446b7f714f300000 |
| Limit | Maximum number of results (for pagination) | 100 |
| Offset | Starting index of records | 100 |
Get Home Phones
Retrieve all home phone numbers for a worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| ID type | Type of ID (Worker ID or Person ID) | 071a30bde95e1001446b7f714f300000 |
| Limit | Maximum number of results (for pagination) | 10 |
| Offset | Starting index of records | 10 |
| Is only Primary? | Fetch only primary home phones | True |
| Is only Public? | Fetch only public home phones | True |
Get Work Phones
Retrieve work phone numbers for a worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| ID type | Type of ID (Worker ID or Person ID) | 071a30bde95e1001446b7f714f300000 |
| Limit | Maximum number of results (for pagination) | 10 |
| Offset | Starting index of records | 10 |
Get Personal Information
Retrieve personal information for a worker, including:
-
Marital Status (date, status, location)
-
Gender
-
Date of Birth
-
Ethnicities for Visual Display
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| ID type | Type of ID (Worker ID or Person ID) | 071a30bde95e1001446b7f714f300000 |
| Limit | Maximum number of results (for pagination) | 100 |
| Offset | Starting index of records | 100 |
Get Payslips
Retrieve all payslips for a worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| Worker ID | Worker for whom to fetch payslips | 071a30bde95e1001446b7f714f300000 |
| Limit | Maximum number of results (for pagination) | 100 |
| Offset | Starting index of records | 100 |
Update Worker Information
Update Home Addresses
Update or upsert home addresses for a worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| Worker ID | Unique ID of the worker | 071a30bde95e1001446b7f714f300000 |
| Addresses | Multiple addresses to be updated with: Postal Code, City, Country Region, Address Line 1, Address Line 2 | |
| Addresses > Sub Resource ID | Auto-generated for new records. Use existing ID to update records |
Update Home Emails
Update or upsert home emails for a worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| Worker ID | Unique ID of the worker | 071a30bde95e1001446b7f714f300000 |
| Emails | Multiple emails to be updated with: Email ID, Comment, Sub-resource ID | |
| Public | Make email visible to all users viewing the profile | True |
| Primary | Set email as primary | True |
| Emails > Sub Resource ID | Auto-generated for new records. Use existing ID to update records |
Update Work Emails
Update or upsert work emails for a worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| Worker ID | Unique ID of the worker | 071a30bde95e1001446b7f714f300000 |
| Emails | Multiple emails to be updated with: Email ID, Comment, Sub-resource ID | |
| Public | Make email visible to all users viewing the profile | True |
| Primary | Set email as primary | True |
| Emails > Sub Resource ID | Auto-generated for new records. Use existing ID to update records |
Update Home Phones
Update or upsert home phone numbers for a worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| Worker ID | Unique ID of the worker | 071a30bde95e1001446b7f714f300000 |
| Phones | Multiple phones to be updated with: Phone ID, Phone number, Sub-resource ID | |
| Phones > Sub Resource ID | Auto-generated for new records. Use existing ID to update records |
Update Work Phones
Update or upsert work phone numbers for a worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| Worker ID | Unique ID of the worker | 071a30bde95e1001446b7f714f300000 |
| Phones | Multiple phones to be updated with: Phone ID, Phone number, Sub-resource ID | |
| Phones > Sub Resource ID | Auto-generated for new records. Use existing ID to update records |
Update Work Addresses
Update or upsert work addresses for a worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| Worker ID | Unique ID of the worker | 071a30bde95e1001446b7f714f300000 |
| Addresses | Multiple addresses to be updated with: Postal Code, City, Country Region, Address Line 1, Address Line 2 | |
| Addresses > Sub Resource ID | Auto-generated for new records. Use existing ID to update records |
Business Process Management
Retrieve Business Process Events
Fetch all initiations/events for a specific business process. For example, 'Request time-off' is a business process with events such as 'Request time-off: Alex Garcia', 'Request time-off: Leah Wang', etc.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| Business Process ID | Unique Workday ID for the business process | b67962ce79ab449988f67ccb3e4dfa5c |
| Limit | Maximum number of results (for pagination) | 100 |
| Offset | Starting index of records | 100 |
| Created on/after | Date after which the business process was created | 2022-01-01 |
| Created on/before | Date before which the business process was created | |
| Initiated on/after | Date after which events were initiated | 2025-01-10 |
| Initiated on/before | Date before which events were initiated | |
| Worker | Worker for whom events were initiated (Worker ID) | b67962ce79ab449988f67cc123wesf4c |
| Initiator | Initiator who initiated events (Worker ID) | b67962ce79ab449988f67ccb3e40000 |
| Status | Overall status of the event | In progress, Completed |
Retrieve Business Process Steps
Fetch steps for a specific business process event. Can be used to get the status of tasks/steps for a business process event (such as approval of a time-off request) for a worker.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| Business Process event ID | Unique ID for the business process event | 071a30bde95e1001446b7f714f300000 |
| Type | Status of the step to filter results | In Progress |
| Limit | Maximum number of results (for pagination) | 100 |
| Offset | Starting index of records | 100 |
Send Back a Step
Act upon a step in a business process event and send the process back to another step as per its definition.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| Step ID | Unique Workday ID for the BP event's current step | b67962ce79ab449988f67ccb3e4dfa5c |
| Reason | Reason for sending back request to another step | |
| Sendback to ID | Unique Workday ID of the BP event's step to send back to | b67962ce79ab449988f67ccb3e4df23w |
Cancel a Business Process Event
Cancel a business process event. This action can be used when requests such as time-off requests need to be cancelled on behalf of the requester.
Input Fields:
| Parameter | Description | Example |
|---|---|---|
| Event ID | Unique Workday ID for the BP event | b67962ce79ab449988f67ccb3e4dfa5c |
| Comment | Comment for cancelling the business process event |
Use Cases
Time-Off Request Automation
Scenario: Employee requests to apply for time-off via virtual assistant
Workflow:
- Employee initiates time-off request through Leena AI Virtual Assistant
- Orchestrator retrieves eligible absence types and balances
- Employee selects time-off type and dates
- System submits time-off request to Workday
- Employee can track approval status through business process events
Actions Used:
- Get Eligible Absence Types
- Get Time-Off Balances
- Request Time-Off
- Retrieve Business Process Events
- Retrieve Business Process Steps
Employee Self-Service Profile Management
Scenario: Employee needs to view and update personal details
Workflow:
- Employee requests to view profile details via virtual assistant
- System retrieves current home emails, addresses, and phone numbers
- Employee reviews information and requests updates
- Virtual assistant assists in updating details directly in Workday
Actions Used:
- Get Home Addresses
- Get Home Emails
- Get Home Phones
- Update Home Emails
- Update Home Phones
- Update Home Addresses
Payroll Issue Resolution
Scenario: Employee raises a payout-related issue
Workflow:
- Employee reports payroll discrepancy to virtual assistant
- Orchestrator fetches employee's payslips
- System presents payslip information for review
- Employee and HR can address the issue with complete payment history
Actions Used:
- Get Payslips
- Get Personal Information
Holiday Planning and Verification
Scenario: Employee planning time-off around holidays
Workflow:
- Employee requests to view upcoming holidays
- System retrieves applicable holiday events
- Employee requests time-off avoiding holiday conflicts
- System validates dates against holiday calendar before submitting
Actions Used:
- Get Holidays
- Get Time-Off Balances
- Request Time-Off
Business Process Approval Management
Scenario: Manager needs to approve time-off requests
Workflow:
- Manager receives notification of pending approvals
- System retrieves business process events requiring action
- Manager reviews event details and steps
- Manager approves or denies event steps directly through virtual assistant
Actions Used:
- Retrieve Business Process Events
- Retrieve Business Process Steps
- Get Event Details
- Approve Event Step
- Deny Event Step
Troubleshooting
Common Issues
403 Forbidden Error
- Verify your Integration System User has sufficient permissions
- Check that domain security policies are properly assigned
- Ensure security policy changes have been activated
- Confirm the ISU is a member of the integration security group
Authentication Failed
- For OAuth: Verify Client ID, Client Secret, and Refresh Token are correct
- For Basic Auth: Confirm username and password have proper domain access
- Check that your WSDL/Base URL is correct and starts with 'https://'
- Verify Tenant ID matches your Workday login URL
Invalid Token Error
- Ensure refresh token hasn't expired (should be non-expiring)
- Regenerate refresh token following Step 6 if necessary
- Verify token endpoint URL is correct
Worker/Record Not Found
- Confirm Worker ID or Person ID format is correct
- Check that you're using the appropriate ID type for the action
- Verify the user exists in Workday
Missing Data in Response
- Check pagination parameters (Limit and Offset)
- Verify filter criteria aren't too restrictive
- Ensure date ranges are appropriate for the query
Permission Denied on Specific Actions
- Review domain security policies assigned to your integration security group
- Confirm GET and PUT permissions are enabled as needed
- Check that ISU has access to required domains
Security Best Practices
- Use Integration System Users (ISU): Always use an ISU for integration operations to maintain clear audit trails
- Disable UI Sessions: Keep "Do Not Allow UI Sessions" enabled for ISUs to prevent unauthorized access
- Session Timeout: Set session timeout to 0 for ISUs to prevent unexpected disconnections
- Non-Expiring Tokens: Use non-expiring refresh tokens and store them securely
- Least Privilege Principle: Grant only the minimum required permissions to your integration security group
- Regular Audits: Monitor integration activity through Workday's audit logs
- Secure Credentials: Never share API credentials, Client Secrets, or Refresh Tokens
- Password Exemption: Exempt ISU from password expiration policies
- Constrained Security Groups: Use constrained security groups when access should be limited to specific organizational scopes
- Token Rotation: While using non-expiring tokens, establish a policy for periodic token regeneration
- API Scope Management: Only include necessary scopes when registering API clients
Support
For additional assistance with the Workday connector:
- Contact your Leena AI support team
- Consult your Workday integration partner for security group configuration
- Refer to Workday Community documentation for REST API details
- Check Leena AI knowledge base for connector updates and troubleshooting guides
Last Updated: November 2025
Updated about 19 hours ago
