Check in now, sync when the signal returns
Basements, tunnels, remote sites and new builds often have no mobile data. On a worker's own phone, Attendify saves the punch locally with its real capture time, GPS fix, liveness result and selfie. It gives the punch a unique ID, so retrying the same punch can never create a second record.
The app shows how many punches are waiting and keeps retrying whenever it runs with a connection. When the punch arrives, the server applies the same checks it would have applied live: device authorization, the site boundary, face verification if your workspace uses it, and device integrity.
What happens to each punch
Scroll the table sideways to read all columns.
| State | What the worker and manager see |
|---|---|
| Saved offline | The phone shows a pending count; the dashboard doesn't know about it yet |
| Syncing | The app retries whenever it can run and connect |
| Accepted | The punch appears on the dashboard and in timesheets with its original capture time |
| Refused | The worker sees the reason, and the punch moves to a rejected-records list on the phone |
A refused punch isn't thrown away. It stays in the worker's rejected-records list for 30 days with its reason, time and selfie, so a supervisor can see what happened and record a correction for genuine work.
Capture time and receipt time are both kept
A worker who checks out at 18:00 with no signal and reconnects at 18:20 is recorded as leaving at 18:00. Attendify stores capture time and server receipt time separately. The generic CSV and JSON exports mark each shift that synced offline (the synced_offline field), so late arrivals are easy to spot in review.
Checks still apply offline
- GPS needs no mobile data, so the fix is taken at the punch and checked against the site boundary on sync.
- Face verification, where enabled, runs on the phone and is confirmed again by the server when the punch arrives. A mismatch creates no attendance record.
- Device checks (mock location, emulator, rooted device) are captured at the punch and judged on sync, on app version 1.0.19 and later.
What needs a connection
First-time setup, restoring a worker on a replacement phone and the shared face recognition kiosk all need internet. The kiosk has no offline queue. Automatic retry also depends on the phone letting the app run: if the operating system has closed it, the punch syncs the next time the worker opens the app.
Before rollout, test airplane mode, weak signal, reconnection, a duplicate retry and a refused punch on the phones your crew actually uses.