The Attendance Problem That's Costing Businesses Thousands
Every business reaches a breaking point with manual attendance management and most don't realise how much it's costing them until the damage is done. Paper registers get falsified. Spreadsheets carry forward errors for weeks before anyone catches them. Buddy punching where one employee clocks in on behalf of another drains payroll budgets silently. And even companies that invested in ZKTeco biometric hardware often find themselves in the same position: someone still has to manually export attendance data from the device, format it, and import it into their ERP every single day.
That manual step small as it sounds introduces delays, discrepancies, and an unnecessary dependency on human memory. Multiply that across multiple locations, dozens of devices, and hundreds of employees, and you have a systemic problem hiding in plain sight. There is a smarter way. And it starts with making your ZKTeco device and Odoo actually talk to each other.
What is ZKTeco?
ZKTeco is one of the world's leading manufacturers of biometric security and time-attendance hardware. From fingerprint scanners to advanced face recognition terminals, ZKTeco devices are trusted by thousands of businesses globally from small retail outlets to large manufacturing plants precisely because they are affordable, durable, and accurate.
The Gap: ZKTeco Works. Odoo Works. But They Don't Talk.
Odoo is a powerful open-source ERP platform used by businesses worldwide to manage HR, payroll, inventory, sales, and more. Its Odoo HR Attendance module is designed to track employee working hours, calculate overtime, and feed into payroll automatically.
But out of the box, Odoo and ZKTeco devices operate in complete isolation. There is no native bridge. The typical workaround involves downloading attendance logs from the ZKTeco device, converting the file into a compatible format, and manually uploading it into Odoo sometimes daily, sometimes weekly, and often inaccurately.
This disconnection creates real business risk: payroll errors, compliance gaps, and an HR team that spends more time reconciling data than managing people. What's needed is a direct, live connection between ZKTeco hardware and Odoo and that's exactly what this module delivers.
Introducing the Creyox ZKTeco Biometric Integration Module
The Smart ZKTeco Attendance System is a production-grade ZKTeco Odoo integration developed by Creyox Technologies for Odoo. It eliminates the manual data transfer gap entirely by establishing a real-time, bidirectional connection between your ZKTeco biometric devices and Odoo HR Attendance using the industry-standard ADMS protocol.
No middleware. No third-party software. No daily CSV exports. Just accurate, automated, real-time attendance tracking built directly into Odoo.
How ADMS Live Sync Works
ADMS, short for Attendance Data Management System, is a push-based communication protocol built into ZKTeco devices. Rather than waiting for someone to pull data from the device, ADMS actively pushes attendance records to a server the moment a punch is registered.
Here is how the flow works with this module:
Employee punches in (fingerprint or face recognition on the ZKTeco terminal) → ZKTeco device pushes the record via ADMS to Odoo in real time → Odoo HR Attendance module instantly creates the attendance entry timestamped, employee-matched, and stored securely.
The result is a fully automated pipeline. From the moment an employee places their finger on the scanner to the moment the attendance record appears in Odoo, no human intervention is required. This is what genuine real-time attendance tracking looks like in practice.
Key Features Deep Dive
Real-Time ADMS Sync
Every fingerprint or ZKTeco face recognition punch is pushed live to the Odoo HR attendance module the moment it occurs. Records are timestamped at source, deduplicated to prevent ghost entries, and stored with tamper-proof integrity ensuring your payroll data is always accurate and audit-ready.
Remote Device Management
One of the most overlooked costs of managing biometric hardware is the time spent physically visiting devices. With this module, HR and IT teams can remotely enroll employees, push or fetch biometric templates, reboot devices, and clear logs all from within the Odoo interface. Remote biometric enrollment in Odoo means your team spends less time in server rooms and more time on work that matters.
Auto-Checkout Engine
Forgotten checkouts are a perennial HR headache. The auto-checkout engine automatically closes any open attendance record at a configured time, ensuring no employee is ever shown as still "checked in" at midnight simply because they forgot to punch out. Clean records, every day, without manual correction.
Grace Period & Night Shift Intelligence
Real workplaces don't run on perfect schedules. The module supports configurable grace windows for both late arrivals and early departures, giving HR managers the flexibility to accommodate real-world scenarios without triggering false violations. Night shift attendance in Odoo is handled with cross-midnight logic that correctly attributes shifts spanning two calendar days eliminating the common issue of split records for overnight workers.
Multi-Timezone Support
For businesses operating across regions or countries, each ZKTeco device can be configured with its own timezone. Punch timestamps are normalized correctly regardless of where in the world the device is located, keeping your global attendance data consistent and comparable.
Sync Health Monitor
Silence from a biometric device can mean it is offline or it can go unnoticed entirely until HR realizes attendance records are missing for an entire day. The Sync Health Monitor uses a live heartbeat mechanism to display the real-time online or offline status of every connected ZKTeco device. When a device goes dark, you know immediately before it becomes a reporting problem.
Built-In Attendance Reports
The module ships with four enterprise-grade reports accessible directly from Odoo: Daily Attendance Summary, Absence Report, Daily Attendance Detail, and a full Excel export. HR managers can generate, review, and share attendance data without touching a third-party reporting tool.
Step-by-Step Setup Overview
- Go to Settings >> Users & Companies >> Users and open the user to whom you want to grant access for synchronizing biometric User data with devices.
- There turn on the Can Edit Biometric Data option and save the user record. This will allow the user to synchronize user data between Odoo and the devices.
- Go to Attendances >> Dashboard. There, you can view all the metric cards, such as Total Employees, Present, On Leave, Absent, Late Arrivals, Early Leavings, and more.
- If an employee has an approved leave or a public holiday assigned for the day, they will be excluded from the absent list and displayed under On Leave.
- Go to Attendances >> Biometric Configuration >> Devices to view and manage all connected biometric devices in one place.
- If the device is newly added, click Approve Device to authorize it and enable communication with Odoo for the first time.
- Once the device is approved, you can configure its settings based on your attendance and synchronization requirements.
- You will find multiple action buttons to manage the device.
- By clicking Download User Data, Odoo creates a command to fetch all user records from the device, including fingerprint templates, face templates, and user roles. If an employee with the same biometric ID already exists, their details will be updated; otherwise, a new employee record will be created automatically with the downloaded biometric data and assigned role.
- By clicking Export Users, you can send all employee records from Odoo to the device. If a user with the same biometric ID does not exist on the device, a new user will be created; otherwise, the existing user data will be updated.
- Click Download Logs to open a pop-up. Enter the date range for which you want to download attendance logs, or leave the dates empty to download all available logs.
- You can fetch and import attendance logs from the device into Odoo either for a specific date range or all available logs.
- By clicking Reboot Device, a command will be sent to restart the device remotely, so there is no need to manually go to the machine for a reset.
- By clicking Clear Device Logs, all attendance logs stored on the device will be removed.
- By clicking Push Heartbeat Interval, a command is created to update the device heartbeat interval using the value set in the Heartbeat Interval (Seconds) field.
- If Use Communication Key is enabled, the Communication Key field will appear. You can set a secure key here, and synchronization will only happen when the device uses the same key. Odoo verifies both keys during communication, and sync is allowed only if they match.
- Set the Device Timezone according to the timezone configured on the device to ensure attendance logs are synced with the correct date and time in Odoo.
- Using the Used For field, you can define whether the device will be used for Check-In, Check-Out, or Both. If set to Check-In Only, every punch from the device will be recorded as a check-in in Odoo. If set to Check-Out Only, all punches will be treated as check-outs. If Both (Check-In and Check-Out) is selected and Status Code Based is enabled, punches will be recorded based on the punch type received from the device. If Status Code Based is disabled, Odoo will process punches sequentially for each employee, where the first punch is treated as check-in and the second punch as check-out.
- Using the Min Punch Interval field, you can set a minimum time gap between punches for the same employee to prevent duplicate or accidental multiple punch entries.
- If Auto Check-Out is enabled, the Auto Check-Out Time field will appear, allowing you to set the number of hours. Odoo will close any open attendance records at the configured hours after the shift end time for that day.
- The Heartbeat Interval field lets you define how often the device sends heartbeat requests to Odoo, helping maintain regular communication between the device and system.
- If Auto-Clear Device Logs is enabled, attendance logs will be automatically removed from the device after successful synchronization, helping keep device memory available.
- Using Attendance Policy, you can configure Grace Periods for employee check-in and check-out timings to handle late arrivals or early departures more accurately.
- You can configure Check-In Grace and Check-Out Grace in minutes. For example, if an employee checks in 10 minutes late and the allowed grace period for check-in is 10 minutes, it will still be counted as on-time. Similarly, if an employee checks out 10 minutes early and the allowed grace period for check-out is 10 minutes, it will also be treated as an on-time checkout.
- Enable Enable Absent Email Alerts and configure the Alert Delay and Admin Alert Email.
- Every day, an email will be sent to the configured email address after the specified delay from the shift start time, listing employees who are absent for the day.
- You can also manage individual employee biometric data directly from the employee form when the Biometric User ID is configured. Multiple options are available there to manage and synchronize employee biometric information.
- By clicking Push User Data, a command is created to send the employee’s fingerprint templates, face templates, user role, and name to the device. If a user with the same biometric ID already exists on the device, their data will be updated; otherwise, a new user will be created.
- By clicking Fetch Biometric Data, you can retrieve the employee’s biometric information from the device, including fingerprint templates, face templates, user role, name etc.
- The Remote Enrollment button allows you to enroll an employee’s biometric data (fingerprint or face) directly from Odoo without manually configuring it on the device. When clicked, Odoo sends a request to the device to capture and register the employee’s biometric template.
- When clicked, a wizard will open where you can select the Enrollment Type (Face or Finger), choose the biometric device, and select the specific finger if finger enrollment is chosen. After clicking Start Enrollment, a command is created. Within a few seconds, the device will automatically prompt the employee to scan their selected finger or face based on the chosen enrollment type.
- You can also Transfer employee's finger/face templates to multiple devices by clicking Transfer to Devices.
- by clicking it you will see a wizard where you can select multiple configured devices, just select where you want to trasfer the data and click Transfer Now to send the data
- You can remotely remove an user record from the device by clicking the Delete from Device button.
- You can view all synchronized fingerprint and face templates for the employee under the Biometric Data tab.
- Now go to Attendances >> Attendance Reports to generate and print attendance reports.
- There you will see many options, one of them is Calculate Attendance. It combines multiple attendance records of the same employee into a single attendance record for each day by calculating the total working hours within the selected date range.
- By clicking on Attendance Report (Excel), you can download an Excel spreadsheet containing attendance records for the selected date range.
- By clicking on Daily Summary Report, you can download a summary PDF report for the selected date.
- If an employee has an approved leave or a public holiday assigned for the day, they will be excluded from the absent list and displayed under On Leave.
- By clicking on Absence Report, you can download a Absence PDF report for the selected date.
- By clicking on Daily Attendnace Report, you can download a Attendance PDF report for the selected date.












































