Compliant self-service HR change-request workflow
Every profile change. A new bank account, a legal address, a phone number. Went through the same informal email thread, with no record and no distinction between what’s routine and what legally needs verification.
How it fits together
Field sensitivity decides the path. Routine fields auto-apply; sensitive ones route to manual verification.
The problem
Employees had no structured way to request changes to their own HR data. Everything went through informal email and chat, with no routing logic, no record, and no distinction between routine fields and ones that legally require manual verification.
Diagnosis
The HR system had no concept of field sensitivity or approval routing. A request to change a bank account went through the same (nonexistent) process as changing a phone number.
What I built
- Built a Zoho People module with a field-category taxonomy (5 categories) that reveals only the relevant fields via 9 conditional rules.
- Configured a 2–3 tier approval chain. HR contact, then HR lead, plus a Finance approver specifically for financial-data changes.
- Branched automation by sensitivity: routine fields auto-apply on approval, while sensitive fields (date of birth, legal address, banking) route to manual verification.
- Templated notifications for every state transition. Submission, approval, rejection-with-reason, manual-review-required.
- Generated the user manual and role-specific operations guides from a single reproducible Python/ReportLab build pipeline.
The hard parts
- Modelled field sensitivity as a first-class routing dimension. The category taxonomy drives both which fields appear and how many approval tiers a request must clear.
- Made the documentation reproducible: one build command regenerates the manual and every role guide from source, so the docs never drift from the workflow.
Results
Internal identifiers changed to preserve confidentiality.