Employee Attendance
Overview
Attendance lets your staff clock in and out from their own phone by scanning a QR code at the POS. Each scan is logged against their Rewardly account, and you review the shifts — and void mistakes — from the admin portal.
It uses the same identity system as your members: a staff member is just a member you've granted attendance access to. They log in with the phone or email they already have, and they don't need a POS user account or a device of their own.
How it works
There are three moving parts:
- An outlet register with Employee Attendance Tracking enabled — this puts the Attendance tab on the POS.
- An attendance access rule — either a whole membership tier or one specific member.
- The staff member's phone — scans the QR, lands on your customer site, and clocks in or out.
Two things worth knowing up front:
- Direction is automatic. Each scan toggles from that person's last confirmed event — first scan of the day is a clock-in, the next is a clock-out. Staff never pick which one they're doing.
- The QR is not static. The POS rotates it every 30 seconds and each code stays valid for about a minute, so a photographed code goes stale quickly.
Default setup
Bean & Brew example: let baristas clock in by phone scan.
1. Enable attendance on the outlet register
- Outlet Registers → click the Edit icon on your register.
- Expand Advanced:.
- Turn on Employee Attendance Tracking.
- Save.
The Attendance tab appears on any POS device logged into that register.
2. Grant attendance access
- POS → Staff & devices → Employee Attendance.
- Click Attendance Access in the top right.
- + CREATE, then pick an Access Type:
- Specific Member — one person can clock in. The simplest option, and it needs no membership program at all.
- Membership Tier — anyone whose active membership is that tier can clock in. Better for larger teams: you hire someone, move them onto the tier, and they're covered.
- Is Active — on.
- Save.
Attendance Access has no sidebar entry
You reach it from the Employee Attendance report's top-right link. Going straight to /attendance-access in the URL works too.
3. Sync the POS
Open the POS and pull down to refresh so the new settings are pulled down.
Using a Staff membership tier
Only needed if you chose Membership Tier above. Create a hidden tier that staff are moved onto when hired:
- Programs → Membership → CREATE.
- Fill in:
- Name —
Staff - Level — any unused level (each tier must have a unique level).
- Is active — on.
- Show on Member App — off (staff don't see member benefits).
- Override Merchant Membership Rules — on.
- Auto upgrade membership — off.
- Allow member to skip level — off.
- Name —
- Save.
Then move each new hire onto the tier from the POS:
- Tap Concierge on the POS.
- Search the new staff by phone or name.
- Tap the first matching member.
- Change Membership Tier to
Staff. - If they had any normal-member perks (vouchers, points), remove those.
Onboarding a new staff member
If the new hire's phone/email is not in Rewardly yet, they need a member account first:
- They scan the online-ordering QR code with their phone.
- Pick Member Login → enter phone (or email, depending on your settings).
- Tick the PDPA / T&C checkbox → Send OTP → enter the OTP.
- Log in, tap < to open the profile form, fill in the mandatory fields, tick PDPA, and Update to register.
Once they exist as a member, grant them access — either add a Specific Member rule, or move them onto the Staff tier.
Clocking in and out
At the POS:
Open the Attendance tab. It shows the outlet name, a live clock, and the QR code under "Scan with your phone to Clock In / Clock Out". The code refreshes itself; pull down if you want to force a new one.
On the staff phone:
- Scan the QR with the phone camera — it opens the attendance page on your customer site.
- If they're not signed in, tap Log In and sign in as they normally would; they come straight back to the same page.
- The clock is recorded automatically — there's nothing to confirm. The screen shows Clocked In or Clocked Out, their name, and the time.
- An Undo button counts down for 5 minutes, in case they scanned by mistake.
- Done returns them to the app, and View attendance history shows their own past clock-ins and clock-outs.
Two messages staff will occasionally see:
- "Already recorded — no new entry was created." — they scanned the same code twice. Nothing was double-counted, and Undo is hidden so their real earlier record stays safe.
- "QR code has expired. Please scan again." — the code on screen had already rotated. Scanning the current one works.
Attendance report
In the admin portal, go to POS → Staff & devices → Employee Attendance (/staff-attendance).
Each row is one clock-in paired with the clock-out that followed it, grouped by day, with columns for Employee, Phone, Email, Clock In, Clock Out, Duration, Outlet, Outlet Register, and Status:
| Status | Meaning |
|---|---|
| Confirmed | Clocked in and out — the shift is complete. |
| In Progress | Clocked in with no clock-out yet. |
| Voided | The record was cancelled, either by the staff member's Undo or from here. |
Filter by Employee, Outlet, Status, a period preset (Today, Yesterday, This week, This month, Last week, Last month), or an explicit From/To range. Export needs a date range set.
Void cancels a record after a confirmation prompt. It can't be undone, and a voided clock-in stops consuming the clock-out that followed it, so the remaining shifts re-pair correctly.
By default the report and its Void action are open to merchantAdmin, outletAdmin, and outletRegisterAdmin, as well as cashier, accountant, conciergeService, and waiter. Narrow that per role under Roles & Permissions.
Related
- Membership — the tier system, if you grant access by tier.
- Concierge — used to move new staff onto the Staff tier.
- POS Settings — the outlet-register settings home.
- Roles & Permissions — who can view and void records.