Who Should Use This Module?
This integration is purpose-built for:
- HR Directors and Managers who need accurate, real-time attendance data without manual reconciliation
- IT Administrators responsible for managing ZKTeco device infrastructure across one or multiple locations
- Odoo Functional Consultants building comprehensive HR and payroll solutions for clients already using ZKTeco hardware
- Operations Leaders in Manufacturing, Retail, and Logistics where shift-based work, night shifts, and multi-location device management are everyday realities
- Any business currently running ZKTeco devices that wants to eliminate the manual data transfer step between hardware and ERP
Compatibility
The Smart ZKTeco Attendance System is fully compatible with:
- Odoo all versions
- Odoo.sh (cloud-hosted deployments)
- On-Premise Odoo installations
- ZKTeco devices supporting the ADMS push protocol
Stop Managing Attendance Manually
Manual attendance management is not just inefficient, it is a liability. Every spreadsheet error, every missed export, every buddy punch is a cost your business is absorbing silently. The Creyox ZKTeco Biometric Integration module removes that liability entirely by making your ZKTeco hardware and Odoo work as a single, seamless system.
Real-time ADMS sync. Remote device management. Intelligent automation for grace periods, night shifts, and auto-checkout. Enterprise reporting built in. All inside Odoo with nothing to manually maintain.
If your business runs ZKTeco biometric devices and Odoo, there is no reason these two systems should not be working together right now.
Frequently Asked Questions
The Smart ZKTeco Attendance System is compatible with any ZKTeco device that supports the ADMS push protocol which includes the majority of ZKTeco fingerprint and face recognition terminals released in recent years, including the K-series, F-series,
No. That is one of the core design principles of this module. The integration connects your ZKTeco device directly to Odoo using the ADMS protocol, there is no third-party bridge, no additional server, and no external software license required. Everything is managed entirely within your Odoo instance, whether you are running Odoo.sh or an On-Premise deployment.
ZKTeco devices store punch logs locally on the device itself. When your internet connection is restored and the ADMS link re-establishes, the buffered punches are pushed through to Odoo automatically. The Sync Health Monitor built into the module will also alert you in real time when a device goes offline so your HR team knows immediately rather than discovering a data gap days later.
Yes, and this is one of the most technically differentiated features of the module. Standard attendance systems often split cross-midnight shifts into two separate calendar-day records, creating reconciliation headaches for HR. The night shift intelligence engine in this module uses configurable period detection logic to correctly attribute a shift that starts before midnight and ends after it as a single continuous attendance record accurate for payroll, clean for reporting.
The Smart ZKTeco Attendance System is compatible with all Odoo Versions, and works with both Community and Enterprise editions. It is deployable on Odoo.sh (Odoo's cloud platform) as well as On-Premise self-hosted installations.