Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ Community examples, open to everyone. This is the section external contributions
| [`workday-orchestrate-skill`](examples/workday-orchestrate-skill) | A markdown skill that reviews an Orchestrate flow for Maya file shape, expressions, and secrets. | Agent Skill |
| [`workday-pmd-skill`](examples/workday-pmd-skill) | A markdown skill that reviews an Extend page for a security domain, endpoint failures, widget ids, labels, and secrets. | Agent Skill |
| [`workday-skill`](examples/workday-skill) | A markdown skill that chooses which Workday agent skill to apply when a task starts a new app or touches more than one artifact. | Agent Skill |
| [`workplace-adjustment-passport`](examples/workplace-adjustment-passport) | An Extend app with a Home page card, custom business object, and PMD pages that gives employees a confidential, portable accommodation passport that carries forward with them as they change teams or managers. | Extend App |
| [`wql-anniversary-celebrations`](examples/wql-anniversary-celebrations) | An orchestration that queries Workday via WQL for active workers celebrating milestone work anniversaries and formats an announcement digest payload for collaboration channels. | Orchestration |
<!-- examples:end -->

Expand Down
40 changes: 40 additions & 0 deletions examples/workplace-adjustment-passport/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Workplace Adjustment & Accessibility Passport

## What it is

An Extend application and Workday Home Card that gives employees a confidential, portable **Workplace Adjustment Passport**.

Employees with disabilities, neurodivergent work patterns, chronic medical conditions, or ergonomic requirements often face friction repeatedly disclosing and renegotiating their accommodations whenever they change teams, managers, or office locations.

This solution records approved workplace adjustments (such as assistive software, ergonomic equipment, sensory focus hours, and communication preferences) into a secure custom business object. When an employee transfers, the new manager receives an executive briefing of active accommodations without disclosing sensitive diagnostic or medical records. Employees retain granular consent controls over what information is shared with managers versus kept solely with HR specialists.

## What's inside

- `appManifest.json`: Application metadata definition, reference ID, and version configuration.
- `cards/passportSpotlight.carddefinition`: Workday Home card definition providing 1-click status visibility and quick launch actions.
- `model/WorkplaceAdjustmentPassport.businessobject`: Custom business object schema storing employee references, adjustment categories, equipment specifications, review dates, and manager sharing consent.
- `model/PassportSecurityDomain.securitydomain`: Security domain configuring role-based page and data permissions.
- `model/AdjustmentPassportBP.businessprocess`: Business process definition routing new adjustment submissions for review and acknowledgment.
- `presentation/passport.amd`: Application Metadata Definition registering tasks and routing patterns for worker, request, and manager briefing views.
- `presentation/passport.smd`: Site Metadata Definition configuring authentication and localization.
- `presentation/myPassport.pmd`: Worker self-service landing page displaying active adjustments, privacy safeguards, and renewal timelines.
- `presentation/requestAdjustment.pmd`: Interactive form to record practical accommodations and manage consent.
- `presentation/teamBriefing.pmd`: Manager view summarizing approved team accommodations for smooth onboarding and team collaboration.
- `sample-data/sample-passport-entry.json`: Realistic, sanitized sample records illustrating assistive technology, ergonomic equipment, and flexible schedule entries.
- `example.json`: Metadata file powering the Workday Developer Program gallery.

## How to use it

1. Deploy the app source to your Workday Cloud Platform (WCP) development tenant using App Builder, the Workday CLI (WDCLI), or Local Disk Sync.
2. In your tenant, map `PassportSecurityDomain` to your target security groups (e.g., Employee Self-Service, Manager Self-Service, and HR Workplace Accommodations Partner).
3. Activate the `passportSpotlight` card in your tenant's Workday Home configuration under **Configure Workday Home**.
4. Launch the application from the Home card or the App Launcher to review active adjustments or submit a new workplace accommodation request.

## Before you deploy

Before deploying this example to your target tenant, verify the following configuration points:

