LogoLogo
Login to CortexBook a DemoCortex Academycortex.io
  • Cortex Docs
  • Cortex Quick Start
  • Ingesting data into Cortex
    • Managing Entities
      • Adding entities
        • Add services
        • Add domains
        • Add teams
        • Add custom entity types
        • Defining dependencies
      • Entity details page
      • Defining ownership
      • Defining relationship types
      • Grouping entities
      • Adding external documentation
      • Adding Deploy data
      • Adding custom data
      • Viewing discovered entities
      • Archiving entities
      • Relationship graph
      • Using On-call Assistant for incidents
      • Managing Terraform infra in Cortex
    • Managing Catalogs
    • Integrations
      • Internally hosted integrations
      • ArgoCD
      • AWS
      • Azure DevOps
      • Azure Resources
      • BambooHR
      • Bitbucket
      • BugSnag
      • Buildkite
      • Checkmarx
      • CircleCI
      • ClickUp
      • Codecov
      • Coralogix
      • Datadog
      • Dynatrace
      • Entra ID (Azure AD)
      • FireHydrant
      • GitHub
      • GitLab
      • Google
      • Grafana
      • incident.io
      • Instana
      • Jenkins
      • Jira
      • Kubernetes
      • LaunchDarkly
      • Lightstep
      • Mend
      • Microsoft Teams
      • New Relic
      • Okta
      • Opsgenie
      • PagerDuty
      • Prometheus
      • Rollbar
      • Rootly
      • Sentry
      • ServiceNow
      • Slack
      • Snyk
      • SonarQube
      • Splunk Observability Cloud (SignalFx)
      • Splunk On-Call (VictorOps)
      • Sumo Logic
      • Veracode
      • Wiz
      • Workday
      • xMatters
  • Scorecards
    • Initiatives and Action items
      • Creating issues based on Initiatives
    • Scorecard rule exemptions
    • Scorecard rule filters
    • Scorecard examples
    • Scorecards as code
  • Reports
    • Executive report
    • All Scorecards report
    • Bird's eye report
    • Progress report
    • Report card
  • Eng Intelligence
    • Custom Metrics
    • Jira Metrics
    • Metrics Explorer (Beta)
  • Cortex Query Language (CQL)
    • Using CQL reports
    • Using JQ in Cortex
  • Workflows
    • Creating a Workflow
      • Workflows as code
    • Blocks
    • Running a Workflow
    • Registering a Scaffolder template
      • Scaffolder advanced usage
    • Using a Workflow to sync in ArgoCD
    • Kicking off a Jenkins pipeline in a Workflow
  • Plugins
    • Creating a plugin
      • Creating a plugin proxy
    • Migrating Backstage plugins to Cortex
  • Engineering homepage
  • Workspace Settings
    • Using GitOps for Cortex
      • GitOps logs
    • Managing users
      • Roles and permissions
        • Custom roles
        • Team ownership entity editing
      • Configuring SSO
        • Microsoft Entra ID
        • Google
        • Other OIDC providers
        • Okta
          • Okta SCIM
      • Configuring identity mappings
      • Onboarding management
    • API keys, secrets, and tokens
      • Secrets
      • Personal tokens
    • Audit logs
    • Entity settings
      • Data verification
      • Auto archiving entities
    • IP allowlist
    • Notifications
      • Notification logs
    • Customizing your workspace
    • Using search in Cortex
  • Cortex API
    • REST API operations
      • API Keys
      • Audit Logs
      • Catalog Entities
      • Custom Data
        • Custom Data (Advanced)
      • Custom Events
      • Custom Metrics
      • Dependencies
      • Deploys
      • Discovery Audit
      • Docs
      • Eng Intel: User Labels
      • Entity Relationship Types (Beta)
      • Entity Relationships (Beta)
      • Entity Types
      • GitOps Logs
      • Groups
      • Initiatives
      • Integrations APIs
        • Azure Active Directory (Entra ID) API
        • Azure Resources API
        • AWS API
        • Azure DevOps API
        • CircleCI API
        • Coralogix API
        • Datadog API
        • GitHub API
        • GitLab API
        • incident.io API
        • LaunchDarkly API
        • New Relic API
        • PagerDuty API
        • Prometheus API
        • SonarQube API
      • IP Allowlist
      • Notification Logs
      • On call
      • Packages
      • Plugins
      • Queries
      • SCIM
      • Scorecards
      • Secrets
      • Team Hierarchies
      • Teams
      • Workflows
Powered by GitBook
On this page
  • How to configure Workday with Cortex
  • Step 1: Generate an ownership report in Workday
  • Step 2: Configure the integration in Cortex
  • Step 3: Configure the report mappings
  • How to connect Cortex entities to Workday
  • Discovery
  • Automatic import of teams
  • Entity descriptor
  • Expected results
  • Scorecards and CQL
  • Background sync
  • Limitations
  • Still need help?​

