> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kombo.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# UKG Pro WFM HRIS Integration

> UKG Pro WFM connector for Kombo's HRIS API

<Note>This connector is in open beta. You can freely enable it in your account.</Note>

The UKG Pro WFM HRIS integration allows you to sync HRIS data between UKG Pro WFM and your application through Kombo's unified API. The tool slug for this connector is `ukgprowfm`.

## Guides and Resources

<CardGroup cols={2}>
  <Card title="Connection Setup Guide" icon="link" href="https://help.kombo.dev/hc/en-us/articles/45669441622673-UKG-Pro-WFM-How-do-I-link-my-account">
    Step-by-step instructions to connect your UKG Pro WFM account to Kombo.
  </Card>
</CardGroup>

## Supported Features & Coverage

<Tabs>
  <Tab title="Models">
    <Accordion title="Legal Entities">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | name                |       |
      | address             |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Work Locations">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | name                |       |
      | address             |       |
      | type                |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Employees">
      <Note>
        Only employees included in the HyperFind referenced by the `hyperfind_id` setting are synced. If the HyperFind is misconfigured (e.g., excludes inactive or terminated employees, filters by labor category, etc.), those employees will not appear in Kombo.
      </Note>

      | Field                 | Notes |
      | --------------------- | ----- |
      | id                    |       |
      | remote\_id            |       |
      | changed\_at           |       |
      | remote\_deleted\_at   |       |
      | employee\_number      |       |
      | first\_name           |       |
      | last\_name            |       |
      | display\_full\_name   |       |
      | job\_title            |       |
      | work\_email           |       |
      | personal\_email       |       |
      | mobile\_phone\_number |       |
      | gender                |       |
      | employment\_status    |       |
      | work\_location\_id    |       |
      | legal\_entity\_id     |       |
      | manager\_id           |       |
      | home\_address         |       |
      | date\_of\_birth       |       |
      | start\_date           |       |
      | termination\_date     |       |
      | custom\_fields        |       |
      | integration\_fields   |       |
      | remote\_data          |       |
    </Accordion>

    <Accordion title="Groups">
      | Field               | Notes |
      | ------------------- | ----- |
      | id                  |       |
      | remote\_id          |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
      | name                |       |
      | type                |       |
      | remote\_data        |       |
    </Accordion>

    <Accordion title="Timesheets">
      | Field                  | Notes |
      | ---------------------- | ----- |
      | id                     |       |
      | remote\_id             |       |
      | changed\_at            |       |
      | remote\_deleted\_at    |       |
      | employee\_id           |       |
      | started\_at            |       |
      | ended\_at              |       |
      | timezone               |       |
      | payable\_hours         |       |
      | unpaid\_break\_minutes |       |
      | breaks                 |       |
      | approval\_status       |       |
      | approved\_at           |       |
      | remote\_data           |       |
    </Accordion>

    <Accordion title="Employee <> Group">
      | Field               | Notes |
      | ------------------- | ----- |
      | employee\_id        |       |
      | team\_id            |       |
      | id                  |       |
      | changed\_at         |       |
      | remote\_deleted\_at |       |
    </Accordion>
  </Tab>

  <Tab title="Actions">
    <Accordion title="Create employee (v2)">
      <Info>For detailed information about [creating employees with form](/hris/implementation-guide/create-employee), please see the [**Create Employee with Form** tab](#create-employee-with-form) above.</Info>

      | Input Field          | Notes |
      | -------------------- | ----- |
      | staffing\_entity\_id |       |
      | properties           |       |
    </Accordion>
  </Tab>

  <Tab title="Features">
    | Feature          | Notes |
    | ---------------- | ----- |
    | Connection Guide |       |
    | API Passthrough  |       |
    | Group Types      |       |
    | TEAM             |       |
    | DEPARTMENT       |       |
    | COST\_CENTER     |       |
  </Tab>

  <Tab title="Create Employee with Form">
    <Info>
      Some **optional** form fields are referencing the following data models:

      * Employees

      Consider enabling these in your [scope configuration](/hris/features/scopes).
    </Info>

    <ResponseField name="personInformation" type="object" required>
      **Person Information**<br />
      Identity, contact details, access assignment, and product licenses for the new employee.

      <Expandable title="properties">
        <ResponseField name="person" type="object" required>
          **Person**

          <Expandable title="properties">
            <ResponseField name="personNumber" type="text">**Employee ID**<br />
            The employee identifier in UKG Pro WFM. Leave blank to auto-generate.</ResponseField>
            <ResponseField name="firstName" type="text">**First Name**<br />
            The first name of the employee<br />
            Unified field: `first_name`</ResponseField>
            <ResponseField name="lastName" type="text" required>**Last Name**<br />
            The last name of the employee<br />
            Unified field: `last_name`</ResponseField>
            <ResponseField name="middleInitial" type="text">**Middle Initial**</ResponseField>
            <ResponseField name="shortName" type="text">**Short Name**<br />
            A short display name. Defaults to the first name in most UKG configurations.</ResponseField>
            <ResponseField name="hireDate" type="date" required>**Start Date**<br />
            Also used as the effective date for employment status, primary labor account, badge assignment, and base wage (unless overridden).<br />
            Unified field: `start_date`</ResponseField>
            <ResponseField name="birthDate" type="date">**Date of Birth**<br />
            The employee's date of birth<br />
            Unified field: `date_of_birth`</ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="emailAddresses" type="object">
          **Email Addresses**

          <Expandable title="properties">
            <ResponseField name="workEmail" type="text">**Work Email**<br />
            The email address of the employee<br />
            Unified field: `work_email`</ResponseField>
            <ResponseField name="homeEmail" type="text">**Private Email**<br />
            The private email address of the employee<br />
            Unified field: `private_email`</ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="telephoneNumbers" type="object">
          **Telephone Numbers**

          <Expandable title="properties">
            <ResponseField name="mobilePhoneNumber" type="text">**Mobile Phone Number**<br />
            The mobile phone number of the employee<br />
            Unified field: `mobile_phone_number`</ResponseField>
            <ResponseField name="workPhoneNumber" type="text">**Work Phone Number**<br />
            The work phone number of the employee.</ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="postalAddresses" type="object">
          **Postal Address**

          <Expandable title="properties">
            <ResponseField name="street" type="text">**Street 1**<br />
            The street address of the employee<br />
            Unified field: `home_address.street_1`</ResponseField>
            <ResponseField name="city" type="text">**City**<br />
            The city of the employee<br />
            Unified field: `home_address.city`</ResponseField>
            <ResponseField name="state" type="text">**State**<br />
            The state of the employee<br />
            Unified field: `home_address.state`</ResponseField>
            <ResponseField name="postalCode" type="text">**ZIP Code**<br />
            The ZIP code of the employee<br />
            Unified field: `home_address.zip_code`</ResponseField>
            <ResponseField name="country" type="text">**Country**<br />
            The uppercase two-letter ISO country (e.g., DE)<br />
            Unified field: `home_address.country`</ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="accessAssignment" type="object">
          **Access Assignment**

          <Expandable title="properties">
            <ResponseField name="accessProfileName" type="single_select" required>**Function Access Profile**<br />
            Controls the employee's system access and permissions.</ResponseField>
            <ResponseField name="employeeLaborCategoryProfileName" type="single_select">**Labor Category Profile**<br />
            Controls which labor categories the employee can select.</ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="personLicenseTypes" type="multi_select" required>**Product Licenses**<br />
        UKG product licenses to assign (e.g. "Hourly Timekeeping", "Analytics").</ResponseField>
        <ResponseField name="badgeAssignments" type="text">**Badge Number**<br />
        Used for time clock identification.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="jobAssignment" type="object" required>
      **Job Assignment**<br />
      Job details, primary labor account, and base wage for the new employee.

      <Expandable title="properties">
        <ResponseField name="jobAssignmentDetails" type="object" required>
          **Details**

          <Expandable title="properties">
            <ResponseField name="payRuleName" type="single_select" required>**Pay Rule**<br />
            The pay rule for timekeeping.</ResponseField>
            <ResponseField name="timeZoneName" type="single_select">**Time Zone**<br />
            The time zone for the employee's job assignment.</ResponseField>
            <ResponseField name="supervisorPersonNumber" type="single_select">**Supervisor**<br />
            The employee's direct supervisor.<br />
            References `/v1/hris/employees?remote_model=employee`</ResponseField>
            <ResponseField name="workerTypeName" type="single_select">**Employee Type**<br />
            The worker type as configured in UKG.</ResponseField>
            <ResponseField name="deviceGroupName" type="single_select">**Device Group**<br />
            The device group for time clock access.</ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="organizationPath" type="single_select" required>**Organization Path**<br />
        Full organizational path for the primary labor account.</ResponseField>

        <ResponseField name="primaryLaborCategory" type="object">
          **Primary Labor Category**<br />
          Optional per-category labor entries appended to the primary labor account.

          <Expandable title="properties">
            <ResponseField name="level1" type="single_select">**Labor Category 1**</ResponseField>
            <ResponseField name="level2" type="single_select">**Labor Category 2**</ResponseField>
            <ResponseField name="level3" type="single_select">**Labor Category 3**</ResponseField>
            <ResponseField name="level4" type="single_select">**Labor Category 4**</ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="scheduleGroupName" type="single_select">**Schedule Group**<br />
        The employee's schedule group assignment.</ResponseField>

        <ResponseField name="baseWage" type="object">
          **Hourly Wage**<br />
          Optional hourly wage assignment for the new employee.

          <Expandable title="properties">
            <ResponseField name="rate" type="number">**Rate**<br />
            Hourly wage rate. Leave blank to skip the wage assignment.</ResponseField>
            <ResponseField name="effectiveDate" type="date">**Effective Date**<br />
            Only applied when Rate is set. Defaults to the hire date.</ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="user" type="object" required>
      **User Account**<br />
      Login credentials for the new employee.

      <Expandable title="properties">
        <ResponseField name="userAccount" type="object" required>
          **Account**

          <Expandable title="properties">
            <ResponseField name="userName" type="text" required>**Username**<br />
            The UKG login username for the new account.</ResponseField>
            <ResponseField name="userPassword" type="text" required>**Password**<br />
            A temporary password for the new account. Must be at least 8 characters.</ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Tab>
</Tabs>
