Change requests

Overview
Employees maintain their data in their own profile — but not everything there may be changed by everyone. Address and bank details end up on the payslip, and a skill drives staffing and quotes. Both therefore become a request: the employee enters the change, the master record stays untouched, and HR (master data) or the lead (skills) approves it.
Anyone who holds the maintenance permission still writes directly — nothing changes for HR.
Core tasks
- View a request — the list shows person, type and what is affected; the entered values
only appear when you open it. Address and bank details are stored encrypted.
- Approve — applies the values exactly where HR would enter them.
- Reject with a reason — the employee receives the reason as a notification.
There is at most one open request per employee and type: a new one replaces the old one.
Fields in detail
| Field | Meaning |
|---|---|
employeeId | Who submitted the request. |
kind | private_contact (address, bank details, emergency contact) or skill (skill with level). |
status | pending, approved or rejected. |
summary | Short form without values — the field names or skill and level. |
payload | The requested values; only in the single fetch and only for requester and deciders. |
note | Reason for the decision; it appears in the notification to the employee. |
decisionNote | Reason for the decision; it appears in the notification to the employee. |
canDecide | Whether the calling user may decide this very request. |
Settings & permissions
- Module
module.hr. - Decide master data:
hr.employee.edit— decide skills:hr.skill.manage. - Submit a request:
hr.employee.edit_self_limited(own data); without it there is no
self-service.
- Employees see their own requests in their profile under My HR area.
FAQ & troubleshooting
A request cannot be decided twice. After approval or rejection it is closed — a second attempt is rejected with 409.
The values are missing in the list. By design: address and bank details only appear in the opened request.