Skip to content
Open
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
49 changes: 49 additions & 0 deletions examples/promotion-nomination/README.MD
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Promotion Nomination App

A streamlined promotion nomination platform that enables managers to identify, evaluate, and advocate for top-performing direct reports.

## What it is

The Promotion Nomination App automates the collection of employee career data and routes nominations through a multi-level approval workflow. It ensures consistent evaluation, transparency, and governance across all promotion decisions by handling everything from employee selection through final approval and archival.

## What's inside

**Core components:**
- **managerNomination**: Landing page where managers submit and track nominations
- **eventDetails**: Business process approval page definition for multi-level review

**Key capabilities:**
- Employee selection from direct reports with intuitive dropdown interface
- Auto-populated career data (current job profile, tenure, hire date, promotion history)
- Optional integration with Workday Talent details or third-party platforms
- Structured fields for nomination rationale and target role alignment
- Promotion cycle tracking (e.g., 2026-Q1)
- Multi-level approval routing to next-level managers and People Business Partner
- Secure storage and audit trail via Custom Business Object

## How to use it

**1. Select Employee**
Manager selects an eligible worker from their list of direct reports.

**2. Auto-Populate Career History**
The system automatically pulls:
- Current job profile and time in position
- Original hire date
- Last promotion date

**3. Build the Nomination**
Manager provides promotion justification with:
- Reason for promotion (merit, increased responsibilities, restructuring)
- Target role (proposed job profile)
- Timeline (proposed effective date)
- Business impact statement

**4. Route Through Approvals**
The nomination enters the multi-level approval chain. Once all approvals are granted, data is archived to the Custom Business Object.

## Before you deploy