- **App reference id**: `workplaceAdjustmentPassport` in `appManifest.json`, `presentation/passport.amd`, and `presentation/passport.smd` is the sample app reference ID. Replace it with the ID generated by your tenant during app creation, or access it dynamically using `site.applicationId` in PMD scripts.
- **Security domains**: Map `PassportSecurityDomain` in `model/PassportSecurityDomain.securitydomain` to your organization's appropriate security groups (e.g., All Workers for employee self-service view, and People Leaders / Managers for the team briefing view).
- **Base URLs**: All PMD endpoints utilize `baseUrlType: "workday-apps"` to resolve your tenant's API gateway without hardcoding tenant URLs or environments.
- **Business Process Routing**: In `model/AdjustmentPassportBP.businessprocess`, ensure the review step is assigned to your organization's designated HR Workplace Accommodations Partner security group.
8 changes: 8 additions & 0 deletions examples/workplace-adjustment-passport/appManifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"id": "e3a89047b1924d55a201f92e6245d81b",
"referenceId": "workplaceAdjustmentPassport",
"name": "WorkplaceAdjustmentPassport",
"description": "Confidential, portable workplace accommodations and adjustments passport for employees and managers.",
"latestVersion": "1.0.0",
"organizationId": "9ff68ed1-68e4-4225-9f3d-68dbf554c38b"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"id": "passportSpotlight",
"presentation": {
"type": "inlineCard",
"header": {
"type": "cardHeader",
"title": "Workplace Adjustment Passport",
"subtitle": "Your active accommodations",
"icon": "wd-accent-shield"
},
"body": {
"type": "simpleCard",
"value": "Access your portable workplace adjustments, manage manager sharing consent, and request new accommodation equipment or scheduling flexibility."
}
}
}
20 changes: 20 additions & 0 deletions examples/workplace-adjustment-passport/example.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"title": "Workplace Adjustment & Accessibility Passport",
"description": "An Extend app with a Home page card, custom business object, and PMD pages that gives employees a confidential, portable accommodation passport that carries forward with them as they change teams or managers.",
"type": "Extend App",
"components": [
"Presentation",
"Card",
"Model",
"Business Process"
],
"products": [
"Workday Extend",
"Workday HCM"
],
"authors": [
"srivilliamsai"
],
"tutorial": "",
"source": "community"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"id": 1,
"name": "AdjustmentPassportBP",
"label": "Workplace Adjustment Review Event",
"securityDomain": "PassportSecurityDomain",
"steps": [
{
"order": 1,
"name": "InitiateAdjustmentRequest",
"type": "Initiation",
"assignedTo": "Employee"
},
{
"order": 2,
"name": "AccommodationReviewAndApproval",
"type": "Approval",
"assignedTo": "HR Workplace Accommodations Partner"
},
{
"order": 3,
"name": "ImplementationNotification",
"type": "Notification",
"assignedTo": "Manager"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"id": 1,
"name": "PassportSecurityDomain",
"enabledForPageSecurity": true,
"enabledForOrchestrationSecurity": true
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
{
"id": 1,
"name": "WorkplaceAdjustmentPassport",
"label": "Workplace Adjustment Passport",
"defaultSecurityDomains": [
"PassportSecurityDomain"
],
"defaultCollection": {
"name": "workplaceAdjustmentPassports",
"label": "Workplace Adjustment Passports"
},
"fields": [
{
"id": 1,
"name": "workerName",
"type": "TEXT",
"isReferenceId": false,
"useForDisplay": true,
"isPurgeable": false,
"enableIndex": false,
"enableSearch": false
},
{
"id": 2,
"name": "workerId",
"type": "TEXT",
"isReferenceId": false,
"useForDisplay": false,
"isPurgeable": false,
"enableIndex": false,
"enableSearch": false
},
{
"id": 3,
"name": "adjustmentCategory",
"type": "TEXT",
"isReferenceId": false,
"useForDisplay": false,
"isPurgeable": false,
"enableIndex": false,
"enableSearch": false
},
{
"id": 4,
"name": "adjustmentTitle",
"type": "TEXT",
"isReferenceId": false,
"useForDisplay": false,
"isPurgeable": false,
"enableIndex": false,
"enableSearch": false
},
{
"id": 5,
"name": "adjustmentDetails",
"type": "TEXT",
"isReferenceId": false,
"useForDisplay": false,
"isPurgeable": false,
"enableIndex": false,
"enableSearch": false
},
{
"id": 6,
"name": "status",
"type": "TEXT",
"isReferenceId": false,
"useForDisplay": false,
"isPurgeable": false,
"enableIndex": false,
"enableSearch": false
},
{
"id": 7,
"name": "reviewCadenceMonths",
"type": "TEXT",
"isReferenceId": false,
"useForDisplay": false,
"isPurgeable": false,
"enableIndex": false,
"enableSearch": false
},
{
"id": 8,
"name": "lastReviewedDate",
"type": "TEXT",
"isReferenceId": false,
"useForDisplay": false,
"isPurgeable": false,
"enableIndex": false,
"enableSearch": false
},
{
"id": 9,
"name": "managerConsent",
"type": "TEXT",
"isReferenceId": false,
"useForDisplay": false,
"isPurgeable": false,
"enableIndex": false,
"enableSearch": false
},
{
"id": 10,
"name": "supportContact",
"type": "TEXT",
"isReferenceId": false,
"useForDisplay": false,
"isPurgeable": false,
"enableIndex": false,
"enableSearch": false
}
]
}
148 changes: 148 additions & 0 deletions examples/workplace-adjustment-passport/presentation/myPassport.pmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
{
"id": "myPassport",
"securityDomains": [
"PassportSecurityDomain"
],
"endPoints": [
{
"name": "passportsData",
"baseUrlType": "workday-apps",
"url": "<% `/apps/{{site.applicationId}}/v1/workplaceAdjustmentPassports` %>",
"authType": "sso",
"failOnStatusCodes": [
{
"code": 400
},
{
"code": 403
}
]
}
],
"presentation": {
"headerSize": "VPS_DEFAULT",
"title": {
"type": "title",
"id": "passportTitle",
"label": "My Workplace Adjustment Passport"
},
"body": {
"type": "section",
"id": "mainSection",
"children": [
{
"type": "text",
"id": "passportMissionText",
"value": "Your Workplace Adjustment Passport is a confidential record of approved workplace accommodations, assistive technology, and flexible working arrangements. When you transfer teams or report to a new manager, your adjustments travel with you so you don't have to re-explain your requirements."
},
{
"type": "section",
"id": "actionButtonBar",
"horizontal": true,
"children": [
{
"type": "button",
"id": "requestNewBtn",
"label": "Request New Adjustment",
"action": "PRIMARY",
"task": "requestAdjustment"
},
{
"type": "button",
"id": "viewManagerBriefingBtn",
"label": "Preview Manager Briefing View",
"action": "SECONDARY",
"task": "teamBriefing"
}
]
},
{
"type": "section",
"id": "privacyGuaranteeCallout",
"children": [
{
"type": "text",
"id": "privacyCalloutHeader",
"value": "🔒 Confidentiality & Privacy Notice: Diagnostic and medical information is never requested, collected, or displayed in this passport. Only practical accommodations needed for your day-to-day productivity are recorded."
}
]
},
{
"type": "grid",
"id": "adjustmentsGrid",
"label": "Active Workplace Adjustments",
"rows": "<% passportsData.data %>",
"rowVariableName": "item",
"columns": [
{
"type": "column",
"id": "categoryCol",
"columnId": "categoryColId",
"label": "Category",
"cellTemplate": {
"type": "text",
"id": "categoryCell",
"value": "<% item.adjustmentCategory %>"
}
},
{
"type": "column",
"id": "titleCol",
"columnId": "titleColId",
"label": "Adjustment Title",
"cellTemplate": {
"type": "text",
"id": "titleCell",
"value": "<% item.adjustmentTitle %>"
}
},
{
"type": "column",
"id": "detailsCol",
"columnId": "detailsColId",
"label": "Details & Equipment",
"cellTemplate": {
"type": "text",
"id": "detailsCell",
"value": "<% item.adjustmentDetails %>"
}
},
{
"type": "column",
"id": "cadenceCol",
"columnId": "cadenceColId",
"label": "Review Cadence",
"cellTemplate": {
"type": "text",
"id": "cadenceCell",
"value": "<% item.reviewCadenceMonths %>"
}
},
{
"type": "column",
"id": "consentCol",
"columnId": "consentColId",
"label": "Manager Sharing",
"cellTemplate": {
"type": "text",
"id": "consentCell",
"value": "<% item.managerConsent %>"
}
},
{
"type": "column",
"id": "statusCol",
"columnId": "statusColId",
"label": "Status",
"cellTemplate": {
"type": "text",
"id": "statusCell",
"value": "<% item.status %>"
}
}
]
}
]
}
}
}
Loading
Loading