Attendance & Shifts
Attendance is the hub where your company's daily attendance data lives. It shows a monthly grid, one row per employee, so you can see a whole month of statuses at a glance, filter down to a team or a person, correct entries manually, and move data in or out with Import and Export.
Who can use it
Attendance is an HR area, so it's available to admins and to users whose role grants Attendance permissions. What you can do inside it — view only, mark attendance, import, export, delete — follows the permissions attached to your role. If a button described here isn't visible for you, your role doesn't include that action.
Prerequisites
- Employees must already exist in Employees (
/account/employees), since the grid lists one row per employee. - Shifts should be configured so statuses like Late are meaningful. The default General Shift runs 9:00 AM–6:00 PM, Monday–Friday, with a late-mark threshold of 20 minutes after shift start and max check-ins per day of 2. Custom shifts can be added beyond the default.
- Company holidays should be entered in Holiday (
/account/holidays) so those days show correctly in the grid.
How to access
Go to HR → Attendance — /account/attendances.
Related areas you'll often use alongside it:
- Shift Roster —
/account/shifts - Holiday —
/account/holidays - Leaves —
/account/leaves - Attendance Report —
/account/attendance-report - Overtime Request —
/account/overtime-requests
Reading the monthly grid
Each cell in the grid carries one status:
| Status | Meaning |
|---|---|
| Holiday | The day is a company holiday from the holiday calendar. |
| Day Off | A non-working day for that employee's shift. |
| Present | The employee was recorded as working that day. |
| Half Day | A partial working day. |
| Late | Clock-in landed after the shift's late-mark threshold. |
| Absent | No attendance recorded for a working day. |
| On Leave | An approved leave covers that day. |
Filtering the view
Narrow the grid with the available filters: Employee, Department, Designation, Month, and Year. Combining Department with Month is the quickest way to review one team's full month.
Marking attendance manually
- Open Attendance (
/account/attendances). - Set Month and Year to the period you're correcting.
- Choose Mark Attendance.
- Select the employee and the date, set the status, and save.
Use this for corrections — a missed clock-in, a status that should have been Half Day, a day recorded before a shift change.
Importing attendance
Use the Import action to bring attendance in from a file — useful for backfilling a period or moving data in from another system. Import the smallest range you can verify first, check the resulting grid, then import the rest.
Exporting attendance
Use the Export action to take the data out for payroll checks, audits, or your own reporting. Export the month you're about to change before you change it, so you always have a copy of the original values.
Effect on other features
- Payroll — Payroll generation has a Use Attendance toggle. When it's on, the attendance data in this grid feeds the payroll run, so corrections should be made before generating payroll for that period.
- Leaves — Approved leave shows in the grid as On Leave, so leave and attendance stay consistent without double entry.
- Holidays — Days from the holiday calendar appear as Holiday in the grid.
- Reports — Attendance Report (
/account/attendance-report) reads from this same data. - Slack notifications — Slack is a supported one-way integration (PMSuite → Slack) configured under Settings → Notification Settings → Slack, and its per-event checkboxes include attendance reminders. Turning those on sends attendance-related notifications into your Slack channel.
- Attendance reminders — Reminder emails are controlled by the Attendance Reminder Status toggle in Settings → Attendance Settings. The same page also has a Send monthly attendance report email option.
Limitations
-
Deleting attendance is permanent. Attendance records are hard-deleted — there is no trash, no soft-delete and no recovery path. Once a record is removed it cannot be restored. Workaround: before any deletion or clean-up, run Export for that month and keep the file. If a record is deleted by mistake, re-create it with Mark Attendance (or re-import from your export) — the values can be restored manually even though the original row cannot.
-
A second clock-in doesn't appear as its own row. When Max Check-ins per day is set above 1, the additional check-ins are stored as extra fields on the same attendance record for that day, not as separate entries in the list. Workaround: open that day's record and read it in full rather than scanning the list for a second line — the extra check-in is inside the existing record.
-
IP-based clock-in restriction is only reliable with a static IP. On a dynamic office IP the check behaves inconsistently. Workaround: use the GPS/location radius restriction instead, which doesn't depend on your ISP's IP assignment.
-
MAC address authentication isn't possible. Browsers cannot expose a device's MAC address, so clock-in cannot be locked to a specific device that way. This is a technical constraint of the browser, not a configuration gap. Workaround: use location radius, or IP restriction where the office has a static IP.
Troubleshooting
An employee shows Absent but they worked that day. Confirm the date falls inside their assigned shift and isn't a Day Off or Holiday, then correct it with Mark Attendance.
Someone is marked Late but arrived on time. Check the shift assigned to that employee and its late-mark threshold (20 minutes after shift start on the default General Shift). If they were on a different shift that day, fix the shift assignment in Shift Roster, then correct the attendance entry.
The second clock-in of the day seems missing. It isn't a separate row — open the same day's attendance record and check its additional check-in fields.
An employee is getting repeated reminder emails for the same day. Check that the Attendance Reminder Status toggle in Settings → Attendance Settings is set to the expected state. If reminders continue arriving more often than intended, verify that no additional notification rules are triggering duplicate sends.
I deleted an attendance record by mistake. It cannot be recovered. Re-enter it with Mark Attendance, using your latest export as the reference.
An employee's row is missing from the grid. Clear the Employee/Department/Designation filters, and confirm the employee record exists in Employees.