Both Gripp (the tool used for project management and scheduling) and Nmbrs (the payroll tool and HR system) allow employees to request leaves and report absences. Obviously, it would be problematic if approved leaves in one tool would not show up in the other. After all, if leaves were not correctly added to Gripp, someone could be assigned a project while on holiday. Conversely, if sick leaves were missing in Nmbrs, the payroll organization could be plain wrong. It would be an error-prone administrative burden to keep both systems in sync manually, so we got to work at LJZ.

Testing together

Cooperating closely with the team at CMN, a custom solution was developed. The Gripp-Nmbrs sync tool interfaces with both APIs to perform operations in a highly efficient way, to minimize API calls and track state changes accurately. The tool was tested with feedback from the team at CMN to verify correct behavior and to detect payroll and scheduling edge cases. It is safe to say that we learned a lot about HR while working on this project!

The calendar in Gripp, after synchronization with Nmbrs

With the sync tool enabled, approved leaves and reported absences show up correctly in the Gripp calendar to avoid erroneous project scheduling (see above). Meanwhile, leaves approved in Gripp show up in the Nmbrs leave table to be incorporated in the next payroll period (see below).

The calendar in Gripp, after synchronization with Nmbrs

Deploying with ease

In order to deploy frequently and easily, we developed a continuous integration and delopyment pipeline with care. Being able to quickly (re)deploy, roll back, set up and test on different environments before going live allowed us to conveniently test different scenarios and iterate rapidly. By building a simple user interface, we allowed administrators at CMN to even take over control themselves, allowing them to manage their deployments from a central place, without needing to think about the underlying systems needed.

Deploying a new version from the user interface

Like all software developed at LJZ, the tool was containerized using Docker. CMN preferred to use the Google Cloud Platform for their deployments, so we enabled automated versioning and releasing to the GCP Artifact Registry, with deployments to GCP Cloud Run enabled under the hood in the aforementioned user interface.

All in all, despite Gripp and Nmbrs having no first-party synchronization integration, we are proud of yet another custom business tool developed at LJZ. Wondering what we can build for you? Let's get in touch and discuss the opportunities!

That's it.

← go back