Skip to content

Commit 474caa2

Browse files
AdwaitRautAdwait Rautclaude
authored
Update Workday Open source topic descriptions to improve tool invocation from Sydney. Update specific to ESS DA agent (#504)
* Update Workday Open source topic descriptions to improve tool invocation from Sydney Updated topic descriptions in the following files: EmployeeScenarios: - EmployeeAddDependents/topic.yaml - EmployeeGetVacationBalance/topic.yaml - EmployeeUpdateResidentialAddress/topic.yaml - WorkdayEmployeeRequestTimeOff/topic.yaml - WorkdayEmployeesviewtheirjobtaxonomy/topic.yaml - WorkdayGetContactInformation/topic.yaml - WorkdayGetEducation/topic.yaml - WorkdayGetGovernmentIDs/topic.yaml - WorkdayGetUserProfile/topic.yaml - WorkdayManageEmergencyContact/topic.yaml ManagerScenarios: - WorkdayManagersdirect-CompanyCode/topic.yaml - WorkdayManagersdirect-CostCenter/topic.yaml - WorkdayManagersdirect-Jobtaxanomy/topic.yaml - WorkdayManagerServiceAnniversary/topic.yaml Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Add Time Off Reason field to MultiDay request payload Adds an optional <wd:Time_Off_Reason_Reference> element to the MultiDay Enter Time Off request, with comments noting that valid Time_Off_Reason_ID values are configured per tenant. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(workday-da): harden EmployeeUpdateResidentialAddress topic for DA orchestration - Guard prefill of current* fields behind isNewAddress=false to avoid null deref on Topic.selectedAddress when user picks "Add an address" or cancels - Add reachable Cancel action to selectAddressCard so handleSelectionCancel is no longer dead code - Replace dangling yes/no question on no-addresses-on-file path with a definitive message (we don't wait for an answer downstream) - Add defensive short-circuit (EndDialog) when selectionActionId="Cancel" before rendering collectAddressCard - Default Input.ChoiceSet.value to "" when addressChoices is empty - Clean up HTML-encoded entities (&amp; -> &) and unwrap inline anchor tag on adaptive-card \$schema URL that broke YAML/Power Fx parsing Formatting cleanup: - Fix "to to update" typo and strip trailing whitespace in modelDescription - Make addressChoices block scalar use |- for consistency with the rest of the file (was the only |) - Remove inline 🔧 FIX-N developer annotations now that the rationale lives in this commit message Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Adwait Raut <adwaitraut@microsoft.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 9a626d5 commit 474caa2

65 files changed

Lines changed: 9962 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
---
2+
nav_exclude: true
3+
search_exclude: false
4+
---
5+
# Workday Employee Add Dependents
6+
7+
## Overview
8+
9+
This topic enables employees to view their existing dependents and add new dependents to their Workday profile through a conversational interface. Dependents include spouses, domestic partners, children, and other family members who may be covered under employee benefits.
10+
11+
## Features
12+
13+
- View existing dependents with their relationship and date of birth
14+
- Add new dependents (spouse, child, domestic partner, etc.)
15+
- Dynamic relationship type dropdown populated from Workday reference data
16+
- Confirmation flow showing summary of dependent details before submission
17+
- Form validation for required fields
18+
19+
## Snapshots
20+
21+
![Add Dependents](add_dependents.png)
22+
23+
## Trigger Phrases
24+
25+
- "Add a dependent"
26+
- "I want to add my child as a dependent"
27+
- "Add my spouse to my benefits"
28+
- "Register a new dependent"
29+
- "I need to add a family member"
30+
- "Show my dependents"
31+
32+
## Files
33+
34+
| File | Description |
35+
|------|-------------|
36+
| `topic.yaml` | Copilot Studio topic definition with conversation flow |
37+
| `msdyn_HRWorkdayHCMEmployeeGetDependents.xml` | XML template for fetching existing dependents |
38+
| `msdyn_HRWorkdayHCMEmployeeAddDependent.xml` | XML template for adding a new dependent |
39+
40+
## Workday APIs Used
41+
42+
| API | Purpose |
43+
|-----|---------|
44+
| `Human_Resources v45.0` | Fetch existing dependents |
45+
| `Benefits_Administration v45.1` | Add new dependent |
46+
47+
## Flow Overview
48+
49+
```
50+
┌─────────────────────────────────────────────────────────────┐
51+
│ User Triggers Topic │
52+
└─────────────────────────────────────────────────────────────┘
53+
54+
55+
┌─────────────────────────────────────────────────────────────┐
56+
│ Fetch Reference Data (Relationship Types) │
57+
└─────────────────────────────────────────────────────────────┘
58+
59+
60+
┌─────────────────────────────────────────────────────────────┐
61+
│ Fetch Existing Dependents │
62+
└─────────────────────────────────────────────────────────────┘
63+
64+
65+
┌─────────────────────────────────────────────────────────────┐
66+
│ Display Existing Dependents (or "No dependents") │
67+
└─────────────────────────────────────────────────────────────┘
68+
69+
70+
┌─────────────────────────────────────────────────────────────┐
71+
│ Show Add Dependent Form (Adaptive Card) │
72+
└─────────────────────────────────────────────────────────────┘
73+
74+
75+
┌─────────────────────────────────────────────────────────────┐
76+
│ Show Confirmation Card │
77+
└─────────────────────────────────────────────────────────────┘
78+
79+
80+
┌─────────────────────────────────────────────────────────────┐
81+
│ Submit to Workday │
82+
└─────────────────────────────────────────────────────────────┘
83+
84+
85+
┌─────────────────────────────────────────────────────────────┐
86+
│ Show Success/Error Message │
87+
└─────────────────────────────────────────────────────────────┘
88+
```
89+
90+
## Configurations
91+
92+
Environment makers need to configure the following in the topic:
93+
94+
| Configuration | Description | Location in Topic |
95+
|---------------|-------------|-------------------|
96+
| **Gender Options** | Configure available gender options (Male, Female, Not_Declared) | Adaptive card dropdown |
97+
| **Country Codes** | Define available country codes (USA, CAN, GBR, etc.) | Adaptive card dropdown |
98+
| **Workday Icon** | Update the icon URL to match your organization's branding | Topic properties > Icon |
99+
| **Workday URL** | Set your organization's Workday tenant URL | HTTP action or connector configuration |
100+
101+
## Dependencies
102+
103+
- **msdyn_HRWorkdayHCMEmployeeGetDependents template**: Required for fetching existing dependents
104+
- **Employee Context**: Worker ID must be available in the conversation context
33.5 KB
Loading
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
<workdayEntityConfigurationTemplate>
2+
<scenario name="msdyn_HRWorkdayHCMEmployeeAddDependent">
3+
<apiRequests>
4+
<apiRequest>
5+
<authType>User</authType>
6+
<endpoint>
7+
<request>Template_AddDependentRequest</request>
8+
<serviceName>Benefits_Administration</serviceName>
9+
<version>v45.1</version>
10+
</endpoint>
11+
<responseProperties>
12+
<property>
13+
<extractPath>//*[local-name()='Dependent_Reference']/*[local-name()='ID' and @*[local-name()='type']='WID']/text()</extractPath>
14+
<key>DependentWID</key>
15+
</property>
16+
<property>
17+
<extractPath>//*[local-name()='Dependent_Reference']/*[local-name()='ID' and @*[local-name()='type']='Dependent_ID']/text()</extractPath>
18+
<key>DependentID</key>
19+
</property>
20+
</responseProperties>
21+
</apiRequest>
22+
</apiRequests>
23+
</scenario>
24+
<requestTemplates>
25+
<requestTemplate name="Template_AddDependentRequest">
26+
<bsvc:Add_Dependent_Request xmlns:bsvc="urn:com.workday/bsvc" bsvc:version="v45.1">
27+
<bsvc:Business_Process_Parameters>
28+
<bsvc:Auto_Complete>true</bsvc:Auto_Complete>
29+
<bsvc:Run_Now>true</bsvc:Run_Now>
30+
<bsvc:Discard_On_Exit_Validation_Error>true</bsvc:Discard_On_Exit_Validation_Error>
31+
<bsvc:Comment_Data>
32+
<bsvc:Comment>Dependent added via Copilot</bsvc:Comment>
33+
<bsvc:Worker_Reference>
34+
<bsvc:ID bsvc:type="Employee_ID">{Employee_ID}</bsvc:ID>
35+
</bsvc:Worker_Reference>
36+
</bsvc:Comment_Data>
37+
</bsvc:Business_Process_Parameters>
38+
<bsvc:Add_Dependent_Data>
39+
<bsvc:Employee_Reference>
40+
<bsvc:ID bsvc:type="Employee_ID">{Employee_ID}</bsvc:ID>
41+
</bsvc:Employee_Reference>
42+
<bsvc:Related_Person_Relationship_Reference>
43+
<bsvc:ID bsvc:type="Related_Person_Relationship_ID">{Relationship_Type}</bsvc:ID>
44+
</bsvc:Related_Person_Relationship_Reference>
45+
<bsvc:Use_Employee_Address>true</bsvc:Use_Employee_Address>
46+
<bsvc:Dependent_Personal_Information_Data>
47+
<bsvc:Person_Name_Data>
48+
<bsvc:Name_Detail_Data>
49+
<bsvc:Country_Reference>
50+
<bsvc:ID bsvc:type="ISO_3166-1_Alpha-3_Code">{Country_Code}</bsvc:ID>
51+
</bsvc:Country_Reference>
52+
<bsvc:First_Name>{First_Name}</bsvc:First_Name>
53+
<bsvc:Last_Name>{Last_Name}</bsvc:Last_Name>
54+
</bsvc:Name_Detail_Data>
55+
</bsvc:Person_Name_Data>
56+
<bsvc:Date_of_Birth>{Date_Of_Birth}</bsvc:Date_of_Birth>
57+
<bsvc:Gender_Reference>
58+
<bsvc:ID bsvc:type="Gender_Code">{Gender}</bsvc:ID>
59+
</bsvc:Gender_Reference>
60+
</bsvc:Dependent_Personal_Information_Data>
61+
</bsvc:Add_Dependent_Data>
62+
</bsvc:Add_Dependent_Request>
63+
</requestTemplate>
64+
</requestTemplates>
65+
</workdayEntityConfigurationTemplate>
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
<workdayEntityConfigurationTemplate>
2+
<scenario name="msdyn_HRWorkdayHCMEmployeeGetDependents">
3+
<apiRequests>
4+
<apiRequest>
5+
<authType>User</authType>
6+
<endpoint>
7+
<request>Template_GetDependentsRequest</request>
8+
<serviceName>Human_Resources</serviceName>
9+
<version>v42.0</version>
10+
</endpoint>
11+
<responseProperties>
12+
<!-- ONLY extract data from Related_Person nodes that have a Dependent child -->
13+
<!-- This ensures all arrays are aligned (only actual dependents) -->
14+
15+
<!-- Dependent ID -->
16+
<property>
17+
<extractPath>//*[local-name()='Related_Person_Data']/*[local-name()='Related_Person'][*[local-name()='Dependent']]/*[local-name()='Dependent']/*[local-name()='Dependent_Reference']/*[local-name()='ID' and @*[local-name()='type']='Dependent_ID']/text()</extractPath>
18+
<key>DependentID</key>
19+
</property>
20+
<!-- Dependent WID -->
21+
<property>
22+
<extractPath>//*[local-name()='Related_Person_Data']/*[local-name()='Related_Person'][*[local-name()='Dependent']]/*[local-name()='Dependent']/*[local-name()='Dependent_Reference']/*[local-name()='ID' and @*[local-name()='type']='WID']/text()</extractPath>
23+
<key>DependentWID</key>
24+
</property>
25+
<!-- Person WID (only for dependents) -->
26+
<property>
27+
<extractPath>//*[local-name()='Related_Person_Data']/*[local-name()='Related_Person'][*[local-name()='Dependent']]/*[local-name()='Person_Reference']/*[local-name()='ID' and @*[local-name()='type']='WID']/text()</extractPath>
28+
<key>PersonWID</key>
29+
</property>
30+
<!-- Full Name (only for dependents) -->
31+
<property>
32+
<extractPath>//*[local-name()='Related_Person_Data']/*[local-name()='Related_Person'][*[local-name()='Dependent']]/*[local-name()='Personal_Data']/*[local-name()='Name_Data']/*[local-name()='Legal_Name_Data']/*[local-name()='Name_Detail_Data']/@*[local-name()='Formatted_Name']</extractPath>
33+
<key>FullName</key>
34+
</property>
35+
<!-- First Name (only for dependents) -->
36+
<property>
37+
<extractPath>//*[local-name()='Related_Person_Data']/*[local-name()='Related_Person'][*[local-name()='Dependent']]/*[local-name()='Personal_Data']/*[local-name()='Name_Data']/*[local-name()='Legal_Name_Data']/*[local-name()='Name_Detail_Data']/*[local-name()='First_Name']/text()</extractPath>
38+
<key>FirstName</key>
39+
</property>
40+
<!-- Last Name (only for dependents) -->
41+
<property>
42+
<extractPath>//*[local-name()='Related_Person_Data']/*[local-name()='Related_Person'][*[local-name()='Dependent']]/*[local-name()='Personal_Data']/*[local-name()='Name_Data']/*[local-name()='Legal_Name_Data']/*[local-name()='Name_Detail_Data']/*[local-name()='Last_Name']/text()</extractPath>
43+
<key>LastName</key>
44+
</property>
45+
<!-- Date of Birth (only for dependents) -->
46+
<property>
47+
<extractPath>//*[local-name()='Related_Person_Data']/*[local-name()='Related_Person'][*[local-name()='Dependent']]/*[local-name()='Personal_Data']/*[local-name()='Personal_Information_Data']/*[local-name()='Birth_Date']/text()</extractPath>
48+
<key>DateOfBirth</key>
49+
</property>
50+
<!-- Gender (only for dependents) -->
51+
<property>
52+
<extractPath>//*[local-name()='Related_Person_Data']/*[local-name()='Related_Person'][*[local-name()='Dependent']]/*[local-name()='Personal_Data']/*[local-name()='Personal_Information_Data']//*[local-name()='Gender_Reference']/*[local-name()='ID' and @*[local-name()='type']='Gender_Code']/text()</extractPath>
53+
<key>Gender</key>
54+
</property>
55+
<!-- Relationship Type ID (only for dependents) -->
56+
<property>
57+
<extractPath>//*[local-name()='Related_Person_Data']/*[local-name()='Related_Person'][*[local-name()='Dependent']]/*[local-name()='Related_Person_Relationship_Reference']/*[local-name()='ID' and @*[local-name()='type']='Related_Person_Relationship_ID']/text()</extractPath>
58+
<key>RelationshipTypeID</key>
59+
</property>
60+
<!-- Full-time Student flag -->
61+
<property>
62+
<extractPath>//*[local-name()='Related_Person_Data']/*[local-name()='Related_Person'][*[local-name()='Dependent']]/*[local-name()='Dependent']/*[local-name()='Dependent_Data']/*[local-name()='Full-time_Student']/text()</extractPath>
63+
<key>IsFullTimeStudent</key>
64+
</property>
65+
<!-- Disabled flag -->
66+
<property>
67+
<extractPath>//*[local-name()='Related_Person_Data']/*[local-name()='Related_Person'][*[local-name()='Dependent']]/*[local-name()='Dependent']/*[local-name()='Dependent_Data']/*[local-name()='Disabled']/text()</extractPath>
68+
<key>IsDisabled</key>
69+
</property>
70+
</responseProperties>
71+
</apiRequest>
72+
</apiRequests>
73+
</scenario>
74+
<requestTemplates>
75+
<requestTemplate name="Template_GetDependentsRequest">
76+
<bsvc:Get_Workers_Request xmlns:bsvc="urn:com.workday/bsvc" bsvc:version="v42.0">
77+
<bsvc:Request_References bsvc:Skip_Non_Existing_Instances="false" bsvc:Ignore_Invalid_References="true">
78+
<bsvc:Worker_Reference bsvc:Descriptor="Employee_ID">
79+
<bsvc:ID bsvc:type="Employee_ID">{Employee_ID}</bsvc:ID>
80+
</bsvc:Worker_Reference>
81+
</bsvc:Request_References>
82+
<bsvc:Response_Filter>
83+
<bsvc:As_Of_Effective_Date>{As_Of_Effective_Date}</bsvc:As_Of_Effective_Date>
84+
</bsvc:Response_Filter>
85+
<bsvc:Response_Group>
86+
<bsvc:Include_Reference>true</bsvc:Include_Reference>
87+
<bsvc:Include_Personal_Information>false</bsvc:Include_Personal_Information>
88+
<bsvc:Include_Employment_Information>false</bsvc:Include_Employment_Information>
89+
<bsvc:Include_Organizations>false</bsvc:Include_Organizations>
90+
<bsvc:Include_Roles>false</bsvc:Include_Roles>
91+
<bsvc:Include_Management_Chain_Data>false</bsvc:Include_Management_Chain_Data>
92+
<bsvc:Include_Benefit_Enrollments>false</bsvc:Include_Benefit_Enrollments>
93+
<bsvc:Include_Benefit_Eligibility>false</bsvc:Include_Benefit_Eligibility>
94+
<bsvc:Include_Related_Persons>true</bsvc:Include_Related_Persons>
95+
<bsvc:Include_Qualifications>false</bsvc:Include_Qualifications>
96+
<bsvc:Include_Photo>false</bsvc:Include_Photo>
97+
<bsvc:Include_Worker_Documents>false</bsvc:Include_Worker_Documents>
98+
<bsvc:Include_Transaction_Log_Data>false</bsvc:Include_Transaction_Log_Data>
99+
<bsvc:Include_User_Account>false</bsvc:Include_User_Account>
100+
</bsvc:Response_Group>
101+
</bsvc:Get_Workers_Request>
102+
</requestTemplate>
103+
</requestTemplates>
104+
</workdayEntityConfigurationTemplate>

0 commit comments

Comments
 (0)