Employee Checkin
Rohan Kulkarni works the Day Shift, 09:00 to 18:00, in the Production department at the Nova Industries Pune branch. On Tuesday, 3 November 2026, the biometric device at the gate recorded his IN punch at 09:02. It restarted during the afternoon and lost his OUT punch at 18:05.
Frappe HR works out attendance from these punches. With only an IN log, it cannot calculate Rohan's working hours, so Auto Attendance may mark him Half Day or Absent for a full day of work. The HR team needs to add the missing OUT log before attendance is processed, and to be sure that the log belongs to the right shift.
Each punch is stored as an Employee Checkin: one record with the employee, the time and, optionally, the direction (IN or OUT). Logs arrive from a biometric device, from the Check In button in the desk or the mobile app, or are added by hand. When a log is saved, Frappe HR finds the shift that the time falls in and stores it on the log. Auto Attendance then groups the logs of each shift into one Attendance record.
Before you begin
- The employee has an active Employee record. For device logs, the employee's Attendance Device ID (Biometric/RF tag ID) matches the ID the device sends.
- A Shift Type exists, and the employee has a Shift Assignment or a Default Shift. Without a shift, logs are saved as Off-Shift and do not count for attendance.
- To mark attendance from the logs, Enable Auto Attendance is ticked on the Shift Type.
How check-ins reach Frappe HR
| Source | When to use it |
|---|---|
| Biometric or RFID device | Offices with a punching device. A sync script sends each punch to Frappe HR. See Integrating Frappe HR with Biometric Attendance Devices. |
| Check In button | Employees without a device. A user linked to an Employee record sees Check In or Check Out on the Employee Checkin list, and in the Frappe HR mobile app. |
| Manual entry | HR adds a missing or wrong punch, as in Rohan's case. |
| Data Import | Punches exported from another system as a spreadsheet. See Data Import. |
Add a check-in manually
This example adds Rohan's missing OUT log.
- Open the Shift & Attendance workspace and select Employee Checkin in the sidebar. The list shows each log with its employee, type and time. Select Add Employee Checkin.

- In Employee, select Rohan Kulkarni. Set Log Type to OUT and Time to 3 November 2026, 18:05. In Location / Device ID, note where the punch came from, for example "Manual: Pune gate device restarted".

- Select Save. Frappe HR finds the shift for the time and shows it in Shift, here Day Shift. It also stores the shift times on the log: the shift itself (09:00 to 18:00) and the wider window in which punches are accepted (08:00 to 19:00, with the default 60 minutes on each side). Auto Attendance uses these stored times, which are not shown on the form.

Attendance Marked stays empty until Auto Attendance processes the shift. It then links the Attendance record to every log of that shift, and the log's time can no longer be changed unless that attendance is cancelled.
Off-Shift logs and Fetch Shift
A log is Off-Shift when its time is outside every shift window of the employee, or the employee has no shift at all. For example, a punch at 22:30 is outside the Day Shift window that closes at 19:00. The list shows an Off-Shift indicator, and the form explains that the log will not be considered for attendance.

When the shift was missing or wrong at the time of the punch, correct the Shift Assignment first, then refresh the log:
- On one log, select Fetch Shift on the form. The button is available while no attendance is linked to the log.
- On many logs, select them in the list and choose Actions, Fetch Shifts.

Check in from the desk or the mobile app
When the signed-in user is linked to an Employee record, the Employee Checkin list replaces the Add button with Check In or Check Out, depending on the last log. One click saves a log with the current time. HR users also get Add Checkin for Another Employee to enter logs for others. A log outside shift hours is still saved, with a message that it will not count for attendance.
To record where employees check in, tick Allow Geolocation Tracking in HR Settings. The Check In button then asks for the device location and shows it on a map before the log is saved. To allow check-ins only near the workplace, set a check-in radius on a Shift Location and add it to the Shift Assignment. A check-in from farther away is rejected.

In the Frappe HR mobile app, the location is captured the same way when the employee checks in.

Important fields and what they mean
| Field | What it does |
|---|---|
| Log Type | IN or OUT. Optional, unless the shift's Determine Check-in and Check-out setting is Strictly based on Log Type in Employee Checkin. |
| Time | Date and time of the punch. One employee cannot have two logs of the same type at the same time. |
| Location / Device ID | Free text for the device or place of the punch. |
| Skip Auto Attendance | Keeps the log but leaves it out when Auto Attendance runs. |
| Shift | Set automatically on save from the employee's shift. The shift times used by Auto Attendance are stored with it. |
| Off-Shift | Shown as an indicator on the list and form when no shift window contains the time. |
| Attendance Marked | The Attendance record created from this log by Auto Attendance. |
Troubleshooting
This employee already has a log with the same timestamp
A log with the same employee, time and log type exists, usually because the device sent the punch twice. Open the linked log. Keep one of them; the duplicate does not need to be saved.
Log Type is required for check-ins falling in the shift
The shift is set to Strictly based on Log Type in Employee Checkin. Select IN or OUT, or tick Skip Auto Attendance if the log should not count.
Cannot Modify Time
Attendance is already marked from this log. Cancel that Attendance record, correct the time, save, and let Auto Attendance mark the day again.
Latitude and longitude values are required for checking in
Geolocation tracking is on in HR Settings, so every log must have coordinates. Device logs and manual entries without coordinates are rejected too. Turn the setting off if your devices do not send a location.
You must be within the shift location radius to check in
The employee is farther from the Shift Location than its check-in radius. Check the location's coordinates and radius, or remove the Shift Location from the assignment for employees who work away from the site.
Frequently asked questions
Why did a log I added late not change the attendance?
Auto Attendance processes a shift only after its actual end is earlier than Last Sync of Checkin on the Shift Type. The device sync sets that time, or Frappe HR sets it after each shift when Automatically update Last Sync of Checkin is ticked. If the day was already marked from the incomplete logs, cancel that Attendance record. Cancelling unlinks its logs, and the next run marks the day again with all of them.
Can an employee correct a missed punch themselves?
Employees can add their own logs, but HR usually corrects a missed day with an Attendance Request, which keeps a reason and an approval.
Do I need check-ins to mark attendance?
Check-ins are needed only for Auto Attendance. Without devices, mark attendance with the Employee Attendance Tool or upload it with Data Import.