| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• Discuss (mail) • Employees (hr) |
| Community Apps Dependencies | Show |
| Lines of code | 2226 |
| Technical Name |
eh_hr_attendance_geofence |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au/ |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• Discuss (mail) • Employees (hr) |
| Community Apps Dependencies | Show |
| Lines of code | 2226 |
| Technical Name |
eh_hr_attendance_geofence |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au/ |
Mobile Geofence Clock-in
Per employee, mobile friendly clock in and out for the workers who do not pass through a kiosk. HR pairs the phone once with a six digit PIN. From then on the worker clocks in from a browser, the server gates the request by distance to the company's geofence enabled sites, and a violation raises an exception in the audit trail.
Day in the life
A field worker arrives on site, clocks in from the ute, gets on with it.
HR opens the employee record, hits Issue Pair PIN, reads the six digits to the worker over the phone. The worker opens the mobile shell on their handset, enters the PIN, and the server issues a long lived opaque token bound to that employee. From then on a tap on the shell asks the browser for location once, posts employee token plus latitude and longitude, and the server checks the distance to every active site in the worker's company. Inside any radius, the row is created. Outside, the request is rejected and an exception is raised. No background tracking, no constant ping home, no app install.
Overview
What this module does, in one read.
eh_hr_attendance_geofence pairs an employee's phone to the suite once and turns it into a mobile clock in path, gated by distance to the company's sites.
The pairing PIN expires after five minutes; once redeemed, the device gets a 256 bit opaque token. Geolocation is read only at the moment of clock in or clock out, never continuously. The server compares the reported coordinates against every active site within the company using a haversine distance check. The default radius is 100m unless a site overrides it.
Capabilities
Eight things this module gives you, with no padding.
Six digit pairing PIN
HR clicks Issue Pair PIN on the employee record. The PIN is good for five minutes and one redemption. The redeemed device gets a 256 bit opaque token in return.
Mobile shell, no app install
/eh_hr/mobile/<token> serves a touch friendly check in and check out shell themed to match the kiosk. Workers bookmark the URL on their phone home screen; iOS, Android, and any browser based device are equal.
Server side haversine geofence
The clock endpoint reads each geofence enabled site in the employee's company, computes distance with the haversine formula, and accepts the request if the device is inside any site's radius.
Site override, company default
Each site can declare its own radius; otherwise the company default of 100m applies. Tight a city site to 50m and leave a sprawling depot at 250m without forking the model.
Per employee opt out
A per employee toggle (default on) lets HR mark roles where geofencing does not apply: roving sales, off site contractors, agreed work from home. The mobile path stays available; only the distance check is skipped.
No background tracking
Location is read only at the moment of clock in and clock out, never continuously. The phone never streams its location to the server outside those two moments. Privacy by design.
Token rotation and revoke
A lost handset is revoked from the device record with one click. Action Rotate Token issues a new token (and invalidates the old one) on a re paired phone. Last seen, last IP, last lat and lng are tracked for diagnostics.
Geofence pass and fail audited
Every clock attempt writes to the suite base audit trail. A pass records the distance for forensic context; a fail records why (no geo, distance exceeds radius). Violations also raise a geofence violation exception.
Compared
How this module stacks up.
Workflow
Pair. Bookmark. Tap. Done.
Pair
From the employee record, click Issue Pair PIN. Read the six digit PIN to the worker over the phone.
Bookmark
The worker opens the mobile shell, types the PIN, and adds the resulting URL to the home screen. The token is bound to the device and the employee.
Tap
Worker arrives on site, opens the bookmark, taps the big check in button. The browser asks for location once and posts the request.
Verify
Server validates against the company's geofenced sites. Inside any radius, the row is created. Outside, the request is rejected and an exception is raised.
Frequently asked questions
Honest answers to the questions a buyer asks.
Does the worker need to install an app?
No. The mobile shell is a web page served by your Odoo. The worker opens the URL once via the pair PIN, bookmarks it on their home screen, and uses it like an app from then on.
Does it track location continuously?
No. The browser reads location only at the moment of clock in and clock out. There is no background tracking, no all day GPS ping, no Wi-Fi signature scraping.
What if a phone is lost?
Open the device record and click Revoke. The token is deactivated; the bookmark stops working immediately. Issue a new pair PIN to provision a replacement.
What if a worker has approved off site work?
Untick the geofence required toggle on their employee record. The mobile path stays available; only the distance check is skipped for that worker. The clock event still records the IP and last seen lat or lng for visibility.
Can a worker spoof their location?
Browser geolocation is reasonably hard to fake on a stock device but is possible with developer tools or rooted hardware. For exposure beyond rough hours assurance, pair this with a face match kiosk at the depot start of week.
Please log in to comment on this module