Automated HR Data Integration
Windows service that pulls HR data from HRWorks via REST, transforms it and pushes it into the group-wide HR system (GraphQL) fully automatically — encrypted, incremental and self-healing on errors.
- C#
- .NET 4.8
- Windows Service
- REST
- GraphQL
- DPAPI
Status & progress
Completed
- Unattended Windows service with configurable interval
- HRWorks connection via REST API (paginated, token/JWT auth)
- Incremental sync with an encrypted state store
- Transformation & mapping of around 30 personnel fields
- Upsert into the group-wide HR system via GraphQL (matched by email/personnel ID)
- Credentials & sync state encrypted via Windows DPAPI
- Self-healing: failed records are isolated and re-prepared automatically
Starting point
HR data had to be transferred continuously from HRWorks into the group-wide HR system — across many employees, with dozens of fields and constant changes. Done by hand this was tedious, error-prone and, with sensitive personnel data, delicate. What was needed was a path that runs reliably, without anyone sitting next to it.
Solution
A Windows service that handles the entire path unattended.
- Fully automated & incremental: runs on a configurable interval, transfers only what changed, and guards against overlap with a lock.
- HRWorks via REST API (v2, paginated through the Link header, token/JWT auth); around 30 personnel fields are transformed into the target format (contract types, date formats, exit reasons).
- Upsert into the group-wide HR system via GraphQL matched by email or personnel ID — an update instead of a duplicate.
- Data protection at the core: credentials and sync state are encrypted via Windows DPAPI — nothing in plaintext.
- Self-healing: when a record fails, the service isolates it, stores the error state and automatically re-prepares it on the next run — instead of aborting the whole run. Even unexpected API responses are handled cleanly.
- Modular design: clearly separated layers for source, target, mapping, state and configuration — formats and steps are swappable.
Result
A process that runs without intervention, corrects itself on deviations and moves sensitive personnel data encrypted between two HR systems.
Sounds like something you need too?
Start a project