Module: HR → Attendance / Employee Checkin Version: (mention your Frappe/ERPNext version here if you know it) Setup: Self-hosted / Frappe Cloud (edit as applicable)
Issue Description
I am setting up the HR module for our company (22 employees) and have configured Employee Checkin so staff can check in and out daily via the mobile app.
The problem is: after an employee checks in, the button still shows “Check In” instead of switching to “Check Out.” This means they cannot log their checkout.
However, for Admin users, the button correctly changes to “Check Out” after a check-in. The issue only affects regular (non-admin) employees.
What I’ve done so far
-
Created employee records for all 22 employees
-
Enabled the Attendance module in HR settings
-
Employees are able to tap Check In and the record appears to be created
-
Confirmed the issue is consistent — all non-admin users face this, admin users do not
What I suspect (but am not sure)
I think it might be a permissions issue — regular employees may not have read access to their own Employee Checkin records, so the system can’t detect that a check-in already exists and therefore doesn’t switch the button state to Check Out.
It could also be related to the Employee linked to the User not being set correctly, so the app doesn’t know which checkin record belongs to the logged-in user.
Questions
-
Is there a specific Role or Permission that needs to be granted to the “Employee” role for Employee Checkin doctype (specifically Read access)?
-
Does each User account need to be linked to an Employee record via the Employee master for this to work? If yes, where exactly is this set?
-
Is there any known bug or configuration step related to this in recent versions?
Any help would be greatly appreciated — I’m not a developer, mostly setting this up through documentation, videos, and community forums, so step-by-step guidance would be a big help!
Thanks in advance.