UKG Pro WFM
Overview
The UKG Pro WFM connector enables your AI Colleagues to integrate with your organization's UKG Pro Workforce Management platform, facilitating automated time-off management, leave requests, and approval workflows.
UKG Pro Workforce Management (WFM) is a comprehensive workforce management solution that helps organizations manage employee scheduling, time and attendance, and leave management. The UKG Pro WFM connector allows Leena AI to automate leave workflows, manage time-off requests, and interact with the workforce management system seamlessly.
API Details
Leena AI integrates with UKG Pro WFM via REST APIs.
Documentation link: https://developer.ukg.com/home
Setup
The UKG Pro WFM connector supports two authentication methods:
- OAuth 2.0 with Password Credentials (Resource Owner Password Credentials Grant)
- OAuth 2.0 with Authorization Code (Authorization Code Grant)
Prerequisites
Before setting up the UKG Pro WFM connector, ensure you have:
- Administrator access to UKG Pro Workforce Management
- Access to UKG Developer Portal or your tenant's API credentials
- Client ID and Client Secret from your UKG tenant provisioning
- Base URL for your UKG Pro WFM instance
- Access to your Leena AI workspace with connector management permissions
Get credentials
Here is how to obtain the required credentials for UKG Pro WFM:
-
Access Client ID and Client Secret:
- Client ID and Client Secret are provided in a password-protected Excel file
- This file is accessible from your Salesforce account during tenant provisioning
- Contact your UKG account representative if you don't have access
-
Generate App Key (if required):
- Log in to UKG Pro Workforce Management as an administrator
- Navigate to Administration > Developer Console
- Go to Application Setup > Common Setup > My Apps
- Create a new application and note the App Key
- Note: Developer Admin permissions are required
-
Note your Base URL:
- Your Base URL follows the format:
https://<<hostName>>/api - This is specific to your UKG tenant
- Your Base URL follows the format:
Add connection
Here is how to add a connection on Leena AI:
- Log in to your Leena AI workspace
- Navigate to Settings > Integrations
- Search for "UKG Pro WFM" and select it from the list to add its new connector
- Enter the Base URL for your UKG Pro WFM instance
- Select the Auth Type based on your requirements:
For OAuth 2.0 Password Credentials:
- Client ID: Your OAuth application client ID
- Client Secret: Your OAuth application client secret
- Grant Type: Pre-filled as 'password'
- Username: Service account username for API access
- Password: Service account password
For OAuth 2.0 Authorization Code:
- Auth Type: Select 'User OAuth'
- ID Mapping Fields: Pre-filled with 'employeeId'
- Client ID: Your OAuth application client ID
- Client Secret: Your OAuth application client secret
- Grant Type: Pre-filled as 'authorization_code'
- Redirect URI: Auto-generated by Leena AI
- Click Connect to complete the OAuth flow
- For Authorization Code flow:
- You'll be redirected to UKG authorization page
- Sign in with your UKG credentials if prompted
- Authorize the application
- You'll be redirected back to Leena AI with a successful connection
- Copy the Callback URL from Leena AI and add it to your UKG tenant's allowed redirect URIs:
- In UKG, navigate to System settings > Global Values
- Add the Callback URL to
global.oAuth.authCode.redirection.uris
Actions
The following actions are supported for the UKG Pro WFM connector:
Apply Leave
Initiates a new time-off request in UKG Pro WFM. The Agent can leverage the skill (workflow), which has been designed to create a new leave request, once the user raises a query to do so.
Input Parameters
Here are the input parameters required to set up this action:
Mandatory
| Name | Description |
|---|---|
| Employee ID | The unique identifier of the employee requesting time off |
| Subtype | The type of leave request (dynamically populated from UKG) |
| Periods | Array of time-off periods with start date, end date, and duration details |
Periods Array Fields
| Name | Description |
|---|---|
| Start Date | The start date of the time-off period (format: YYYY-MM-DD) |
| End Date | The end date of the time-off period (format: YYYY-MM-DD) |
| Symbolic Amount | Duration type: HOURS or FULL_DAY |
| Start Time | Start time for hourly requests (format: HH:mm:ss) - Required when Symbolic Amount is HOURS |
| End Time | End time for hourly requests (format: HH:mm:ss) - Required when Symbolic Amount is HOURS |
| Paycode | The paycode for the time-off (dynamically populated based on selected Subtype) |
Here is a sample JSON input:
{
"params": {
"person_number": "EMP001"
},
"payload": {
"requestSubType": {
"id": "VACATION"
},
"periods": [
{
"startDate": "2025-08-27",
"endDate": "2025-08-28",
"symbolicAmount": {
"qualifier": "FULL_DAY"
},
"payCode": {
"id": "VAC_PAY"
}
}
]
}
}Response
Upon successful creation, the action returns:
- Request ID
- Request status
- Confirmation of submitted periods
Get Leave Balance
Retrieves the time-off balance for an employee from UKG Pro WFM. This action can be leveraged by Leena AI Orchestrator/Agent to check available leave balance for a specific leave type.
Input Parameters
Here are the input parameters required to set up this action:
Mandatory
| Name | Description |
|---|---|
| Subtype | The type of leave to check balance for (dynamically populated from UKG) |
Optional
| Name | Description |
|---|---|
| Date | The date for which to retrieve the balance (defaults to current date, format: YYYY-MM-DD) |
Here is a sample JSON input:
{
"params": {
"subtype_id": "VACATION",
"date": "2025-08-27"
}
}Response
The action returns the leave balance details including:
- Available balance
- Accrued amount
- Used amount
- Balance as of the specified date
Get Leave History
Retrieves a list of time-off requests for an employee within a specified date range. This action can be leveraged to view past and upcoming leave requests.
Input Parameters
Here are the input parameters required to set up this action:
Mandatory
| Name | Description |
|---|---|
| Employee ID | The unique identifier of the employee |
| Start Date | The start date of the search range (format: YYYY-MM-DD) |
| End Date | The end date of the search range (format: YYYY-MM-DD) |
Here is a sample JSON input:
{
"params": {
"person_number": "EMP001"
},
"payload": {
"dateRange": {
"startDate": "2025-01-01",
"endDate": "2025-12-31"
}
}
}Response
The action returns a list of time-off requests, each containing:
- Request ID
- Request status
- Leave type
- Start and end dates
- Duration
- Approval status
Update Leave Status
Updates the status of an existing time-off request. The Agent can leverage this action to cancel a pending leave request.
Input Parameters
Here are the input parameters required to set up this action:
Mandatory
| Name | Description |
|---|---|
| Time Off Request ID | The unique identifier of the time-off request to update |
| Status | The new status for the request (e.g., Cancelled) |
Here is a sample JSON input:
{
"payload": {
"id": "TOR123456",
"toStatus": {
"qualifier": "Cancelled"
}
}
}Response
Upon successful update, the action returns:
- Updated request status
- Confirmation message
- Timestamp of the update
Get Manager Approval Leave Requests
Retrieves pending time-off requests that require manager approval. This action is designed for managers to view all pending leave requests from their team members.
Input Parameters
Here are the input parameters required to set up this action:
Optional
| Name | Description |
|---|---|
| Employee IDs | Comma-separated list of employee IDs to filter requests |
| Start Date | Filter requests starting from this date (format: YYYY-MM-DD) |
| End Date | Filter requests up to this date (format: YYYY-MM-DD) |
Here is a sample JSON input:
{
"params": {
"include_overridden_shifts": true,
"completion_state": "COMPLETE"
},
"payload": {
"employeeIds": "EMP001,EMP002,EMP003",
"dateRange": {
"startDate": "2025-01-01",
"endDate": "2025-12-31"
}
}
}Response
The action returns a list of pending approval requests, each containing:
- Request ID
- Employee information
- Leave type
- Requested dates
- Duration
- Current status
Apply Leave As Manager
Allows a manager to submit a time-off request on behalf of an employee. This action includes additional validation controls and override options.
Input Parameters
Here are the input parameters required to set up this action:
Mandatory
| Name | Description |
|---|---|
| Employee ID | The unique identifier of the employee |
| Employee Qualifier | The type of employee identifier being used |
| Subtype | The type of leave request (dynamically populated from UKG) |
| Periods | Array of time-off periods with start date, end date, and duration details |
Optional
| Name | Description |
|---|---|
| Override Accrual Warnings | Whether to override accrual warning messages |
| Skip Accrual Validation | Whether to skip accrual balance validation |
Periods Array Fields
| Name | Description |
|---|---|
| Start Date | The start date of the time-off period (format: YYYY-MM-DD) |
| End Date | The end date of the time-off period (format: YYYY-MM-DD) |
| Symbolic Amount | Duration type: HOURS or FULL_DAY |
| Start Time | Start time for hourly requests (format: HH:mm:ss) |
| End Time | End time for hourly requests (format: HH:mm:ss) |
| Paycode ID | The paycode identifier for the time-off |
| Paycode Qualifier | The paycode qualifier type |
Here is a sample JSON input:
{
"payload": {
"employee": {
"id": "EMP001",
"qualifier": "PERSON_NUMBER"
},
"requestSubType": {
"id": "SICK_LEAVE"
},
"overrideAccrualWarnings": false,
"skipAccrualValidation": false,
"periods": [
{
"startDate": "2025-08-27",
"endDate": "2025-08-27",
"symbolicAmount": {
"qualifier": "FULL_DAY"
},
"payCode": {
"id": "SICK_PAY",
"qualifier": "PAY_CODE_NAME"
}
}
]
}
}Response
Upon successful creation, the action returns:
- Request ID
- Request status
- Employee notification status
- Submitted period details
Update Leave Status As Manager
Allows a manager to update the status of an employee's time-off request. This action provides flexibility in setting various status values for approval workflows.
Input Parameters
Here are the input parameters required to set up this action:
Mandatory
| Name | Description |
|---|---|
| Time Off Request ID | The unique identifier of the time-off request to update |
| Status Key | The status field to update |
| Status Value | The new value for the status field |
Here is a sample JSON input:
{
"payload": {
"id": "TOR123456",
"statusKey": "qualifier",
"statusValue": "Approved"
}
}Response
Upon successful update, the action returns:
- Updated request details
- New status confirmation
- Timestamp of the action
Updated 1 day ago
