Visitor Management
Front-desk visitor sign-in with NDA capture, host email alerts, an optional photo, and an end-of-day auto check-out.
Why this module
Visitor Management
Sign in, sign out, on the record
A visitor is captured with host, organisation and purpose, signed in at arrival and signed out on departure. Each visit gets an auto-numbered reference and a computed on-site duration, so the front desk has a clean, searchable log.
NDA before they walk in
When the visit purpose requires an NDA, sign-in is refused until the visitor accepts, and the exact NDA text shown is stored on the visit. A required, unaccepted NDA cannot slip through as a signed-in visitor.
Nobody stays signed in overnight
A daily cron auto checks-out visitors still open at end of day and flags them as auto-signed-out, so a forgotten sign-out does not leave a visitor on-site in the record forever.
Day in the life
A contractor arrives for a 10am meeting
The contractor signs in at reception, picks the purpose, and accepts the NDA the purpose requires, because without it sign-in is blocked. The host employee gets an email that their visitor has arrived, a photo is attached to the visit, and the record moves to signed in with an auto-numbered reference. When the meeting ends the contractor signs out and the visit records its duration. If someone forgets to sign a visitor out, the end-of-day cron closes the visit and marks it auto-signed-out, so the next morning's log is accurate.
Edge cases
The cases most modules quietly ignore.
In the shipped code today, each one a place where a cheaper module silently does the wrong thing.
A constraint refuses to leave a visit in a signed-in state when its purpose requires an NDA that has not been accepted, so a required NDA is a hard gate on sign-in, not a checkbox someone can skip.
A daily cron signs out visitors still open past end of day and sets the auto-signed-out flag, so a forgotten sign-out is corrected and distinguishable from a manual one.
Each visit carries an auto-generated, time-based visit number, so every arrival is individually identifiable in the log.
End-of-day and duration math use the company timezone (falling back to UTC), so auto check-out fires at the site's local end of day rather than a server-clock midnight.
The visit references the suite's existing kiosk site and device records (ondelete set null), so removing a kiosk does not delete the visitor history tied to it.
What is inside
Built to do the job, end to end.
- Visitor model. eh.hr.visitor with visitor and host details, purpose, kiosk site and device, arrival and sign-out times, NDA required and accepted flags with the shown text, optional photo, an auto visit number, and a computed duration.
- Configurable purposes. eh.hr.visitor.purpose records define the selectable reasons for a visit and which of them require an NDA.
- Sign-in and sign-out. action_sign_in enforces the NDA gate and stamps arrival; action_sign_out closes the visit. Host notification goes out by email on arrival.
- Auto check-out cron. A scheduled job closes visits left open at end of day and marks them auto-signed-out, company timezone aware.
Honest about the edges
What this does not do, so nothing surprises you.
- This is a visitor log and reception tool. It is not a door access or badge system; it does not unlock doors or grant physical access (that is a separate access-control module).
- Host notification is by email, so it relies on a working outgoing mail server in your Odoo. There is no SMS or push channel here.
- It reuses the suite's kiosk site and device records and depends on the attendance base; it is not a standalone reception app for vanilla Odoo.
visitor management Odoo, visitor sign in Odoo, front desk reception Odoo, NDA capture visitor, host notification visitor, visitor log, kiosk visitor sign in, Odoo 18 Community attendance, auto check out visitor
Need this fitted to the way you work?
ERP Heritage delivers end to end Odoo work: Odoo Implementation, Customization and Development, Integration, Migration, Consultation, Support and Training. We help teams put this module into production, shape it to their process, and keep it running.
We work with businesses across Australia (Melbourne, Sydney, Brisbane, Perth, Adelaide, Canberra) and the Middle East (Dubai, Abu Dhabi, Riyadh, Jeddah, Doha, Kuwait City, Muscat). Start a conversation at erpheritage.com.au or email info@erpheritage.com.au.
Languages
Available in 19 languages
The interface ships translated out of the box. Switch language in Odoo and the fields, menus, and messages follow.
Modules teams pair with this one.
Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.
Sync Employment Hero ATS recruitment job openings into the standard Odoo Recruitment app, mapping each opening on...
The New Zealand country pack for the ERP Heritage Employment Hero integration
A reusable two way synchronisation engine that keeps Odoo in step with the people and payroll platform, idempoten...
Please log in to comment on this module