Skip to content
All projects
Development & Integration 2025 Corporate group (German subsidiary)

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 Duration: ~4 months

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