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

# Workday

> Integrate Alex with Workday

## Overview

Alex connects to your Workday instance through **Kombo**, our unified integration provider. You create a dedicated Integration System User (ISU) and API client in Workday, configure the assessment statuses Alex uses, then authorize the connection through Kombo from Alex's Settings page. The ISU credentials are supplied to Kombo during the connection — they are no longer entered directly into Alex. OAuth 2.0 is required.
There are three main steps to configuring the Workday Integration:

1. [Workday Security Configuration](#workday-security-configuration)
   * [Create the Integration System User (ISU)](#create-the-integration-system-user-isu)
   * [Create a security group and assign the ISU to it](#create-a-security-group)
   * [Assign domain security policies to the security group](#assign-domain-security-policies)
   * [Activate security policies](#activate-security-policies)
   * [Register the API Client](#register-the-api-client)
2. [Workday Assessment Configuration](#workday-assessment-configuration)
   * [Setup Statuses](#setup-statuses)
   * [Setup Assessment](#setup-assessment)
   * [Business Process Configuration](#business-process-configuration)
3. [Connect in Alex](#connect-in-alex)

## Workday Security Configuration

### Create the Integration System User (ISU)

First, you'll need to create a dedicated Integration System User in your Workday tenant.
Log in to your Workday tenant with administrator credentials and search for **Create Integration** in the Workday search box.
Select the **Create Integration System User** task.

<img src="https://mintcdn.com/apriora/MgO9zpAVU1rHDSFq/images/workday-create-isu.png?fit=max&auto=format&n=MgO9zpAVU1rHDSFq&q=85&s=645c2274def201dcd15922b7a6174e50" alt="Workday - Create Integration System User" width="2048" height="1266" data-path="images/workday-create-isu.png" />

* Name the user `Alex_Integration_User`.
* When creating the password, avoid using special characters like `&`, `=`, `?`, `%`, `/`, and `\`.
* Make sure that the **Require New Password at Next Sign In** box is not checked.
* Make sure the **Session Timeout Minutes** is set to `0`.
* Check the box, **Do Not Allow UI Sessions** to prevent the integration user from logging in to Workday using a web browser.
* Click **OK** and then **Done** to create the user.

<Note>
  To avoid integration errors caused by expired passwords, Workday recommends
  that you prevent Workday passwords from expiring. Access the **Maintain
  Password Rules** task and add the Alex ISU to the System Users exempt from the
  password expiration field.
</Note>

### Create a Security Group

Next, create a security group and assign your Integration System User to it.
Search for **Create Security Group** in the Workday search box and select the task.

<img src="https://mintcdn.com/apriora/MgO9zpAVU1rHDSFq/images/workday-create-sg.png?fit=max&auto=format&n=MgO9zpAVU1rHDSFq&q=85&s=47c73bdb74c1afbe75d70f5f0004fded" alt="Workday - Create Security Group" width="1282" height="646" data-path="images/workday-create-sg.png" />

* Select the type as `Integration System Security Group (Unconstrained)`.

* Name the group `Alex_Integration_SG`.

* Click **OK** to create the group.

  <img src="https://mintcdn.com/apriora/MgO9zpAVU1rHDSFq/images/workday-edit-sg.png?fit=max&auto=format&n=MgO9zpAVU1rHDSFq&q=85&s=6998a8b11fb974e0f65ac08d4ae4ee78" alt="Workday - Edit Security Group" width="1640" height="846" data-path="images/workday-edit-sg.png" />

* In the **Edit Integration System Security Group (Unconstrained)** screen, make sure the ISU account `Alex_Integration_User` is included in the security group.

* Click **OK**, then **Done**.

### Assign Domain Security Policies

Then, you need to assign the required permissions to the security group you just created.
There are three domains that require permissions. These are the minimum permissions required for the integration to work:

| Functional Area     | Domain Security Policy                | Operation |
| ------------------- | ------------------------------------- | --------- |
| Recruiting          | Candidate Data: Job Application       | Get       |
| Recruiting          | Candidate Data: Assessment Results    | Get, Put  |
| Contact Information | Person Data: Work Contact Information | Get       |

For each domain you must do the following:

* Find the domain using the **View Domain** report.

* Using the related actions, go to **Domain > Edit Security Policy Permissions**.

  <img src="https://mintcdn.com/apriora/1W43b-dWILt_667F/images/workday-view-domain.png?fit=max&auto=format&n=1W43b-dWILt_667F&q=85&s=acc1e446cb20175c93acee4b7d797361" alt="Workday - Create Integration System User" width="2074" height="812" data-path="images/workday-view-domain.png" />

* Using the `+` button in the top left of the **Integration Permissions** table, add the security group you just created as a new row with the appropriate Get and Put permissions.

* Click **OK** to save the changes.

  <img src="https://mintcdn.com/apriora/MgO9zpAVU1rHDSFq/images/workday-edit-domain-security-policies.png?fit=max&auto=format&n=MgO9zpAVU1rHDSFq&q=85&s=14e92b05ee3ecc6a49127556c7981274" alt="Workday - Edit Domain Security Policies" width="2226" height="844" data-path="images/workday-edit-domain-security-policies.png" />

### Activate Security Policies

After updating the security policies to all of the domains in the table above, you need to activate your security policy changes.

* Go to the **Activate Pending Security Policy Changes** task.

* Enter a description of the changes and click **OK** to review the policies.

  <img src="https://mintcdn.com/apriora/MgO9zpAVU1rHDSFq/images/workday-activate-policy-changes.png?fit=max&auto=format&n=MgO9zpAVU1rHDSFq&q=85&s=8ac82a9d1b750a2fbbbca4abe0740f00" alt="Workday - Activate Security Policies" width="2206" height="814" data-path="images/workday-activate-policy-changes.png" />

* Check the **Confirm** box and click **OK** to activate the policies.

  <img src="https://mintcdn.com/apriora/1W43b-dWILt_667F/images/workday-review-policy-changes.png?fit=max&auto=format&n=1W43b-dWILt_667F&q=85&s=3bbde2ab03fe4dd2cc40bbc34fdbfa80" alt="Workday - Review Security Policies" width="2374" height="952" data-path="images/workday-review-policy-changes.png" />

### Register the API Client

<Note>
  OAuth 2.0 is required for this integration. If you don't have it enabled for
  your tenant, an admin can enable it via the **Edit Tenant Setup - Security**
  task, and checking the **OAuth 2.0 Clients Enabled** checkbox under the
  **OAuth 2.0 Settings**.
</Note>

In order for the integration to use the OAuth authentication flow, you will need to create a new API Client for Alex, and generate a refresh token associated with the ISU. Make sure you are logged in to your Workday tenant with administrator credentials, and access the **Register API Client for Integrations** task.

<img src="https://mintcdn.com/apriora/1W43b-dWILt_667F/images/workday-register-api-client1.png?fit=max&auto=format&n=1W43b-dWILt_667F&q=85&s=67cfa631f3020867f27e650685f2cbec" alt="Workday - Register API Client" width="704" height="576" data-path="images/workday-register-api-client1.png" />

* Set the **Client Name** as `Alex`.
* Make sure that the **Non-Expiring Refresh Tokens** box is checked and the **Refresh Token Timeout** is set to `0`.
* Set the **Scope (Functional Areas)** to contain `Contact Information` and `Recruiting`.
* Make sure that the **Include Workday Owned Scope** box is checked.
* Click **OK** to register the API Client.
* Before clicking **Done**, copy and store the **Client ID** and **Client Secret** somewhere (You can only view the **Client Secret** once, at the time of creation).

<img src="https://mintcdn.com/apriora/1W43b-dWILt_667F/images/workday-register-api-client2.png?fit=max&auto=format&n=1W43b-dWILt_667F&q=85&s=6fe341a62dd1db1e087b61d24c5bedae" alt="Workday - Register API Client" width="817" height="677" data-path="images/workday-register-api-client2.png" />

* After clicking **Done** you should be taken to the **View API Clients** screen.
* Copy and store the **Token Endpoint** thats visible at the top of the screen.
* Make sure you are in the **API Clients for Integrations** tab, and locate the `Alex` row.
* Using the related actions, go to **API Client > Manage Refresh Tokens for Integrations**.

<img src="https://mintcdn.com/apriora/1W43b-dWILt_667F/images/workday-view-api-clients1.png?fit=max&auto=format&n=1W43b-dWILt_667F&q=85&s=06406575ad199cfabebbe10bbeb72b1f" alt="Workday - Register API Client" width="1372" height="778" data-path="images/workday-view-api-clients1.png" />

* For the **Workday Account**, select the `Alex_Integration_User` you just created.
* Click **OK**.

<img src="https://mintcdn.com/apriora/1W43b-dWILt_667F/images/workday-view-api-clients2.png?fit=max&auto=format&n=1W43b-dWILt_667F&q=85&s=69e10bc4ff69617165e73ddff7db3cac" alt="Workday - Register API Client" width="654" height="339" data-path="images/workday-view-api-clients2.png" />

* Check the **Generate New Refresh Token** box.
* Click **OK**.
* Copy and store the new `Refresh Token` from the table.

<div className="flex gap-2">
  <img src="https://mintcdn.com/apriora/1W43b-dWILt_667F/images/workday-generate-refresh-token1.png?fit=max&auto=format&n=1W43b-dWILt_667F&q=85&s=34e51cc4909dc07bf60e7a6cf91feb4c" alt="Workday - Edit Reference ID" width="493" height="572" data-path="images/workday-generate-refresh-token1.png" />

  <img src="https://mintcdn.com/apriora/1W43b-dWILt_667F/images/workday-generate-refresh-token2.png?fit=max&auto=format&n=1W43b-dWILt_667F&q=85&s=72aa5f674b1b80fe68e6983fd16125ac" alt="Workday - Include ISU in Security Group" width="500" height="597" data-path="images/workday-generate-refresh-token2.png" />
</div>

## Workday Assessment Configuration

### Setup Statuses

The next step is to setup the assessment statuses in Workday. The Overall Status relates to the current state of the Candidate's interview,
while the Test Status is used once the interview is completed and evaluated.
You will need to create the following statuses:

| Assessment Status Name      | Reference ID          | Overall Status | Test Status |
| --------------------------- | --------------------- | :------------: | :---------: |
| Alex - Trigger Invite       | `Alex_Trigger_Invite` |       Yes      |             |
| Alex - Error                | `Alex_Error`          |       Yes      |             |
| Alex - Triggered            | `Alex_Triggered`      |       Yes      |             |
| Alex - Invite Sent          | `Alex_Invite_Sent`    |                |     Yes     |
| Alex - Interview Scheduled  | `Alex_Scheduled`      |                |     Yes     |
| Alex - Interview Missed     | `Alex_Missed`         |                |     Yes     |
| Alex - Interview Incomplete | `Alex_Incomplete`     |                |     Yes     |
| Alex - Interview Complete   | `Alex_Complete`       |                |     Yes     |
| Alex - Shortlisted          | `Alex_Shortlisted`    |                |     Yes     |
| Alex - Rejected             | `Alex_Rejected`       |                |     Yes     |

* Go to the **Maintain Assessment Status** task.
* Click on the `+` button at the top to add new statuses.
* Add each status from the table above using the given name, and status type.
* Click **OK** to save the new statuses.

  <img src="https://mintcdn.com/apriora/MgO9zpAVU1rHDSFq/images/workday-assessment-status-table.png?fit=max&auto=format&n=MgO9zpAVU1rHDSFq&q=85&s=6d4a4bafbca0e5687feba4ef5fa218e5" alt="Workday - Assessment Statuses" width="1803" height="831" data-path="images/workday-assessment-status-table.png" />

After the page saves, you will need to edit the reference ID for each status.

* Using the related action, go to **Integration IDs > Edit Reference ID**.
* For the given status, copy and paste the reference ID from the table above into the **Reference ID Value** field.
* Click **OK** to save the changes.

<div className="flex gap-2">
  <img src="https://mintcdn.com/apriora/MgO9zpAVU1rHDSFq/images/workday-edit-status-ID.png?fit=max&auto=format&n=MgO9zpAVU1rHDSFq&q=85&s=f42955d945a4e5095c6df2bdafabaae5" alt="Workday - Edit Reference ID" width="920" height="757" data-path="images/workday-edit-status-ID.png" />

  <img src="https://mintcdn.com/apriora/MgO9zpAVU1rHDSFq/images/workday-edit-status-ID-2.png?fit=max&auto=format&n=MgO9zpAVU1rHDSFq&q=85&s=31bc2e89b97bba83a79a4bf1712145a5" alt="Workday - Include ISU in Security Group" width="896" height="732" data-path="images/workday-edit-status-ID-2.png" />
</div>

### Setup Assessment

Now you will need to setup the Alex assessment in Workday. You can use this using the **Maintain Recruiting Assessment Tests** task.

<img src="https://mintcdn.com/apriora/1W43b-dWILt_667F/images/workday-recruiting-assessment-tests.png?fit=max&auto=format&n=1W43b-dWILt_667F&q=85&s=58202cf9cc3b1c52f8cc5f92cd00f6e9" alt="Workday - Recruiting Assessment Tests" width="2496" height="670" data-path="images/workday-recruiting-assessment-tests.png" />

* Use the `+` button at the top to add a new Assessment Test.
* Name the test `Alex Interview` and click **OK** to save the new assessment.
* You also need to edit the reference ID for the assessment. Using the related action, go to **Integration IDs > Edit Reference ID**.
* Set the **Reference ID Value** to be `alex_interview`
* Click **OK** to save the changes.

<div className="flex gap-2">
  <img src="https://mintcdn.com/apriora/MgO9zpAVU1rHDSFq/images/workday-edit-test-ID.png?fit=max&auto=format&n=MgO9zpAVU1rHDSFq&q=85&s=f49c23c131bfddb3ae1a21344b7fb712" alt="Workday - Edit Test ID" width="778" height="724" data-path="images/workday-edit-test-ID.png" />

  <img src="https://mintcdn.com/apriora/MgO9zpAVU1rHDSFq/images/workday-edit-test-ID-2.png?fit=max&auto=format&n=MgO9zpAVU1rHDSFq&q=85&s=21a2ace1cfdfbcdfde1387e425d6361e" alt="Workday - Edit Test Reference ID" width="908" height="716" data-path="images/workday-edit-test-ID-2.png" />
</div>

### Business Process Configuration

<Tip>
  The integration works automatically with Workday's standard Assess Candidate
  Business Process - no additional configuration is needed. Just ensure that
  your Job Application business process includes the assessment step.
</Tip>

## Connect in Alex

The final step is to authorize the connection through Kombo from Alex.

* Make sure you are logged in to Alex as an Admin.
* Go to the **Settings** page, click on the **Integrations** tab, then click on **Workday**.
* Click **Connect** on the **Workday ATS** card to link your recruiting tenant. If you use Workday's assessment business process to trigger interviews, also click **Connect** on the **Workday Assessment** card.
* A Kombo connection window opens. Authorize access using the **Client ID**, **Client Secret**, **Token Endpoint**, and **Refresh Token** you created above — Kombo uses these to connect to your Workday tenant on Alex's behalf.
* Once the connection completes, the card shows a **Connected** status and the Workday integration is active.
