> For the complete documentation index, see [llms.txt](https://docs.cortex.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cortex.io/ingesting-data-into-cortex/integrations/workday.md).

# Workday

{% hint style="info" %}
Cortex connects to many third-party vendors whose system interfaces frequently change. As a result, integration behavior or configuration steps may shift without notice. If you encounter unexpected issues, check with your system administrator or refer to the vendor's documentation for the most current information. Additionally, integration sync times vary and are subject to scheduling overrides and timing variance.
{% endhint %}

## Why use the integration for Workday

Workday is the system of record for your people, teams, and reporting relationships. However, that organizational structure often lives separately from the tools your engineers use day to day. The integration for Workday bridges that gap by syncing your Workday ownership data directly into Cortex, automatically importing employees, teams, and hierarchies so that ownership in your software catalog stays aligned with how your organization is actually structured.

Instead of manually maintaining team rosters and reporting lines in two places, you can rely on Workday as the source of truth and let Cortex handle the rest: connecting people to the services, resources, and entities they own, enforcing accountability through Scorecards, and ensuring that as teams reorganize or employees change roles, your ownership model evolves with them. This is especially valuable for organizations that want to drive operational excellence at scale, where knowing who owns what—and being able to trust that information—is foundational to incident response, compliance, and engineering productivity.

## Configuring Workday

### Prerequisites

1. Users with the `Configure Integrations` permissions can configure Workday.

### Step 1: Generating an ownership report in Workday

1. In Workday, generate an ownership report. Depending on how you want to manage teams and the corresponding hierarchy, you can choose one of the following options:

   * Manage teams based on Workday supervisory organizations
   * Manage teams based on Workday teams

   Note that the required fields in the report differ depending on which option you choose. See the table below.

<table><thead><tr><th width="156.296875">Field</th><th width="343.765625">Description</th><th width="136.2421875" align="center">Required for supervisory orgs?</th><th align="center">Required for Workday teams?</th></tr></thead><tbody><tr><td><code>email</code></td><td>Email address for employee. Use the same address that employees will use to access Cortex.</td><td align="center"><i class="fa-check">:check:</i></td><td align="center"><i class="fa-check">:check:</i></td></tr><tr><td><code>employeeId</code></td><td>Unique employee ID.</td><td align="center"><i class="fa-check">:check:</i></td><td align="center"><i class="fa-check">:check:</i></td></tr><tr><td><code>firstName</code></td><td>Employee first name (displayed in Cortex).</td><td align="center"><i class="fa-check">:check:</i></td><td align="center"><i class="fa-check">:check:</i></td></tr><tr><td><code>lastName</code></td><td>Employee last name (displayed in Cortex).</td><td align="center"><i class="fa-check">:check:</i></td><td align="center"><i class="fa-check">:check:</i></td></tr><tr><td><code>employeeRole</code></td><td>Employee role (displayed in Cortex).</td><td align="center">optional</td><td align="center">optional</td></tr><tr><td><code>employeeSupervisoryOrgId</code></td><td>Supervisory org ID for employee. Cortex uses this field to group employees.<br><br>Any changes to this field results in the creation of a new team as this is how Cortex identifies teams.</td><td align="center"><i class="fa-check">:check:</i></td><td align="center"><i class="fa-x">:x:</i></td></tr><tr><td><code>teamName</code></td><td>Team name for employee. This field is used to group employees into teams in Cortex.<br><br>Any changes to this field results in the creation of a new team as this is how Cortex identifies teams.</td><td align="center"><i class="fa-x">:x:</i></td><td align="center"><i class="fa-check">:check:</i></td></tr><tr><td><code>teamDisplayName</code></td><td>Display name for team. This is used for the title and tag for any teams imported from Workday. If not included, <code>teamName</code> is used instead. This should be the same for all employees on the same team.</td><td align="center"><i class="fa-check">:check:</i></td><td align="center">optional</td></tr><tr><td><code>managerEmail</code></td><td>Email address for employee's manager. Cortex uses this field to create team hierarchies. If Cortex detects an employee with the same email as the <code>managerEmail</code>, that employee is added to the team with a <strong>Manager</strong> role.<br><br><strong>Omit this field</strong> if you <strong>do not</strong> want to auto-import teams and the corresponding hierarchy from Workday.</td><td align="center"><i class="fa-check">:check:</i></td><td align="center"><i class="fa-check">:check:</i></td></tr><tr><td><code>teamSupervisoryOrgId</code></td><td>Supervisory org ID for the employee's team. This org becomes the parent of <code>employeeSupervisoryOrgId</code> in the team hierarchy.</td><td align="center"><i class="fa-check">:check:</i></td><td align="center"><i class="fa-x">:x:</i></td></tr><tr><td><code>teamListKey</code></td><td>Key for the list of teams associated with a given user. This field is for a single employee on multiple teams.</td><td align="center"><i class="fa-check">:check:</i></td><td align="center"><i class="fa-x">:x:</i></td></tr></tbody></table>

### Step 2: Installing the Workday integration

1. From the main sidebar in Cortex, select **Integrations**.
2. Locate Workday, then click **Install**.
3. In the right panel, do the following:
   1. From the **Category** drop-down menu, select the a category to associate with Workday. **Team** is the default category.
   2. Under **Username**, enter the username associated with the Workday account used to generate the ownership report.
   3. Under **Password**, enter the password associated with the Workday username.
   4. Under **Ownership report URL**, enter the URL for the ownership report you generated.
      1. Provide the base report URL. Do not include query parameters in the URL. If necessary, Cortex appends `?format=json` when making requests.
4. Click **Save**.

### Step 3: Configuring the report mappings in Cortex

After saving the configuration, you can configure how you want the fields to map to different elements in Cortex. The options available in each drop-down menu mirror the fields included when generating the ownership report.

**Note on field mapping availability**

When you first add or update a Workday report URL, Cortex runs a background sync job to fetch and cache the report's column structure. The field mapping drop-downs on the configuration page are populated from this cache.

If you open the configuration page immediately after adding or rotating credentials, the drop-downs may appear empty or validation errors like ***Employee Id is required*** may surface before the sync completes. If this occurs, wait a few minutes and refresh the page—the column options populate once the background sync has finished.

{% hint style="info" %}
Cortex runs a daily sync to keep the field cache up-to-date. If your Workday report structure changes, the latest mapping drop-downs are reflected within 24 hours.
{% endhint %}

**To configure report mappings**:

1. From the main sidebar, select **Integrations**.
2. Locate Workday, then click **Settings**.<br>

   <div align="left" data-with-frame="true"><figure><img src="/files/X2sKQ6Nn1393NCcxXzEx" alt="The &#x27;Settings&#x27; button next to the Workday integration on the Integrations page." width="375"><figcaption></figcaption></figure></div>
3. On the Workday page, do the following:
   1. In the **Employee attributes** section, map report fields that pertain to employees:
      1. **Employee ID**
      2. **Email**
      3. **First Name**
      4. **Last Name**
      5. **Role (optional)** - Imports the employees' roles and populates a badge that appears next to their name.
      6. **Manager Email** - Lists the corresponding manager for a given employee. The report should also include an entry for the manager to populate the field.
      7. Click **Save**.
   2. In the **Team attributes** section, map report fields that pertain to employees' teams. Select one of the following:
      1. **One Employee-One Team** - Select this option if your report includes employees who belong to a single team. This is best if you are configuring the integration based on [supervisory orgs](#supervisory-organizations) and/or if users manage teams they belong to.
         1. **Team ID** - Enter the team ID. New teams are imported based on this ID. If the identifier (i.e. `teamName`) changes, Cortex creates a new team.
         2. **Team Name** - Enter a display name for the team in Cortex. Cortex updates this name if changes are detected in Workday.
      2. **One Employee-Multiple Teams** - Select this option if your report includes employees who belong to multiple teams.
         1. **Team List Key** - Enter the list key for the list that contains teams you want imported into Cortex for a given employee entry. This requires the `teamListKey` field in the Workday report. The `teamListKey` should be a list of objects, where each object has at least `teamName` and `teamId` properties:
         2. **Team ID** - Enter the team ID. New teams are imported based on this ID. If the identifier (i.e. `teamName`) changes, Cortex creates a new team.
         3. **Team ID-Fallback** - Enter a fallback team for a user who does not have an associated `teamListKey`.
         4. **Team Name** - Enter a display name for the team in Cortex. Cortex updates this name if changes are detected in Workday.
         5. **Team Name-Fallback** - Enter a fallback team name for the fallback team ID defined above.
      3. Click **Save**.
   3. In the **Hierarchy fields** section, configure the hierarchy fields mappings. This is only required if you want to automatically import Workday teams. Note that you must [enable the option to auto-import Workday teams](/ingesting-data-into-cortex/integrations/workday/using-the-integration-for-workday.md#automatically-import-teams) in order for new teams to be created automatically. Hierarchy relationships are written for existing teams on manual import and whenever hierarchy field mappings are updated, regardless of whether auto-import is enabled.
      1. **Field on parent team** - The value selected becomes a parent team for value selected in **Field on child team**.
      2. **Is List** - Toggle on when an entry for the parent field is a parent to multiple teams.
      3. **Field on child team** - The value selected is defined as child team.
      4. **Root Team IDs** - The ID for the team you expect to be at the top of the hierarchy. If set, Cortex uses this to [break cycles](#limitations) that may be in the hierarchy.
      5. Click **Save**.

{% hint style="info" %}
To modify an existing configuration, see [Modifying an integration configuration](/ingesting-data-into-cortex/integrations.md#modifying-an-integration-configuration).
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cortex.io/ingesting-data-into-cortex/integrations/workday.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
