# Connecting SailPoint and UKG Pro Core HCM

To connect SailPoint with UKG Pro Core HCM, perform the following tasks:

## Adding the Source in SailPoint

To connect to SailPoint, perform the following steps. Once the connection is made, you can configure it to meet your company's needs.

> [!IMPORTANT]
>
> By default, the provisioning feature is **disabled**, and the connector only supports read-only operations. To support provisioning operations, you must manually enable the feature in the source configuration.

**To configure a new source:**

1. Sign in to SailPoint.
2. Go to **Admin \> Connections \> Sources**.
3. Select **Create New**.
4. Search for the connector by entering the name in the search box, and then select **Configure**.
5. In the **Source Name** field, enter a unique and descriptive name for your source. Source names cannot exceed 128 characters.
6. In the **Description** field, provide additional details about the source to help distinguish it from similar sources. This field allows a maximum of 2,000 characters.
7. In the **Source Owner** field, begin typing the name of an owner. Matches appear after you type two or more letters. For more information, refer to [Assigning a Source Owner](<https://documentation.sailpoint.com/saas/help/sources/index.html#assigning-a-source-owner>).
8. Under **Connection Type**, select **Direct Connection** or **Flat File**.

   - **Direct Connection** - A direct connection fetches data from the **Virtual Appliance Cluster** you choose as the application connector for the source. A direct connection configuration allows for real-time updates. For more information about configuring and deploying virtual appliances, refer to the [Virtual Appliance Reference Guide](<https://documentation.sailpoint.com/saas/help/va/index.html>).
   - **Flat File** - Select the flat file if no connector is available, or if another system restricts the connection. This option allows only reading and aggregating data as a generic/delimited application. Provisioning activity is unsupported, and additional configuration pages like connection settings and aggregation settings are unavailable.
9. If you selected **Direct Connection**, in **Virtual Appliance Cluster**, select the virtual appliance cluster that will be used as the application connector for the source.
10. (Optional) Select a governance group to grant its members [source](<https://documentation.sailpoint.com/saas/help/common/users/user_levels.html#source-sub-admin-user-level>) or [role](<https://documentation.sailpoint.com/saas/help/common/users/user_levels.html#role-sub-admin-user-level>) sub-admin level oversight of the source and its access. For more information, refer to [Creating and Managing Governance Groups](<https://documentation.sailpoint.com/saas/help/common/users/governance_groups.html>).
11. If this source represents a primary system containing your organization's personnel records, select the **Authoritative Source** checkbox. For more information, refer to [Creating Identity Profiles](<https://documentation.sailpoint.com/saas/help/setup/identity_profiles.html>).
12. Select **Continue**. The source is created, and you are navigated to the **Source Setup \> Base Configuration** page. Continue to configure your connected source there.

## Base Configuration

Provide the base configuration parameters. Information you entered in the Create New Source dialog is automatically entered into the fields in the Base Configuration page. You can edit this information if necessary.

1. Enter a unique name and description for the source.
2. In the **Source Owner** dropdown list, select the identity that owns this source.

   - To find a source owner, begin entering their name.
3. In the **Virtual Appliance Cluster** dropdown list, select the virtual appliance to use when communicating with your organization's systems. For more information, refer to [SailPoint Virtual Appliances](<https://documentation.sailpoint.com/saas/help/va/index.html>).
4. (Optional) If enabled for your organization, select the **Use a Credential Provider** checkbox to manage the source's authentication using a credential provider.

   > **Note**
   >
   > To add a credential provider, go to **Admin \> Connections \> Credential Providers**. For more information about credential providers, refer to [Credential Providers](<https://documentation.sailpoint.com/connectors/help/credential_providers.html>).
5. Configure the authentication to allow SailPoint to connect to the source. Refer to [Connection Settings](<#connection-settings>) for more information.
6. (Optional) In the **Governance Group for Source Management** dropdown list, select a governance group to associate with this source. For more information about governance groups, refer to [Associating Governance Groups with a Source](<https://documentation.sailpoint.com/saas/help/common/users/governance_groups.html#associating-a-governance-group-with-a-source>).
7. (Optional) Choose whether to enable or disable provisioning for the source. Provisioning is disabled by default.

   - **Enable Provisioning** - Set the toggle to **Enabled** to allow the source to create, update, and deactivate accounts in the connected source system.
   - **Disable Provisioning** - Set the toggle to **Disabled** to disable provisioning for the source. Disabling provisioning will prevent the creation, updating, or deactivating of accounts on this source.
8. Select **Save**.

## Connection Settings

Provide the information required to connect to the UKG Pro Core HCM managed system.

> [!NOTE]
>
> At this time, the connector only supports [Basic Authentication](<https://documentation.sailpoint.com/connectors/ukg_pro_core_hcm/va/help/index.html#basic-authentication>) to authenticate connections to UKG Pro Core HCM with REST APIs.

> [!NOTE]
>
> **Screenshot**
>
> [![Connection Settings](<https://documentation.sailpoint.com/connectors/ukg_pro_core_hcm/va/help/img/connection_settings.png>)](<https://documentation.sailpoint.com/connectors/ukg_pro_core_hcm/va/help/img/connection_settings.png>)

1. Enter the UKG Pro Core HCM API's **Base URL** used to connect to the Core module of the UKG Pro source. For example:

   ```text
   https://xyz.ultipro.com
   ```

   > **Note**
   >
   > The UKG Pro Core HCM source only supports the UKG Pro Core HCM module.
2. Select **Basic Authentication** for the **Authentication Type**, and provide the supporting authentication credentials.

   1. **Service Account Username** - The UKG Pro Core HCM web service account user with required permissions
   2. **Service Account Password** - The password for the UKG Pro Core HCM service account
   3. **Customer API Key** - The Customer API Key assigned in the UKG Pro Core HCM system
3. Select **Save**.

## Aggregation Settings

Configure optional settings to define which accounts the connector fetches during aggregation processes. You can configure account filters based on employee status and hire and termination dates. Configure the aggregation timeout and the number of records fetched during a single page. Lastly, you can enable Delta Aggregation. Configure your aggregation settings as required, then select **Save**.

For more information about Aggregation, refer to [Loading Account Data](<https://documentation.sailpoint.com/saas/help/accounts/loading_data.html>).

### Filter Settings

Configure the filters to define the scope of account aggregation.

> [!NOTE]
>
> **Screenshot**
>
> [![Aggregation Settings](<https://documentation.sailpoint.com/connectors/ukg_pro_core_hcm/va/help/img/agg_filter_settings.png>)](<https://documentation.sailpoint.com/connectors/ukg_pro_core_hcm/va/help/img/agg_filter_settings.png>)

#### Employee Statuses to Aggregate

The connector aggregates only Active employees by default. Enter any additional employee status values to include in aggregation along with Active in the Employee Statuses to Aggregate field.

Press Enter on your keyboard to add the status to the list of employee statuses to include. You can only add the following employee statuses:

- Leave of absence
- On strike
- Released/laid off
- Suspended

> [!NOTE]
>
> **Notes**
>
> - Terminated is not a valid status value for this list. To aggregate Terminated employees, use [Aggregate Terminated Employees](<#aggregate-terminated-employees>).
> - The status values entered will be treated as case-insensitive. However, SailPoint recommends that you enter the status values in their correct case as they are configured in the `enabledEmployeeStatus` parameter.

> [!IMPORTANT]
>
> The Active status should not be removed as that's the default aggregation status. If you remove it, account aggregation will fail with validation error.

#### Aggregate Future Hires

Enable **Aggregate Future Employees** to aggregate future employees ahead of their hire date. Then in the **Future Offset** field, enter the number of days in advance of their hire date to aggregate future employees. Leave the field blank to aggregate all future employees regardless of their hire date.

#### Aggregate Terminated Employees

Enable **Aggregate Terminated Employees** to include terminated employees in aggregation. Then in the **Termination Offset** field, enter the number of days in the past you want to aggregate terminated employees. Leave the field blank to aggregate all terminated employees regardless of their termination date.

### Additional Settings

Configure additional settings which define how the aggregation process runs.

> [!NOTE]
>
> **Screenshot**
>
> [![Additional Settings](<https://documentation.sailpoint.com/connectors/ukg_pro_core_hcm/va/help/img/agg_addl_settings.png>)](<https://documentation.sailpoint.com/connectors/ukg_pro_core_hcm/va/help/img/agg_addl_settings.png>)

#### Aggregation Timeout

Enter the **Aggregation Timeout** duration in seconds. When the connector receives no response from the managed system for the configured duration, the aggregation fails.

#### Page Size

In the **Page Size** field, enter the number of records to aggregate in a single page when iterating over large datasets. The default value is 200 records and the maximum value is 200 records.

### Delta Aggregation

Enable **Delta Aggregation** to aggregate new accounts or accounts that have changed since the last aggregation process.

## Provisioning Settings

Configure optional settings related to provisioning operations. The configurations made in the **Provisioning Settings** tab apply to all provisioning operations.

The provisioning tab provides options for you to enter the API country code settings. You can also set the approval rule used for business approval processes. For information on the available provisioning policy attributes, refer to [Provisioning Employee Attributes](<https://documentation.sailpoint.com/connectors/ukg_pro_core_hcm/va/help/provisioning.html#provisioning-employee-attributes>).

> [!NOTE]
>
> **Screenshot**
>
> [![Provisioning Settings](<https://documentation.sailpoint.com/connectors/ukg_pro_core_hcm/va/help/img/prov_settings.png>)](<https://documentation.sailpoint.com/connectors/ukg_pro_core_hcm/va/help/img/prov_settings.png>)

### Country Code Settings

To set the country code settings:

1. In the **Home Phone Country Code** field, enter the UKG API country code associated with the employees' home phone attribute values. For example, you can enter `CAN` for Canada or `IND` for India. The default setting is `USA`.
2. In the **Work Phone Country Code** field, enter the UKG API country code associated with the employees' work phone attribute values. For example, you can enter `CAN` for Canada or `IND` for India. The default setting is `USA`.
3. Select **Save**.

### Approval Rule Settings

To set the approval rule:

1. In the **Approval Rule** dropdown menu, select one of the following as required:

   - **Bypass Approval** - Do not route transactions through approval, and force updates.
   - **Standard** - Follow the standard configured workflow.
2. Select **Save**.

## Additional Configuration Parameters

Add the following entries or modify the existing entries using the REST API.

> [!NOTE]
>
> For more information on SailPoint's REST APIs, refer to [Best Practices: REST API Authentication](<https://developer.sailpoint.com/docs/api/authentication/>) and [REST API - Update Source (Partial)](<https://developer.sailpoint.com/docs/api/update-source-v-1/>) in the SailPoint Developer Community.

### enabledEmployeeStatus

String parameter which defines the available employee account statuses. This parameter is a comma-separated list of employee statuses. The employees that have a status from this list will be considered enabled in SailPoint. If the status is any other value, the identity account is considered disabled. The default value for this parameter is `Active,Leave of absence,On strike`.

```text
<entry key="enabledEmployeeStatus" value="Active,Leave of absence,On strike"/>
```

> [!NOTE]
>
> The values in this list are not case-sensitive. However, SailPoint recommends that you enter the status values and use them as if they are case-sensitive.

### conUKGProApiRetrySleepTimeSeconds

If the connector encounters a `Too Many Requests` error (HTTP response status code 429) while establishing an API connection, the connector will pause for the duration (in seconds) configured in this parameter before reattempting to establish an API connection.

> [!NOTE]
>
> If the `Retry-after` response header is available, the connector will read the value from there.

The default value is `5`, so the connector pauses for five seconds if it encounters a Too Many Requests error, then makes another attempt at establishing the connection with the API.

```text
<entry key="conUKGProApiRetrySleepTimeSeconds" value="5"/>
```

### conUKGProApiRetryMaxAttempts

If the connector encounters a `Too Many Requests` error (HTTP response status code 429) while establishing an API connection, the connector will reattempt to establish an API connection. This parameter defines how many times the connector should attempt the connection before the connection fails.

The default value is `3`, so the connector attempts to establish an API connection three times. If the third attempt fails, the connection fails.

```text
<entry key="conUKGProApiRetryMaxAttempts" value="3"/>
```

### retryableErrorCodes

If the connector encounters the specified error status codes `[409, 504]` during account aggregation, the connector will perform a retry as configured in this source configuration attribute.

## Review and Test

Perform a test to confirm the connection to SailPoint.

1. Go to **Review and Test**.
2. Confirm that the entries in each field are correct.

   If you note any mistakes, return to the section and make corrections.
3. Select **Test Connection**.

## SailPoint Application Onboarding

SailPoint application onboarding enables you to easily onboard new applications and create sources following the successful onboarding of a discovery source. To use this feature, continue to **Discovered Applications** in the SailPoint user interface.

For more information, refer to [Application Onboarding](<https://documentation.sailpoint.com/saas/help/ai/app_onboarding/index.html>) in the SailPoint SaaS documentation.
