UKG Pro HCM
Overview
UKG Pro HCM (formerly UltiPro) is a cloud-based human capital management suite from UKG that covers core HR, payroll, talent and workforce management. Organizations use it as the system of record for employee personal data, job and compensation information, tax locations and employment lifecycle events such as job changes and terminations.
The Leena AI UKG Pro HCM connector lets your AI Colleague read and update employee data in UKG Pro. You can look up an employee's contacts, personal details, employment and compensation details, pay statements and recent changes, and you can submit updates (name and address, SSN, private information, job and salary, work location, and terminations) through the UKG Pro Import Tool, then check the status of those updates.
API Details
Leena AI integrates with UKG Pro HCM via the UKG Pro REST APIs (Personnel, Payroll and Import Tool APIs).
Documentation link: https://developer.ukg.com/hcm/reference
Setup
Prerequisites
Before you set up the connection, make sure you have:
- Access to UKG Pro with permissions to create or manage web service (service) accounts, or a UKG Pro administrator who can do this for you.
- A UKG Pro web service account (username and password) that is allowed to call the web services used by this connector:
- Personnel APIs (person details, contacts, employment details, compensation details, employee changes, Import Tool).
- Payroll APIs (employee pay statements), if you plan to use Get employee payroll data.
- Configuration APIs (code tables, jobs, locations, org levels, shift codes). Leena AI uses these to load dropdown options such as job codes, locations and termination reasons in the action forms.
- Your tenant's Customer API key (sent as the
US-CUSTOMER-API-KEYheader). - Your tenant's UKG Pro API base URL (for example,
https://servicet.ultipro.com). The host differs by tenant and environment, so confirm it with your UKG Pro administrator.
Get credentials
- Sign in to UKG Pro as an administrator.
- Open the web services administration area (typically Menu > System Configuration > Security > Web Services or Service Account Administration).
- Note the Customer API Key shown for your tenant. This is the value for US-customer-API-KEY in Leena AI.
- Create a service account (or use an existing one) and grant it access to the web services listed in the prerequisites. Give it View access for the read actions and Add/Change access for the services behind the update actions (Import Tool).
- Note the service account's username and password.
- Confirm your tenant's API Base URL (the host part of your UKG Pro web services endpoint, for example
https://servicet.ultipro.com).
Least privilegeGrant the service account only the web services needed for the actions you plan to use. For example, if you only use read actions, do not give it Import Tool access.
Add connection
- Log in to your Leena AI workspace
- Navigate to Settings > Integrations, search for "UKG Pro HCM" and select it to add a new connector
- For Auth type, select Username and password.
- Fill in the fields:
| Field | Description |
|---|---|
| Base URL | UKG Pro API base URL, e.g. https://servicet.ultipro.com. Required. Must start with http:// or https:// and contain a domain with at least one dot. |
| Username | Username of the UKG Pro web service account. Required. |
| Password | Password of the web service account. Required. Stored as a secret. |
| US-customer-API-KEY | Your tenant's customer API key. Required. Stored as a secret. |
- Save the connection and run Test connection.
Leena AI authenticates every request with HTTP Basic authentication (username and password) and sends the customer API key in the US-CUSTOMER-API-KEY header. All actions and dropdowns call the Base URL saved on the connection. If no Base URL is saved (for example, on connections created before the field was added), they use https://servicet.ultipro.com.
Test connection
Test connection makes a lightweight call to the UKG Pro person-details API (one record), using the Base URL, username, password and customer API key on the connection. Possible results:
- Success: "Connection test (Username and password) was successful. The connection is working properly."
- Missing credentials: "Missing required credentials (Username, Password, US-CUSTOMER-API-KEY)."
- Wrong Base URL or customer API key: "The UKG Pro API could not be reached with the provided details. Please verify the Base URL and US-CUSTOMER-API-KEY are correct." You see this when UKG returns a 404 or an HTML page instead of an API response, which usually means the host or the API key is wrong.
- Other HTTP errors (for example, 401 for a wrong username or password, or 403 for a service account without access to the person-details service): an error message based on the HTTP status and the details UKG returned.
- Network errors (for example, a host that cannot be resolved, or a timeout after 15 seconds): "Connection test failed:
Actions
Get Employee Contacts
Retrieves the contacts (for example emergency contacts, dependents and beneficiaries) recorded for an employee in UKG Pro.
Here are some common use cases:
- Let an employee check who is listed as their emergency contact.
- Check an employee's dependents and beneficiaries before a benefits conversation.
Input Parameters
Here are the input parameters required to set up this action:
Mandatory
| Name | Description |
|---|---|
| Employee ID | UKG Pro employee ID (the system-generated EEID, e.g. EB5KU3000020). |
Here is a sample JSON input:
{
"employeeId": "EB5KU3000020"
}Response
- A list of the employee's contacts. Each contact includes:
- Name details: first, middle and last name, suffix, former name.
- Relationship code and description, and whether the contact is an emergency contact, dependent or beneficiary.
- Address (address lines, city, county, state, ZIP code, country), and whether it differs from the employee's address.
- Phone numbers (home, work with extension, other, preferred) and email address.
- Personal details such as date of birth, gender, marriage, divorce and death dates, smoker, student and disabled flags.
- COBRA details (status, reason, event and letter dates, notes).
- Identifiers such as contact ID, person ID, SSN, national ID and health care ID, and the active status.
Get Employee Details
Retrieves person details for one employee or a filtered, paginated list of employees in UKG Pro.
Here are some common use cases:
- Look up an employee's personal information (name, email, home address, phone) from their employee ID.
- Find an employee by last name or email address.
Sensitive dataThe response includes the employee's SSN, national ID, date of birth and other personal data. Restrict who can run this action, and avoid showing raw responses to end users.
Input Parameters
Here are the input parameters required to set up this action:
Optional
| Name | Description |
|---|---|
| Employee ID | UKG Pro employee ID (EEID) to return a single employee. Leave empty to list employees. |
| Per page | Number of records per page (1–1000). Defaults to 100. |
| Page number | Page number to retrieve. Defaults to 1. |
| Last name | Filter by last name. |
| Email address | Filter by email address. Must be a valid email address. |
Here is a sample JSON input:
{
"employeeId": "EB5KU3000020",
"perPage": 100,
"pageNumber": 1,
"lastName": "Smith",
"emailAddress": "[email protected]"
}Response
- Person details for each matching employee, including:
- Identifiers: employee ID, person ID, company ID, user name.
- Names: first, middle, last, preferred and former names, prefix and suffix codes.
- Contact details: primary and alternate email, home phone, home address (address lines, city, state, ZIP code, county, country).
- Personal details: date of birth, gender, marital status code, ethnic code and description, disability, smoker status, nationality.
- Identification: SSN, national ID and country, I-9 details.
- Military service details, COBRA details and created/changed timestamps.
Get Employee Payroll Data
Retrieves an employee's pay statements in UKG Pro for a date range.
Here are some common use cases:
- Answer "What was my net pay on my last paycheck?"
- Show the earnings, deductions and taxes on pay statements within a period.
Sensitive dataPay statements include the employee's SSN, bank account numbers for net pay distributions, and pay amounts. Restrict who can run this action.
Input Parameters
Here are the input parameters required to set up this action:
Mandatory
| Name | Description |
|---|---|
| Start date | Start of the date range, in YYYY-MM-DD format. |
| End date | End of the date range, in YYYY-MM-DD format. |
| Employee ID (EEID) | UKG Pro employee ID (e.g. EB5KU3000020). |
Optional
| Name | Description |
|---|---|
| Page | Page number. Defaults to 1. |
| Per page | Records per page. Defaults to 10000. |
Here is a sample JSON input:
{
"startDate": "2026-01-01",
"endDate": "2026-03-31",
"eeid": "EB5KU3000020",
"page": 1
}Response
- A list of pay statements. Each pay statement includes:
- Pay date, pay period start and end dates, pay period frequency, pay group and pay identifier.
- Gross wages, deductions, taxes and net pay (current and year-to-date).
- Earnings lines (pay code and description, hours, rate, amount, YTD values).
- Deduction lines (code, description, employee and employer amounts, pre-tax flag).
- Tax lines (code, description, amount, basis amount, YTD).
- Net pay distribution (account type, account number, amount).
- Federal and state filing status and allowances, job, location, org levels 1–4.
- Employee and company names and addresses, and the employee's SSN.
Get Compensation Details
Retrieves compensation details for an employee in UKG Pro.
Here are some common use cases:
- Answer "What is my current annual salary or hourly rate?"
- Check an employee's pay group, salary grade and last salary review date.
Input Parameters
Here are the input parameters required to set up this action:
Mandatory
| Name | Description |
|---|---|
| Employee ID | UKG Pro employee ID (EEID, e.g. EB5KU3000020). |
Here is a sample JSON input:
{
"employeeId": "EB5KU3000020"
}Response
- Compensation details, including:
- Pay rates: annual salary, hourly, weekly and pay-period rates, other rates 1–4, piece pay rate, currency code.
- Job information: primary job code, job title, salary grade, job group, job change reason, date in job.
- Pay group code and description, pay period, pay scale code, salary or hourly code, full- or part-time code.
- Scheduled hours: FTE, period work hours, annual work hours, weekly hours, primary shift and shift group.
- Dates: last paid, last worked, paid through, last and next salary review.
- Flags such as auto-paid, auto-allocated, seasonal, highly compensated and multiple jobs, plus performance review rating and type.
Get Employment Details
Retrieves employment details for an employee in UKG Pro.
Here are some common use cases:
- Answer "Who is my supervisor?" or "What is my hire date?"
- Check an employee's status, job, location and org levels before routing a request.
Input Parameters
Here are the input parameters required to set up this action:
Mandatory
| Name | Description |
|---|---|
| Employee ID | UKG Pro employee ID (EEID, e.g. EB5KU3000020). |
Here is a sample JSON input:
{
"employeeId": "EB5KU3000020"
}Response
- Employment details for the employee (the first record UKG returns), including:
- Identifiers: employee ID, employee number, company ID, home company, supervisor ID.
- Job: job code, primary job code, job title, job group, job change reason, position code, date in job.
- Organization: org level 1–4 codes, primary work location, primary project.
- Status: employee status code and start date, employee type code, full- or part-time code, salary or hourly.
- Dates: original and last hire dates, seniority and benefit seniority dates, last worked, paid through, termination, retirement and suspension dates.
- Termination details: termination reason code and description, term type, OK to rehire.
- Pay and schedule: pay group, pay period, annual salary, hourly pay rate, salary effective date, scheduled FTE and hours, weekly hours, shift and shift group.
- Work phone number, extension and country, union codes, and created/changed timestamps.
Get Employee Changes
Retrieves recent changes to employee records in UKG Pro, for one employee or for all employees.
Here are some common use cases:
- Check what changed recently on an employee's record (for example a new job code, location or supervisor).
- Sync recent hires, terminations and changes into another system.
Input Parameters
Here are the input parameters required to set up this action:
Optional
| Name | Description |
|---|---|
| Employee ID | UKG Pro employee ID (EEID). Leave empty to return changes for all employees. |
| Page | Page number. Defaults to 1. |
| Per page | Records per page. Defaults to 100. |
Here is a sample JSON input:
{
"employeeId": "EB5KU3000020",
"page": 1,
"perPage": 100
}Response
- A list of changed employee records. Each record includes:
- Identifiers: employee ID, employee number, person ID, user integration key, company ID and name.
- Names, preferred name, prefix, suffix, primary and alternate email, work and home phone, address.
- Job and organization: job code, job group, alternate job title, work location, project, org level 1–4 codes, supervisor ID and name.
- Status: active flag, employee status, employee type, full- or part-time, salary or hourly.
- Dates: hire date, date of last hire, termination date, date in job, status start date.
Get Import Tool Status
Retrieves the status of an update submitted to UKG Pro through the Import Tool. Use it to confirm whether an update or termination submitted by one of the update actions below was processed.
Input Parameters
Here are the input parameters required to set up this action:
Mandatory
| Name | Description |
|---|---|
| Transaction ID | ID returned by an update action (stagingId in its response), e.g. 3c64b062-96cf-4273-9072-0c85a743d513. |
Here is a sample JSON input:
{
"transactionId": "3c64b062-96cf-4273-9072-0c85a743d513"
}Response
- Staging ID of the transaction.
- Status of the transaction.
- Employee name and employee number.
- Transaction details and file name.
- File process date, service submittal date and last repost date.
How the update actions workThe actions below (Update employee data, Update employee SSN, Update employee private information, Terminate employee, Update job salary and Update work location) do not change UKG Pro directly. Each one builds an Import Tool transaction from your inputs and submits it to UKG Pro with automatic approval (the
FORCEAUTOapproval rule). The employee is identified by Company code and Employee number.UKG Pro processes the transaction asynchronously. A successful response means the transaction was accepted, not that the record was updated. The response contains a
stagingId, along with the time it was created and a file name. Pass thestagingIdas Transaction ID to Get Import Tool Status to confirm whether UKG Pro applied the change or rejected it (for example, because of an invalid code).Dates in all update actions use the
MM/DD/YYYYformat. Only fields you provide are included in the transaction. Empty fields are left unchanged in UKG Pro.
Update Employee Data
Updates an employee's name, contact details and home address in UKG Pro (Import Tool transaction type NAMEADDRESS).
Here are some common use cases:
- Let employees update their home address or phone numbers from chat.
- Update a preferred name or alternate email address.
Input Parameters
Here are the input parameters required to set up this action:
Mandatory
| Name | Description |
|---|---|
| Employee number | Employee identifier in UKG Pro, used to identify the employee in the Import Tool transaction. |
| Company code | UKG Pro company code of the employee's company (e.g. USG_1). |
Optional
| Name | Description |
|---|---|
| First name | First name. Max 100 characters. |
| Middle name | Middle name. Max 50 characters. |
| Last name | Last name. Max 100 characters. |
| Preferred name | Preferred name. Max 100 characters. |
| Primary email address | Primary email address. Must be a valid email, max 50 characters. |
| Alternate email address | Alternate email address. Must be a valid email, max 50 characters. |
| Marital status | Dropdown loaded from UKG Pro (marital status code table). |
| Home phone number | Home phone number. Max 50 characters. |
| Home phone country code | Dropdown loaded from UKG Pro (country code table). Max 3 characters. |
| Work phone number | Work phone number. Max 50 characters. |
| Work phone extension | Work phone extension. Max 10 characters. |
| Work phone country code | Dropdown loaded from UKG Pro (country code table). Max 3 characters. |
| Address line 1 | Home address line 1. Max 255 characters. |
| Address line 2 | Home address line 2. Max 255 characters. |
| Address city | City. Max 255 characters. |
| Address country code | Dropdown loaded from UKG Pro (country code table), e.g. USA or CAN. Max 3 characters. |
| Address state code | State or province code. Appears after you select a country. For USA and CAN it is a fixed list of US states or Canadian provinces; for other countries it is a text field. Max 6 characters. |
| Address county | County. Max 255 characters. |
| Address ZIP code | ZIP or postal code. Max 50 characters. |
Here is a sample JSON input:
{
"employeeNumber": "100245",
"companyCode": "USG_1",
"firstName": "John",
"lastName": "Smith",
"preferredName": "Johnny",
"emailAddress": "[email protected]",
"alternateEmail": "[email protected]",
"maritalStatusCode": "M",
"phoneHomeNumber": "5125550123",
"phoneHomeCountryCode": "USA",
"phoneBusinessNumber": "5125550188",
"phoneBusinessExtension": "204",
"phoneBusinessCountryCode": "USA",
"addressLine1": "1200 Main Street",
"addressLine2": "Apt 4B",
"addressCity": "Austin",
"addressCountryCode": "USA",
"addressStateCode": "TX",
"addressCounty": "Travis",
"addressZipCode": "78701"
}Response
- The Import Tool submission details:
stagingId, creation timestamp and file name. Use thestagingIdwith Get Import Tool Status to confirm the update.
Update Employee SSN
Updates an employee's Social Security number and, optionally, national ID and its expiry date in UKG Pro (Import Tool transaction type NATIONALID).
Sensitive dataThis action writes the employee's SSN and national ID. Restrict who can run it, and do not collect SSNs in open chat channels.
Input Parameters
Here are the input parameters required to set up this action:
Mandatory
| Name | Description |
|---|---|
| Employee number | Employee identifier in UKG Pro. |
| Company code | UKG Pro company code of the employee's company. |
| SSN | Social Security number, digits only, max 9 characters (e.g. 123456789). |
Optional
| Name | Description |
|---|---|
| National ID | National ID. Max 50 characters. |
| National ID expire date | Expiry date of the national ID, in MM/DD/YYYY format. |
Here is a sample JSON input:
{
"employeeNumber": "100245",
"companyCode": "USG_1",
"ssn": "123456789",
"nationalId": "A1234567",
"nationalIdExpireDate": "12/31/2030"
}Response
- The Import Tool submission details:
stagingId, creation timestamp and file name. Use thestagingIdwith Get Import Tool Status to confirm the update.
Update Employee Private Information
Updates an employee's date of birth and gender in UKG Pro (Import Tool transaction type PRIVATEINFO).
Input Parameters
Here are the input parameters required to set up this action:
Mandatory
| Name | Description |
|---|---|
| Employee number | Employee identifier in UKG Pro. |
| Company code | UKG Pro company code of the employee's company. |
Optional
| Name | Description |
|---|---|
| Date of birth | Date of birth, in MM/DD/YYYY format. |
| Gender | Dropdown loaded from UKG Pro (gender code table). |
Here is a sample JSON input:
{
"employeeNumber": "100245",
"companyCode": "USG_1",
"dateOfBirth": "04/15/1990",
"genderCode": "M"
}Response
- The Import Tool submission details:
stagingId, creation timestamp and file name. Use thestagingIdwith Get Import Tool Status to confirm the update.
Terminate Employee
Terminates an employee in UKG Pro (Import Tool transaction type TERMINATION), including termination reason, rehire and severance eligibility, payroll and COBRA details.
Here are some common use cases:
- Process a voluntary resignation once it is approved in an offboarding workflow.
- Record the last day worked, paid-through date and COBRA qualifying event for a leaver.
Input Parameters
Here are the input parameters required to set up this action:
Mandatory
| Name | Description |
|---|---|
| Employee number | Employee identifier in UKG Pro. |
| Company code | UKG Pro company code of the employee's company (e.g. USG_1). |
Optional
| Name | Description |
|---|---|
| Date of termination | Termination date, in MM/DD/YYYY format. UKG Pro normally needs this to process a termination. |
| Last date worked | Last day worked, in MM/DD/YYYY format. |
| Date paid through | Date the employee is paid through, in MM/DD/YYYY format. |
| Termination reason code | Dropdown loaded from UKG Pro (termination reason code table). |
| Termination note | Free-text note. Max 4000 characters. |
| Eligible for rehire? | Fixed list: Yes (Y) or No (N). |
| Eligible for severance? | Fixed list: Yes (Y) or No (N). |
| Inactivate direct deposit? | Fixed list: Yes (Y) or No (N). |
| Inactivate auto pay? | Fixed list: Yes (Y) or No (N). |
| Is COBRA qualifying? | Fixed list: Yes (Y) or No (N). |
| COBRA date of event | COBRA qualifying event date, in MM/DD/YYYY format. |
| COBRA reason code | Text field for a UKG Pro benefit change reason code (e.g. 200 for Termination). Max 6 characters. |
| ROE issue reason | Fixed list of Canadian Record of Employment reason codes (for example A00 Shortage of work, E00 Quit, M00 Dismissal). Use for Canadian employees. |
Here is a sample JSON input:
{
"employeeNumber": "100245",
"companyCode": "USG_1",
"dateOfTermination": "10/31/2026",
"lastDateWorked": "10/31/2026",
"datePaidThru": "10/31/2026",
"termReasonCode": "100",
"termNote": "Resigned to accept another position.",
"eligibleForRehire": "Y",
"eligibleForSeverance": "N",
"directDepositInactive": "Y",
"inactivateAutoPay": "Y",
"isCobraQualifying": "Y",
"cobraDateOfEvent": "10/31/2026",
"cobraReason": "200"
}Response
- The Import Tool submission details:
stagingId, creation timestamp and file name. Use thestagingIdwith Get Import Tool Status to confirm the termination.
Update Job Salary
Updates an employee's job and compensation information in UKG Pro as of an effective date (Import Tool transaction type JOBSALARY). The transaction is submitted with the BACKDATEWITHLATEST job effective rule, which lets you use backdated effective dates.
Here are some common use cases:
- Apply an approved pay rise or promotion.
- Move an employee to a new job code, org level, shift or supervisor.
Input Parameters
Here are the input parameters required to set up this action:
Mandatory
| Name | Description |
|---|---|
| Employee number | Employee identifier in UKG Pro (e.g. 100245). |
| Company code | UKG Pro company code of the employee's company (e.g. USG_1). |
| Effective date | Date the change takes effect, in MM/DD/YYYY format. |
| Job change reason | Dropdown loaded from UKG Pro (job change reason code table). |
| Form based input? | Toggle. On (default): enter job details in the form fields below. Off: enter them in JSON input. |
| JSON input | Required only when Form based input? is off. A JSON object with any of the keys listed in the table below. |
Optional
Fields marked Form and JSON appear in the form when Form based input? is on, and can also be sent as keys in JSON input. Fields marked JSON only have no form field and can only be sent through JSON input. In JSON input, use the key names shown in brackets. JSON values are passed to UKG Pro as given, without the format checks the form applies, so use the same codes and Y/N values as the form.
| Name (JSON key) | Description | Available in |
|---|---|---|
Alternate job title (alternateJobTitle) | Alternate job title. | Form and JSON |
Employee type code (employeeTypeCode) | Dropdown loaded from UKG Pro (employee type code table). | Form and JSON |
Full or part time code (fullOrPartTimeCode) | Fixed options: Full time (F) or Part time (P). | Form and JSON |
Hire source code (hireSourceCode) | Hire source code. | Form and JSON |
Hourly pay rate (hourlyPayRate) | Hourly pay rate (e.g. 17.00). | Form and JSON |
Is autopaid? (isAutopaid) | Fixed options: Yes (Y) or No (N). | Form and JSON |
Is seasonal? (isSeasonal) | Fixed options: Y or N. | Form and JSON |
Is agricultural? (isAgricultural) | Fixed options: Y or N. | Form and JSON |
Is youth training? (isYouthTraining) | Fixed options: Y or N. | Form and JSON |
Is direct labor? (isDirectLabor) | Fixed options: Y or N. | Form and JSON |
Is promotion? (isPromotion) | Fixed options: Y or N. | Form and JSON |
Is transfer? (isTransfer) | Fixed options: Y or N. | Form and JSON |
Job code (jobCode) | Dropdown loaded from UKG Pro (jobs). | Form and JSON |
Labor union local code (laborUnionLocalCode) | Labor union local code. | Form and JSON |
Labor union national code (laborUnionNationalCode) | Labor union national code. | Form and JSON |
Organization level 1 code (orgLevel1Code) | Dropdown loaded from UKG Pro (org level 1). | Form and JSON |
Organization level 2 code (orgLevel2Code) | Dropdown loaded from UKG Pro (org level 2). | Form and JSON |
Organization level 3 code (orgLevel3Code) | Dropdown loaded from UKG Pro (org level 3). | Form and JSON |
Organization level 4 code (orgLevel4Code) | Dropdown loaded from UKG Pro (org level 4). | Form and JSON |
Other rate 1–4 (otherRate1 … otherRate4) | Other pay rates. | Form and JSON |
Pay group (payGroup) | Pay group code. | Form and JSON |
Project code (projectCode) | Dropdown loaded from UKG Pro (project code table). | Form and JSON |
Salary or hourly (salaryOrHourly) | Fixed options: Salary (S) or Hourly (H). | Form and JSON |
Scheduled work hours (scheduledWorkHours) | Scheduled work hours per pay period. | Form and JSON |
Shift code (shiftCode) | Dropdown loaded from UKG Pro (shift codes). | Form and JSON |
Supervisor ID (supervisorId) | Supervisor's employee ID. | Form and JSON |
Supervisor company code (supervisorCompanyCode) | Supervisor's company code. Shown once Supervisor ID has a value; required by UKG Pro when a supervisor ID is given. | Form and JSON |
yearlyPayRate | Annual salary (sent to UKG Pro as AnnualSalary). | JSON only |
payScale | Pay scale code (sent as PayScaleCode). | JSON only |
payStep | Salary step (sent as SalaryStep). | JSON only |
positionCode | Position code. | JSON only |
positionStatus | Position status. | JSON only |
currencyCode | Currency code. | JSON only |
paymentsPerYear | Number of payments per year (sent as NumberOfPayments). | JSON only |
weeklyHours | Weekly hours. | JSON only |
shiftGroup | Shift group code (sent as ShiftGroupCode). | JSON only |
roeIssueCode | Canadian Record of Employment issue reason (sent as ROEIssueReason). | JSON only |
JSON inputWhen Form based input? is off, the JSON object replaces the form fields: only keys in the JSON are sent. Employee number, Company code, Effective date and Job change reason are always taken from their own fields, not from the JSON.
Here is a sample JSON input (form based):
{
"employeeNumber": "100245",
"companyCode": "USG_1",
"effectiveDate": "11/01/2026",
"jobChangeReason": "PROMO",
"formBasedInput": true,
"jobCode": "MGR01",
"alternateJobTitle": "Engineering Manager",
"orgLevel1Code": "ENG",
"salaryOrHourly": "S",
"fullOrPartTimeCode": "F",
"isPromotion": "Y",
"supervisorId": "EB5KU3000045",
"supervisorCompanyCode": "USG_1"
}Here is a sample JSON input (using JSON input):
{
"employeeNumber": "100245",
"companyCode": "USG_1",
"effectiveDate": "11/01/2026",
"jobChangeReason": "MERIT",
"formBasedInput": false,
"jsonInput": {
"yearlyPayRate": "98000",
"payScale": "PS2",
"payStep": "3",
"currencyCode": "USD",
"paymentsPerYear": "26",
"weeklyHours": "40",
"salaryOrHourly": "S"
}
}Response
- The Import Tool submission details:
stagingId, creation timestamp and file name. Use thestagingIdwith Get Import Tool Status to confirm the update.
Update Work Location
Updates an employee's work (tax) location in UKG Pro. For US employees the action submits a WORKLOCATION transaction (US work-in tax details). For Canadian employees it submits a CAWORKLOCATION transaction (provincial tax details).
Here are some common use cases:
- Move an employee to a new office or work-in state after a relocation.
- Update provincial tax details for a Canadian employee.
Input Parameters
Here are the input parameters required to set up this action:
Mandatory
| Name | Description |
|---|---|
| Employee number | Employee identifier in UKG Pro (e.g. 100245). |
| Company code | UKG Pro company code of the employee's company (e.g. USG_2). |
| Country | Fixed options: USA (USA) or Canada (CAN). Decides which transaction and fields are used. |
| Form based input? | Toggle. On (default): use the form fields below. Off: use JSON input. |
| Work location code | USA, form-based only. Dropdown loaded from UKG Pro (locations, filtered to US locations). With JSON input, send workInLocationCode in the JSON instead. |
| Province location code | Canada, form-based only. Dropdown loaded from UKG Pro (locations, filtered to Canadian locations). With JSON input, send provinceLocationCode in the JSON instead. |
| JSON input | Required only when Form based input? is off. A JSON object with the keys for the selected country listed below. |
Optional
USA
| Name (JSON key) | Description | Available in |
|---|---|---|
Is primary location (workInIsPrimaryLocation) | Fixed options: Yes (Y) or No (N). | Form and JSON |
Is active location (workInIsActiveLocation) | Fixed options: Yes (Y) or No (N). | Form and JSON |
workInFilingStatusCode | Work-in state filing status code. | JSON only |
workInTotalAllowances | Total allowances. | JSON only |
workInAdditionalAllowances | Additional allowances. | JSON only |
workInAdditionalAmountWithheld | Additional amount withheld. | JSON only |
workInEmployeeClaimsExemption | Employee claims exemption. | JSON only |
exemptFromTax | Exempt from tax. | JSON only |
workInLockInLetter | Lock-in letter. | JSON only |
workInStateTaxPlan | State tax plan. | JSON only |
workInStateTaxDisabilityPlan | State disability tax plan. | JSON only |
workInStateGeographicCode | State geographic code. | JSON only |
workInStateOccupationalCode | State occupational code. | JSON only |
workInNotSubjectToTax | Not subject to tax. | JSON only |
workInReciprocalAgreement | Reciprocal agreement. | JSON only |
workInWorkingFromHome | Working from home. | JSON only |
workInDisableStateReciprocity | Disable state reciprocity. | JSON only |
localWorkInTaxResidentStatus | Local tax resident status. | JSON only |
localWorkInOccNotSubjectToTax | Local occupational tax: not subject to tax. | JSON only |
localWorkInOccClaimsExemption | Local occupational tax: claims exemption. | JSON only |
localWorkInOthNotSubjectToTax | Other local tax: not subject to tax. | JSON only |
localWorkInOthClaimsExemption | Other local tax: claims exemption. | JSON only |
localWorkInWCNotSubjectToTax | Local workers' compensation tax: not subject to tax. | JSON only |
localWorkInWCClaimsExemption | Local workers' compensation tax: claims exemption. | JSON only |
localWorkInNotSubjectToTax | Local tax: not subject to tax. | JSON only |
localWorkInClaimsExemption | Local tax: claims exemption. | JSON only |
Canada
| Name (JSON key) | Description | Available in |
|---|---|---|
Is primary province (provinceIsPrimary) | Fixed options: Yes (Y) or No (N). | Form and JSON |
provinceExemptFromTax | Exempt from provincial tax. | JSON only |
provincePensionBlockTaxAmount | Pension block tax amount. | JSON only |
provinceInsPlanExemptFromTax | Insurance plan exempt from tax. | JSON only |
provincePensionMonthsToContribute | Pension months to contribute. | JSON only |
provinceNumberOfDependents | Number of dependents. | JSON only |
provinceUseBasicPersonalAmount | Use basic personal amount. | JSON only |
provinceTotalClaimAmount | Total claim amount. | JSON only |
provincePrescribedDeductionZone | Prescribed deduction zone. | JSON only |
provinceIncomeLessClaimAmount | Income less claim amount. | JSON only |
provinceAdditionalAmountWithheld | Additional amount withheld. | JSON only |
provinceRequestReductionAmount | Requested reduction amount. | JSON only |
provinceTaxCreditAmount | Tax credit amount. | JSON only |
provinceNetCommissionAmt | Net commission amount. | JSON only |
JSON inputWhen Form based input? is off, only keys in the JSON object are sent. Employee number, Company code and Country are always taken from their own fields. Always include
workInLocationCode(USA) orprovinceLocationCode(Canada) in the JSON, because the location code is always written to the transaction.
Here is a sample JSON input (USA, form based):
{
"employeeNumber": "100245",
"companyCode": "USG_2",
"country": "USA",
"formBasedInput": true,
"workInLocationCode": "TX",
"workInIsPrimaryLocation": "Y",
"workInIsActiveLocation": "Y"
}Here is a sample JSON input (Canada, using JSON input):
{
"employeeNumber": "100245",
"companyCode": "CAN_1",
"country": "CAN",
"formBasedInput": false,
"jsonInput": {
"provinceLocationCode": "ON",
"provinceIsPrimary": "Y",
"provinceTotalClaimAmount": "15705",
"provinceAdditionalAmountWithheld": "50"
}
}Response
- The Import Tool submission details:
stagingId, creation timestamp and file name. Use thestagingIdwith Get Import Tool Status to confirm the update.
Updated 4 days ago
