Skip to Content

Biometric Device Integration for Odoo HR

ZKTeco Devices,

Odoo Attendance,

One System

Connect your ZKTeco biometric machines to Odoo HR Attendance with a robust queue-based processing pipeline. Automatic fetching, duplicate prevention, punch conversion, and full audit trails β€” out of the box.

Explore Features Get Support


5+
Data Models
2
Scheduled Crons
18 / 19
Odoo Versions

ZKTeco Device - Live
Main Gate Device
192.168.1.101 : 4370 / TCP
ONLINE
Protocol
TCP
Port
4370
Connection
OK
Last Sync
09:01 AM
Timeout
5s
Mode
Auto
Latest Punches
John Doe 08:02 Check In
Jane Smith 08:05 Check In
John Doe 12:00 Check Out
Queue Processing Pipeline
D
Device
>
P
Punches
>
Q
Queue
>
A
Attendance
What is this module?

Queue-Based Biometric Attendance for Odoo

This module bridges ZKTeco biometric hardware and Odoo'shr.attendancemodel with a reliable, asynchronous processing pipeline. Raw punches are fetched, validated, queued, and converted into clean Odoo attendance records β€” automatically, on a schedule.

πŸ“± Multi-Device Support

Connect any number of ZKTeco devices β€” TCP or UDP β€” each with its own IP, port, password, and timeout configuration. Test connectivity with one click.

⏳ Asynchronous Queue

Punches are never processed synchronously. They enter an intermediate queue first, ensuring no data is lost even if processing fails partway through.

πŸ”„ Smart Punch Conversion

Separate Check-In / Check-Out punches from the device are automatically paired into complete Odoo attendance records β€” 4 punches become 2 clean attendance entries.

Key Capabilities

Everything Built In

Multiple Device Support

Manage any number of ZKTeco biometric devices from a single Odoo interface β€” each independently configured and monitored.

TCP & UDP Protocols

Supports both TCP and UDP connection modes, covering the full range of ZKTeco device network configurations in the field.

Device Connection Testing

Test connectivity directly from the device form with the built-in Test Connection button β€” no separate tools needed.

Automatic Fetch via Cron

A scheduled cron automatically downloads punches from all connected devices on a configurable interval β€” fully hands-free.

Employee-Device Mapping

Map biometric User IDs to Odoo employees individually, supporting multi-device environments where one employee uses multiple machines.

Queue-Based Processing

All fetched punches pass through an intermediate queue before becoming attendance records β€” providing reliability and safe retry capability.

Queue Logs & Tracking

Every queue line records its processing outcome β€” success or failure β€” with a message explaining exactly what happened.

Duplicate Prevention

Built-in duplicate detection prevents the same punch from creating multiple attendance records, even if a device re-sends data.

Conflict Handling

Invalid sequences and Odoo validation errors are caught and flagged as Conflict state with a reason β€” never silently dropped.

Setup Workflow and Architecture

Three Steps to Go Live

From hardware to Odoo attendance records β€” a clear, predictable pipeline every step of the way.


01
Configure Device
Create a device record at Attendance > Configuration > Devices . Enter the IP Address, Port, Password and Protocol. Use Test Connection before saving.
02
Map Employees
Link each ZKTeco User ID with the corresponding employee from Attendance > Configuration > Employee Device Mapping .
03
Fetch and Process
Attendance Fetch Cron downloads punches automatically. Queue Processing Cron converts them into hr.attendance records automatically.

ZKTECHO Device

Fetch attendance (Cron 1)

Draft Attendance

Queue

Queue Attendance (Cron 2)

Odoo Attendance

Watch It in Action

Full Module Demo

See the complete flow β€” from adding a ZKTeco device, mapping employees, triggering a fetch, and watching attendance records appear in Odoo HR.


Documentation and Guidance

Everything You Need to Get Started

From installing the Python dependency to configuring scheduled crons β€” complete guides for every step.