Was this helpful?

Export as PDF
  1. Ingesting data into Cortex
  2. Integrations

Workday

Last updated 1 month ago

Was this helpful?

is cloud-based enterprise software that unifies finance and workforce management in a single platform. Integrate Workday with Cortex to manage teams and hierarchies, enforce ownership, and drive operational excellence.

How to configure Workday with Cortex

Step 1: Generate an ownership report in Workday

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

The required fields in the report differ depending on which option you choose. See the tabs below for instructions.

Your report will need the following fields:

  • email: Email address for employee. Use the same address that employees will use to access Cortex.

  • employeeId: Unique ID for each employee.

  • firstName: Employee first name. This will be displayed in Cortex.

  • lastName: Employee last name. This will be displayed in Cortex.

  • employeeRole (optional): Employee role. This will be displayed in Cortex.

  • employeeSupervisoryOrgId: The ID for the supervisory organization that the employee is in. Cortex uses this field to group employees.

  • teamDisplayName: A display name for individual teams based on the employeeSupervisoryOrgId; this should be the same across all employees who belong to the same supervisory org. This will become the Cortex team name and tag.

  • managerEmail: Email address for the employee's manager. If Cortex detects an employee with the same email as the managerEmail, that employee will be added to the team with a "Manager" role.

  • teamSupervisoryOrgId: The supervisory org ID for the team that the employee is part of. The organization registered in this field will become a "parent" in the team hierarchy, while the org registered in employeeSupervisoryOrgId will become a "child" in the hierarchy.

  • teamListKey (for One Employee - Multiple Teams): Key for the list of teams associated with a given user.

Any changes to the employeeSupervisoryOrgId will result in the creation of a new team because this field is how Cortex identifies teams.

Your report will need the following fields:

  • email: Email address for employee. Use the same address that employees will use to access Cortex.

  • employeeId: Unique ID for each employee.

  • firstName: Employee first name. This will be displayed in Cortex.

  • lastName: Employee last name. This will be displayed in Cortex.

  • employeeRole (optional): Employee role. This will be displayed in Cortex.

  • teamName: Team name for employee. This field is what we use to group employees into teams in Cortex.

  • teamDisplayName (optional): Display name for the team. This will be used for the title and the tag for any teams imported from Workday at time of import. If not included, teamName will be used instead. This should be the same for all employees on the same team.

  • managerEmail: Email address for the employee's manager. Cortex uses this field to create team hierarchies. If Cortex detects an employee with the same email as the managerEmail, that employee will be added to the team with a "Manager" role.

    • Omit this field if you do not want to auto-import teams and the corresponding hierarchy from Workday.

Any changes to the teamName will result in the creation of a new team because this field is how Cortex identifies teams.

Step 2: Configure the integration in Cortex

    1. In Cortex, click your avatar in the lower left corner, then click Settings.

    2. Under "Integrations", click Workday.

  1. Click Add configuration.

  2. Configure the Workday integration form:

    • Username: Enter the username associated with the Workday account used to generate the ownership report.

    • Password: Enter the password for the Workday username.

    • Ownership report URL: Enter the URL for the ownership report you generated.

      • Do not include query parameters in the URL.

  3. Click Save.

Step 3: Configure the report mappings

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

  1. Configure the mappings:

    • Employee Attributes: Map report fields that pertain to employees, including the following:

      • Employee ID

      • Email

      • First Name

      • Last Name

      • Role (optional)

        • Imports employees' roles and populates a badge that appears next to an employee's name.

      • Manager Email

        • When added, lists the corresponding manager for a given employee. The report should also include an entry for the manager to populate the field.

    • Team Attributes: Map report fields that pertain to employees' teams.

      • Team type: Select whether to map the fields using One Employee - One Team or One Employee - Multiple Teams.

      • If using One Employee - One Team:

        • Team ID: Enter the team ID. New teams are imported based on this ID. If the identifier (i.e. teamName) changes, Cortex will create a new team.

        • Team Name: Enter a display name for the team in Cortex. Cortex will update this name if changes are detected in Workday.

      • If using One Employee - Multiple Teams:

        • Team List Key: Enter the list key for the ist that contains teams you want imported into Cortex for a given employee entry. This requires the teamListKey field in the Workday report.

        • Team ID: Enter the team ID. New teams are imported based on this ID. If the identifier (i.e. teamName) changes, Cortex will create a new team.

        • Team ID - Fallback: Enter a fallback team for a user who does not have an associated teamListKey.

        • Team Name: Enter a display name for the team in Cortex. Cortex will update this name if changes are detected in Workday.

        • Team Name - Fallback: Enter a fallback team name for the fallback team ID defined above.

  2. At the bottom of the screen, click Save.

