← Learning Center · POS
Set up the POS time clock
Add the Staff Hub tile to your Shopify POS, configure PIN-based clock-in, location restrictions, break policies, and the manager-view roster — so your team can clock in from POS instead of paper or another app.
What you'll set up
- The Staff Hub time clock tile on Shopify POS
- The Manager View tile (separate from the staff tile)
- PIN policy (4–6 digits, unique per staff, bcrypt-hashed at rest)
- Optional location restrictions (assigned-location-only clock-in)
- Optional device restrictions (whitelist specific POS device IDs)
- Break policies — paid/unpaid, mandatory/optional
- Early/late grace minutes for clock-in and clock-out warnings
Step 1 — Confirm staff have PINs
Open Manage → Staff. Each staff member who needs to clock in via POS must have a PIN set. The Staff Directory shows a status badge for missing-PIN profiles. If you see any, set their PINs first — see Onboarding new staff.
Step 2 — Configure workforce settings
Open Manage → Workforce. The default settings work for most stores; review these:
- Require PIN on POS — On (recommended). When off, anyone tapping the tile can pick a name from a list and clock in. PIN is the standard.
- Assigned location only — If your shop has multiple locations and staff are tied to specific ones, turn this on. Clock-ins from non-assigned locations are blocked.
- Early clock-in grace minutes (default 15) — Staff clocking in earlier than this gets a warning logged on their timesheet.
- Late clock-out grace minutes (default 15) — Same idea on the back end of a shift.
- Auto-close open entries after (default 16 hours) — Catches staff who forgot to clock out. The entry auto-closes and gets flagged for manager review.
- Photo verification — Optional. When on, a selfie is captured at clock-in/out for fraud control.
- Device restrictions — Optional. Lock clock-ins to specific POS devices by ID.
Step 3 — Configure break policy
Under Manage → Workforce → Break policies, create a policy that matches your jurisdiction:
- Paid vs unpaid — Affects payroll calculations
- Mandatory after N hours — When set, the time clock prompts the staff member to take their break
- Minimum duration — Prevents 30-second "breaks"
One policy per shop is fine for most retailers. If you have salaried managers and hourly floor staff, you can create separate policies and assign per-role.
Step 4 — Add the tile to Shopify POS
On the iPad or POS hardware:
- Open Shopify POS, tap the menu icon, then Smart Grid
- Tap Edit Smart Grid
- Tap Add tile → choose App → select Staff Hub → Time clock
- Drag the tile to a prominent position
- Repeat for the Manager View tile (a separate option in the Staff Hub picker)
- Tap Save
Step 5 — Test the flow
Walk through a clock-in as one of your staff:
- Tap the Staff Hub tile on POS
- The PIN entry screen loads. Enter a staff member's PIN.
- Verifying happens server-side: bcrypt compare against the stored hash, plus rate-limit check. On success, a 10-minute signed verification token returns and the staff state loads.
- Tap Clock In. The screen should now show "Clocked in at 9:02 AM" or similar with the option to take a break or clock out.
- Tap Clock Out. The session ends and a TimeEntry is finalized.
- Open the admin web app at Manage → Timesheets. The new entry should appear with any warnings flagged (e.g. early clock-in if it was outside the grace window).
Step 6 — Set up Manager View
Manager View is a separate POS tile that shows the live store roster. Managers can:
- See who's working, on break, late, or no-show
- Manually clock staff in/out (with required reason)
- Start or end a break for someone
- Adjust shift times
- Mark a no-show
Every manager action creates an immutable TimeEvent with the manager's ID, timestamp, IP, and the reason. Audit trail is full.
Common issues
"Verifying..." spinner hangs
Network issue between POS and the Staff Hub backend. Check your store's internet, then check https://api.staffhubapp.com/api/health in a browser — should return "status": "ok". If health is fine, retry. The app handles transient network errors gracefully.
"Invalid PIN" but the PIN is correct
Most common cause: the staff member is set to terminated in their profile. Inactive staff can't clock in. Check Manage → Staff → the staff member's Employment status. Less common: rate limit (5 wrong PINs in 5 minutes triggers a temporary block).
"Location not allowed"
The staff member's Workforce → Assigned locations doesn't include the location they're clocking in from. Either add the location to their profile or turn off Assigned location only in workforce settings.
"Already clocked in" when they're not
A previous shift didn't close cleanly (network drop, app crash). Open Manage → Timesheets, find the open entry, and click Force close. This adds a manager_adjustment audit event. The auto-close-after-16-hours setting catches these in the background.
What's next
Once POS clocking is live, the natural next steps are:
- Build and publish a schedule — so clock-ins link to the right shifts and warnings catch early/late patterns
- Run a payroll period and export CSV — the whole point of capturing clean clock data
