1 · Upload a file
Accepts .csv, .tsv, .txt (tab separated, including the raw ZKTeco attlog.dat) and .xls / .xlsx Excel exports. Column names are detected automatically: PIN / User ID / Employee Code, Name, Date, Time / Punch Time / Date Time, Department, In/Out.
Two layouts are understood: punch detail (one row per punch) and attendance register (one row per employee per day, with separate Check-In and Check-Out columns). Excel dates, date-times and time-only cells are all read, including unformatted serial numbers.
Daily / weekly / monthly register reports (BioMax / BMX DailyAttendance_BasicReport) are supported: each Attendance Date- block is read with its own date, several days or sheets can be mixed in one file, and rows marked A, WO, leave or holiday are stored as day records with that status — so Absent and Week Off come from the file, not from a missing record. Large files are fine — the upload limit is 64 MB.
Several files at once: pick multiple exports and they are uploaded one by one. Everything is merged by employee + date — earliest punch in, latest punch out, newest source status — so re-uploading never duplicates rows and never overwrites good punches. Attendance imports never create employee accounts: names that are not in the employee master are reported as unmapped below (import the HR master from the Employees tab first, then re-upload).
2 · Or paste rows
Paste CSV / TSV text straight from Excel or Notepad, then import.
Connection
Live status of the CRM backend that the dashboard reads from.
Import result
Upload history
Every attendance and employee-master import, newest first (last 50).