diff --git a/connection-guides/hris/workday_wql.mdx b/connection-guides/hris/workday_wql.mdx new file mode 100644 index 00000000..d11b72d7 --- /dev/null +++ b/connection-guides/hris/workday_wql.mdx @@ -0,0 +1,443 @@ +--- +title: "Workday WQL (OAuth)" +description: "Follow these steps to understand the process and actions required for a successful connection." +--- + +import IntegrationFooter from "/snippets/integration-footer.mdx"; + + + This guidance assumes you have administrator privileges for your Workday account. + + + +## Finding your Workday Tenant + +Log in to your Workday account. In the browser’s address bar, locate your tenant immediately after `workday.com/`.
+ +If your URL is `https://my-instance.workday.com/my-tenant/d/etc`, your tenant is `my-tenant`. + + Workday Tenant + + + +## Finding the Web Services Endpoint + + + + Search and navigate to the `Public Web Services` report. + + Human Resources Web Service + + + + + Locate **Human Resources** and hover to open the menu. From the three‑dot menu choose `Web Service` then click `View WSDL` (the page may take a minute to load). + + WSDL Service + + + + + Search for `wsdl:service` or scroll to the bottom of the page. You should see a section like this: + + WSDL Service + + + Copy everything before `/service` in the location attribute. Exclude the `https://` prefix. In the example above this would be `wd2-impl-services1.workday.com/ccx` (yours may differ, e.g. `wd5-services1.myworkday.com/ccx`).