- Update the app base URL in the AMD file with your app name
- Optionally configure Workday Orchestrate integration to automatically trigger the Change Job business process upon final approval
- Test the approval workflow with test users at each level
5 changes: 5 additions & 0 deletions examples/promotion-nomination/example.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"title": "Promotion Nomination",
"description": "Workday App for managers to nominate their direct reports for promotions",
"type": "Extend App"
}
13 changes: 13 additions & 0 deletions examples/promotion-nomination/model/DefaultPhoto.attachment
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"id": 1,
"name": "DefaultPhoto",
"label": "Default Photo",
"defaultSecurityDomains": [
"ManagerPromotionNomination"
],
"defaultCollection": {
"name": "defaultPhotos",
"label": "Default Photos"
},
"fields": []
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"id": 1,
"name": "ManagerPromotionNomination",
"enabledForPageSecurity": true,
"enabledForOrchestrationSecurity": false
}
10 changes: 10 additions & 0 deletions examples/promotion-nomination/model/NominateEmployee.task
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"id": 1,
"name": "NominateEmployee",
"label": "Nominate Employee",
"securityDomains": [
"ManagerPromotionNomination"
],
"businessObject": "PromotionNominationBO",
"routePath": "/"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
{
"id": 1,
"name": "PromotionNominationBO",
"label": "Promotion Nomination B O",
"defaultSecurityDomains": [
"ManagerPromotionNomination"
],
"defaultCollection": {
"name": "promotionNominationBOS",
"label": "Promotion Nomination B O S"
},
"fields": [
{
"enableReportingFromTarget": false,
"secureByTarget": true,
"target": "WORKER",
"isPurgeable": false,
"useForDisplay": false,
"type": "SINGLE_INSTANCE",
"name": "nominee",
"id": 1
},
{
"enableReportingFromTarget": false,
"secureByTarget": true,
"target": "WORKER",
"isPurgeable": false,
"useForDisplay": false,
"type": "SINGLE_INSTANCE",
"name": "nominator",
"id": 2
},
{
"enableSearch": false,
"enableIndex": false,
"isPurgeable": false,
"useForDisplay": false,
"isReferenceId": false,
"label": "Nomination Reason",
"type": "TEXT",
"name": "nominationReason",
"id": 3
},
{
"precision": "DAY",
"enableIndex": false,
"isPurgeable": false,
"type": "DATE",
"name": "proposedDate",
"id": 4
},
{
"enableReportingFromTarget": false,
"secureByTarget": false,
"target": "JOB_PROFILE",
"isPurgeable": false,
"useForDisplay": false,
"type": "SINGLE_INSTANCE",
"name": "proposedJobProfile",
"id": 5
},
{
"enableSearch": false,
"enableIndex": false,
"isPurgeable": false,
"useForDisplay": false,
"isReferenceId": false,
"type": "TEXT",
"name": "promotionCycle",
"id": 6
},
{
"enableSearch": false,
"enableIndex": false,
"isPurgeable": false,
"useForDisplay": false,
"isReferenceId": false,
"type": "TEXT",
"name": "timeInJobProfile",
"id": 7
},
{
"precision": "DAY",
"enableIndex": false,
"isPurgeable": false,
"type": "DATE",
"name": "hireDate",
"id": 8
},
{
"enableReportingFromTarget": false,
"secureByTarget": false,
"target": "JOB_PROFILE",
"isPurgeable": false,
"useForDisplay": false,
"type": "SINGLE_INSTANCE",
"name": "currentJobProfile",
"id": 9
},
{
"enableSearch": false,
"enableIndex": false,
"isPurgeable": false,
"useForDisplay": false,
"isReferenceId": false,
"type": "TEXT",
"name": "currentJobTitle",
"id": 10
},
{
"precision": "DAY",
"enableIndex": false,
"isPurgeable": false,
"type": "DATE",
"name": "lastPromotionDate",
"id": 11
},
{
"enableSearch": false,
"enableIndex": false,
"isPurgeable": false,
"useForDisplay": false,
"isReferenceId": false,
"type": "TEXT",
"name": "workerConsideration",
"id": 12
},
{
"enableSearch": false,
"enableIndex": false,
"isPurgeable": false,
"useForDisplay": false,
"isReferenceId": false,
"type": "TEXT",
"name": "businessNeed",
"id": 13
},
{
"enableSearch": false,
"enableIndex": false,
"isPurgeable": false,
"useForDisplay": false,
"isReferenceId": false,
"type": "TEXT",
"name": "workerSuitRole",
"id": 14
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"id": 1,
"name": "PromotionNominationBP",
"label": "Promotion Nomination BP",
"description": "Business Process Type for PromotionNominationBP",
"useForOrchestrate": false,
"allowsCancel": true,
"approvalStep": {
"pageRoute": "/eventDetails",
"actions": [
"APPROVE",
"DENY"
]
},
"actionSteps": [],
"targetBusinessObject": "PromotionNominationBO",
"securityDomains": [
"ManagerPromotionNomination"
],
"details": {
"pageRoute": "/eventDetails/{eventId}"
},
"allowsManualSendBack": false,
"allowsRescind": true
}
101 changes: 101 additions & 0 deletions examples/promotion-nomination/model/PromotionNominations.report
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
{
"id": 1,
"name": "PromotionNominations",
"businessObject": "PromotionNominationBO",
"defaultSecurityDomains": [
"ManagerPromotionNomination"
],
"sortConfigs": [],
"columns": [
{
"id": 1,
"name": "PromotionNominationBO",
"order": "a",
"isSelfReferencing": true
},
{
"id": 2,
"name": "Nominee",
"order": "b",
"field": "nominee"
},
{
"id": 3,
"name": "Nominator",
"order": "c",
"field": "nominator"
},
{
"id": 4,
"name": "Nomination Reason",
"order": "d",
"field": "nominationReason"
},
{
"id": 5,
"name": "Proposed Date",
"order": "e",
"field": "proposedDate"
},
{
"id": 6,
"name": "Proposed Job Profile",
"order": "f",
"field": "proposedJobProfile"
},
{
"id": 7,
"name": "Promotion Cycle",
"order": "g",
"field": "promotionCycle"
},
{
"id": 8,
"name": "Time In Job Profile",
"order": "h",
"field": "timeInJobProfile"
},
{
"id": 9,
"name": "Hire Date",
"order": "i",
"field": "hireDate"
},
{
"id": 10,
"name": "Current Job Profile",
"order": "j",
"field": "currentJobProfile"
},
{
"id": 11,
"name": "Current Job Title",
"order": "k",
"field": "currentJobTitle"
},
{
"id": 12,
"name": "Last Promotion Date",
"order": "l",
"field": "lastPromotionDate"
},
{
"id": 13,
"name": "Worker Consideration",
"order": "m",
"field": "workerConsideration"
},
{
"id": 15,
"name": "Worker Suit Role",
"order": "o",
"field": "workerSuitRole"
},
{
"id": 16,
"name": "Business Need",
"order": "p",
"field": "businessNeed"
}
]
}
Loading
Loading