Configure the hierarchy fields for auto-importing Workday teams

  • Field on parent team: The value selected becomes a parent team for value selected in Field on child team.

  • Is List: Toggle on when an entry for the parent field is a parent to multiple teams.

  • Field on child team: The value selected is defined as child team.

  • Root Team IDs: The ID for the team you expect to be at the top of the hierarchy.

How to connect Cortex entities to Workday

Discovery

If your Workday teams don’t cleanly match the Cortex entity tag, you can override this in the Cortex entity descriptor.

Note: The team name is case-sensitive and should be exactly the same as in the report's teamDisplayName or teamName field.

Automatic import of teams

You can choose to automatically import discovered teams and team relationships from Workday into Cortex. Before enabling auto import, make sure your Workday report includes the managerEmail field to ensure that team relationships are imported.

  1. Under Enabled identity providers, make sure the box is checked next to Workday.

  2. Under Enable auto import of teams, click the toggle next to Auto import teams to turn this setting on.

If an entity already exists with a tag that matches the tag of a Workday team that you are importing, Cortex automatically adds a -team suffix to the Workday team's entity tag.

For example, if payments exists as an entity tag in Cortex, then you import a Payments team from Workday, Cortex will import the team's tag as payments-team.

Manually trigger team import

You can also manually trigger this sync:

  1. Click Create team.

  2. In the upper left corner, click Sync teams.

Entity descriptor

x-cortex-owners:
  - type: group
    name: workday-team-tag
    provider: CORTEX
    description: This is a description for this owner.
Field
Description
Required

type

Ownership type (in this case, group)

✓

name

✓

provider

The source of the team (in this case, it was a Cortex-created team)

✓

description

Description for the owner

Expected results

Entity pages

Once the integration is set up, Cortex will automatically import and structure your team hierarchy. Any teams imported from Workday will appear with a description: "Automatically created by Cortex".

On each team's details page, any team members Cortex detects will populate under the Members tab. If you included the "Role" field in your Workday report, members' roles will appear in a badge next to their names.

Scorecards and CQL

All ownership details

A special built-in type that supports a null check or a count check, used to enforce ownership of entities.

Definition: ownership: Ownership | Null

Example

An initial level in a security Scorecard might include a rule to ensure an entity has at least one team as an owner:

ownership.teams().length > 0
All owner details

List of owners, including team members and individual users, for each entity

Definition: ownership.allOwners()

Example

The Scorecard might include a rule to ensure that entity owners all have an email set:

ownership.allOwners().all((member) => member.email != null)
Team details

List of teams for each entity

Definition: ownership.teams(): List<Team>

Example

The Scorecard might include a rule to ensure that an entity owners all have a description and are not archived:

ownership.teams().all(team => team.description != null and team.isArchived == false)

Background sync

Cortex syncs teams from the report every day at 9 a.m. UTC.

Limitations

Cortex does not support hierarchies with cycles. For example, let's say Employee A is on the platform team, Employee B is on the frontend team, and both report to Manager C on the engineering team. If Manager C reported to someone on the platform team, that would create a cycle between the platform and engineering teams.

The following options are available to get assistance from the Cortex Customer Engineering team:

  • Chat: Available in the Resource Center

  • Slack: Users with a connected Slack channel will have a workflow added to their account. From here, you can either @CortexTechnicalSupport or add a :ticket: reaction to a question in Slack, and the team will respond directly.

Don’t have a Slack channel? Talk with your Customer Success Manager.

In Cortex, navigate to the :

The One Employee - One Team configuration is best if your report includes employees who belong to a single team. The One Employee - Multiple Teams configuration is recommended if employees have a list of teams they belong to. This is best if you are configuring the integration based on and/or if users manage teams they belong to.

If you choose to , you must also configure the hierarchy fields mappings:

If set, Cortex will use this to that may be in the hierarchy.

By default, Cortex will use the (e.g. my-entity) as the "best guess" for Workday team. For example, if your entity tag is my-entity, then the corresponding name in Workday should also be my-entity.

Navigate to in Cortex.

The next automatic import will occur when the background at 9 a.m. UTC.

Navigate to in Cortex.

The linked to the auto-created Workday team

You can sync teams manually at any time by clicking the Sync teams for Workday button from in Cortex. Doing so will not auto-import teams.

Still need help?

Email: , or open a support ticket in the in app Resource Center

Workday
Workday settings page
Settings > Entities > Teams
Catalogs > Teams
Workday settings
​
help@cortex.io
supervisory orgs
automatically import Workday teams
break cycles
entities sync runs
entity tag
tag of the Cortex team entity