+ + Save this value to be used in a later step. +
+
+ + +## Set up an Integration System User + + + + Search and navigate to the `Create Integration System User` task. + + Create Integration System User + + + + + Enter a username and password in the Account Information section. + + Account Information + + + Click `OK` to create the user. + + + +## Add the Integration System User to a Security Group + + + + Search and navigate to the `Create Security Group` task. + + Create Security Group + + + + + Select `Integration System Security Group (Unconstrained)` from the Type of Tenanted Security Group drop‑down and enter the same name used when creating the Integration System User. + + Security Group Type + + + Click `OK`. + + + + +## Configure Domain Security Policy Permissions + + + + Search and navigate to the `Maintain Permissions for Security Group` task. + + Create Security Group + + + + + Select the Security Group name created earlier. + + Create Security Group + + + This integration uses the following Workday Security Group permissions. + Set each listed permission to **Get Only/View Only** for read access in the _View/Modify Access_ column. + + + The Workday HRIS integration currently requires **all** of the permissions listed below to be enabled for full support.
+ + Workday's API may return an error response if any of these permissions are missing. +
+ + + View/Modify Access + + + + Please note that Security Group Permissions can be customised within a Workday organisation, and this list does not account for such customisations. + + + | Domain Security Policy | View/Modify Access | + | ---------------------- | ------------------ | + | Workday Query Language | Get Only | + | Workday Query Language | View Only | + | Set Up: Plan Publishing | Get Only | + | WQL for Workday Extend | Get Only | + | Person Data: Name | Get Only | + | Person Data: Marital Status | Get Only | + | Person Data: Work Email | Get Only | + | Person Data: ID Information | Get Only | + | Person Data: Home Phone | Get Only | + | Person Data: Gender | Get Only | + | Person Data: Home Email | Get Only | + | Person Data: Date of Birth | Get Only | + | Person Data: Work Phone | Get Only | + | Person Data: Ethnicity | Get Only | + | Worker Data: Current Staffing Information | Get Only | + +
+
+ + +## Activate the Security Policy Changes + + + + Search and navigate to the `Activate Pending Security Policy Changes` task. + + Human Resources Web Service + + + + + Add an optional comment then click `OK`. + + Human Resources Web Service + + + Review the policies that require approval in the summary of the security policy changes. Tick the confirmation box and click `OK` to approve the pending security policy changes to activate them. + + Human Resources Web Service + + + + + +## Register the REST API Client + + + + Search and navigate to the `Register API Client for Integrations` task. + + Human Resources Web Service + + + + + Register the API client with the following details: + + - **Client Name**: Any name (e.g. `StackOne_Integrations`). + - **Non‑Expiring Refresh Tokens**: Tick the box. + - **Scopes**: Select required functional scopes for API access: + - _Adaptive Planning for Financial Plans_ + - _Adaptive Planning for the Workforce_ + - _Staffing_ + - _System_ + + + WSDL Service + + Click `OK`. + + + + After registration a page displays the **Client ID** and **Client Secret**. Copy and store these credentials securely. + + WSDL Service + + + + + + - At the top of the page click the **menu (⋯)** icon. + - Select **API Client**. + - Click **Manage Refresh Tokens for Integrations**. + + + WSDL Service + + + Choose your Workday account (the [Integration System User](#set-up-an-integration-system-user) you've created earlier) and click `OK`. + + WSDL Service + + + On the refresh token page select **Generate New Refresh Token** and click `OK`. + + WSDL Service + + + When generated, copy the token and click `Done`. + + WSDL Service + + + + + +## Custom WQL Query + + + This section outlines a recommended workflow for generating a WQL query. If your organisation already has a validated WQL query for the required employee data, you can skip these steps and proceed directly to **[Connecting to StackOne](#connecting-to-stackone)**. + + + + Creating a custom report is optional for generating WQL (Workday Query Language). However, there are several ways to obtain WQL:
+ - **Custom Report Feature**: By using the custom report feature, users can more accurately tailor the data they wish to extract from the data source and then convert the report to WQL.
+ - **Standard Reports**: You can utilise existing standard reports and convert them directly to WQL. To do this, navigate to **Convert Report to WQL** and select the `Standard Report`.
+ - **Data Source Navigation**: You can also navigate to the Data Source using global search and access a specific data source (e.g., All Workers) to view the available data source fields. From there, you can form a WQL query according to the WQL syntax. + +
+ +### Create a Custom Report + + + + Use the global search bar to search for "Create Custom Report". + + Global search for Create Custom Report + + + Enter the following details: + - **Report Name**: Name for the WQL report. + - **Optimised for Performance**: If ticked, only indexed data sources are shown. Untick this option to display all data sources. + - **Data Source**: Select the data source you want to build a custom report for (e.g. All Workers). + - **Report Type**: Select `Advanced`. + + + Create Custom Report details + + + Click `OK` to create the report. + + + + + After creating the report you are taken to the editing page. Select the fields you want to include from the data source. + + + Edit Custom Report + + Click `OK` to save the field selection. + + + + + Test the report by clicking `Test` in the three-dot action menu beside the report name. + + Edit Custom Report + + + + + +### Convert the Report to WQL in Workday + + + + Use the global search bar to search for "Convert Reports to WQL". + + Global search for Convert Reports to WQL + + + Select the custom report you created earlier in the [Create a Custom Report](#create-a-custom-report) step. + + Select created custom report + + Click `OK`. + + + + You are taken to a page showing the generated WQL query for your custom report. + + Generated WQL Query + + Copy this WQL query and paste it into the `Employee WQL Query` field when connecting through the StackOne Connector Hub. + + + WQL does not support calculated fields when converting custom reports to WQL. + + + + + +## Connecting to StackOne + +Enter the following details in the StackOne Connector Hub: + +- **[Web Service Endpoint](#finding-the-web-services-endpoint)** +- **[Tenant](#finding-your-workday-tenant)** +- **[Client ID](#register-the-rest-api-client)** +- **[Client Secret](#register-the-rest-api-client)** +- **[Non-expiring Refresh Token](#register-the-rest-api-client)** +- **Employee WQL Query**: The custom Workday Query Language (WQL) query used when fetching employees. + + ```sql + /* Sample WQL query format */ + SELECT employeeID,legalFirstName,legalLastName, ... FROM employees; + ``` + +Click **Connect**. + + + Linking your Account + + + + + + + https://doc.workday.com + \ No newline at end of file diff --git a/images/workday-wql/image1.png b/images/workday-wql/image1.png new file mode 100644 index 00000000..de284d1a Binary files /dev/null and b/images/workday-wql/image1.png differ diff --git a/images/workday-wql/image10.png b/images/workday-wql/image10.png new file mode 100644 index 00000000..1a23abd6 Binary files /dev/null and b/images/workday-wql/image10.png differ diff --git a/images/workday-wql/image13.png b/images/workday-wql/image13.png new file mode 100644 index 00000000..fc77de5b Binary files /dev/null and b/images/workday-wql/image13.png differ diff --git a/images/workday-wql/image14.png b/images/workday-wql/image14.png new file mode 100644 index 00000000..37efd96c Binary files /dev/null and b/images/workday-wql/image14.png differ diff --git a/images/workday-wql/image15.png b/images/workday-wql/image15.png new file mode 100644 index 00000000..91716a74 Binary files /dev/null and b/images/workday-wql/image15.png differ diff --git a/images/workday-wql/image16.png b/images/workday-wql/image16.png new file mode 100644 index 00000000..010a8aa7 Binary files /dev/null and b/images/workday-wql/image16.png differ diff --git a/images/workday-wql/image17.png b/images/workday-wql/image17.png new file mode 100644 index 00000000..7d51999a Binary files /dev/null and b/images/workday-wql/image17.png differ diff --git a/images/workday-wql/image18.png b/images/workday-wql/image18.png new file mode 100644 index 00000000..10bb0256 Binary files /dev/null and b/images/workday-wql/image18.png differ diff --git a/images/workday-wql/image19.png b/images/workday-wql/image19.png new file mode 100644 index 00000000..b8b9c5b0 Binary files /dev/null and b/images/workday-wql/image19.png differ diff --git a/images/workday-wql/image2.png b/images/workday-wql/image2.png new file mode 100644 index 00000000..1ee10384 Binary files /dev/null and b/images/workday-wql/image2.png differ diff --git a/images/workday-wql/image20.png b/images/workday-wql/image20.png new file mode 100644 index 00000000..ed11abca Binary files /dev/null and b/images/workday-wql/image20.png differ diff --git a/images/workday-wql/image21.png b/images/workday-wql/image21.png new file mode 100644 index 00000000..6a455dbb Binary files /dev/null and b/images/workday-wql/image21.png differ diff --git a/images/workday-wql/image22.png b/images/workday-wql/image22.png new file mode 100644 index 00000000..d96ae6a2 Binary files /dev/null and b/images/workday-wql/image22.png differ diff --git a/images/workday-wql/image23.png b/images/workday-wql/image23.png new file mode 100644 index 00000000..b5941a4c Binary files /dev/null and b/images/workday-wql/image23.png differ diff --git a/images/workday-wql/image24.png b/images/workday-wql/image24.png new file mode 100644 index 00000000..63093c27 Binary files /dev/null and b/images/workday-wql/image24.png differ diff --git a/images/workday-wql/image3.png b/images/workday-wql/image3.png new file mode 100644 index 00000000..21add5ea Binary files /dev/null and b/images/workday-wql/image3.png differ diff --git a/images/workday-wql/image4.png b/images/workday-wql/image4.png new file mode 100644 index 00000000..21e81de4 Binary files /dev/null and b/images/workday-wql/image4.png differ diff --git a/images/workday-wql/image5.png b/images/workday-wql/image5.png new file mode 100644 index 00000000..042bf44c Binary files /dev/null and b/images/workday-wql/image5.png differ diff --git a/images/workday-wql/image6.png b/images/workday-wql/image6.png new file mode 100644 index 00000000..77d50a5c Binary files /dev/null and b/images/workday-wql/image6.png differ diff --git a/images/workday-wql/image7.png b/images/workday-wql/image7.png new file mode 100644 index 00000000..022d493b Binary files /dev/null and b/images/workday-wql/image7.png differ diff --git a/images/workday-wql/image8.png b/images/workday-wql/image8.png new file mode 100644 index 00000000..f308a846 Binary files /dev/null and b/images/workday-wql/image8.png differ diff --git a/images/workday-wql/image9.png b/images/workday-wql/image9.png new file mode 100644 index 00000000..ed09b0ed Binary files /dev/null and b/images/workday-wql/image9.png differ diff --git a/images/workday-wql/workday_wql_convert_report_to_wql_5.png b/images/workday-wql/workday_wql_convert_report_to_wql_5.png new file mode 100644 index 00000000..1288f9d0 Binary files /dev/null and b/images/workday-wql/workday_wql_convert_report_to_wql_5.png differ diff --git a/images/workday-wql/workday_wql_crw_generate_7.png b/images/workday-wql/workday_wql_crw_generate_7.png new file mode 100644 index 00000000..2b42612b Binary files /dev/null and b/images/workday-wql/workday_wql_crw_generate_7.png differ diff --git a/images/workday-wql/workday_wql_crw_select_report_6.png b/images/workday-wql/workday_wql_crw_select_report_6.png new file mode 100644 index 00000000..3430a803 Binary files /dev/null and b/images/workday-wql/workday_wql_crw_select_report_6.png differ diff --git a/images/workday-wql/workday_wql_custom_create_report_1.png b/images/workday-wql/workday_wql_custom_create_report_1.png new file mode 100644 index 00000000..60705480 Binary files /dev/null and b/images/workday-wql/workday_wql_custom_create_report_1.png differ diff --git a/images/workday-wql/workday_wql_custom_create_report_2.png b/images/workday-wql/workday_wql_custom_create_report_2.png new file mode 100644 index 00000000..33de59bc Binary files /dev/null and b/images/workday-wql/workday_wql_custom_create_report_2.png differ diff --git a/images/workday-wql/workday_wql_custom_edit_report_3.png b/images/workday-wql/workday_wql_custom_edit_report_3.png new file mode 100644 index 00000000..d7be42fe Binary files /dev/null and b/images/workday-wql/workday_wql_custom_edit_report_3.png differ diff --git a/images/workday-wql/workday_wql_custom_test_report_4.png b/images/workday-wql/workday_wql_custom_test_report_4.png new file mode 100644 index 00000000..6872d903 Binary files /dev/null and b/images/workday-wql/workday_wql_custom_test_report_4.png differ diff --git a/integrations.mdx b/integrations.mdx index 08ad6c37..a4bbac41 100644 --- a/integrations.mdx +++ b/integrations.mdx @@ -87,6 +87,7 @@ import { IntegrationTile } from '/snippets/integration-tile.mdx'; + ## Marketing