How to save $40,000 per year on employees’ working hours by integrating CS TimeClock access control system with CRM/ERP system during COVID?

Mikhail Kokotov
Roonyx
Published in
5 min readJan 22, 2021

--

As a software development and business processes automation company, we deal with companies of different sizes and solve problems in different areas. Plain as day, in some cases, system integrations with existing processes and systems can save much money on developing and implementing new solutions. This article will tell you how we saved our client about $6000 on equipment and saved about $40,000/per year for every client’s customer on employees’ working hours.

Some background; it’s a b2b Saas web-application that provides a CRM/ERP system functionality for health care facilities. There was some old software in the facilities, but it was unscalable and unsupportable with limited functionality. Constant changes in business requirements needed a modern, scalable solution. We made one. We covered huge parts like resident management, staff management, business management, rostering, billing, payrolls, timesheets, administration, etc.

One of the principal objectives of our system is time. Most of the staff work on schedule and time cuts through such functionality as work schedules, timesheets, and payrolls. In the beginning, the time was recorded manually by the system administrator. With a growing system and the addition of new companies and staff members, this began to take up much time, and time recording was transformed into a semi-automatic mode. We decided to implement a new screen in the application on which each employee when entering the facility, chose a shift, and logged in on the tablet. Time began to set up automatically. In fact, we shifted the work and added complexity to the staff. Luckily the administrators were happy. In the end, we added an automatic comparison schedule with timesheets, which freed up about 100 working hours for each administrator per month. You could easily count freed money if you multiplied the rate per hour of each administrator.

Literally, a week later, the situation with the coronavirus in the country began to worsen. In medical institutions, new measure requirements for social distancing and minimum contact were a must. And the operation of logging on to one tablet did not contribute to this.

The client offered a variant with devices for face recognition and temperature measurement. We studied the device’s documentation, and it was a good option — the device allows you to send callbacks with each pass. But there were disadvantages such as; lack of a test device, an extended delivery time of the device, high cost of the solution due to the need to purchase additional equipment (about $3000 for each and $3000 to set it up). Additionally, each new facility needed to buy a device.

We didn’t have time to wait for the devices’ delivery, but the facilities remembered an existing access control system — a standard card system in many office buildings. At first, the solution seemed not modern enough to the client, and indeed the control system was rather old, but it was the fastest option. So we started studying the system’s documentation. It was CS TimeClock. After reviewing the documentation and correspondence with such support, we discovered that the system didn’t have built-in callbacks, but you could connect to the devices via a text protocol and send ordinary SQL requests, thereby obtaining the necessary data. Of course, this necessitated constant sending of requests, but it was quite a working option, so we requested remote access to the device for tests.
Here is a little example of how you can get data:
1. Connect to CS TimeClock device IP address via specific port by ethernet.

ubuntu@ubuntu:~$ telnet 192.168.0.1 5123
Trying 192.168.0.1...
Connected to 192.168.0.1
Escape character is '^]'

2. Send “p00” to the clock to initiate command processing.
3. Send your request. Here we requested event id, event time, user id, and employee direction of movement.

p00
select id, t, en, stat from clocking order by t desc limit 2;
<?xml version="1.0" encoding="UTF-8"?>
<result code="0" message="Okay">
<table>
<row>
<id>53557</id>
<t>1610754407</t>
<en>295</en>
<stat>0</stat>
</row>
<row>
<id>53556</id>
<t>1610751814</t>
<en>298</en>
<stat>0</stat>
</row>
</table>
<timing>0.142</timing>
<rows>2</rows>
</result>

4. Get the information you need and do what you want with it in your application.

Three weeks after receiving remote access, we rolled out the first working version of the integration to production. It fits perfectly into our current login implementation, not without code edits, of course :) We request entry/exit events every minute, compare them with the schedule, and generate timesheets and payrolls in a fully automatic mode. It has been working for several months now, so we have received positive feedback and improved the integration.

Thus, we were able to obtain the following advantages:
- keep the established process for workers.
- reduce the time for forming timesheets and payrolls.
- avoid the cost of additional equipment.
- synchronize two systems into a powerful bundle.
- provide the ability to add any access control system to newly connected facilities.
- another plus in favor of our system for new facilities.
- add the ability to work with multiple facilities in one company and one employee in multiple facilities.

In the next part of the article, we will talk about the technical implementation and highlight the integration into a separate library based on the Ruby programming language.

Thanks for reading and if you have any questions contact us by email go@roonyx.tech or mkokotov1@gmail.com

--

--