Frequently asked questions
The questions asked most often about Employee Document Expiry, answered.
Does this need Odoo Enterprise? No. It works on Community and Enterprise alike, and depends only on hr and mail, which are core.
Does it work on Odoo.sh? Yes. Add the folder to your project repository and install from Apps.
Which Odoo versions? 18.0 only. The view syntax and the ORM APIs used here are 18.0's.
Where do reminders actually appear? As scheduled activities on the responsible person's Odoo activity list — the clock icon in the top bar — with the expiry date as the deadline. An email is also sent unless you turn it off in the settings.
Will it email people every day? No. Each threshold fires once. The module records that it has sent a reminder and does not send it again, however often the cron runs.
What happens when a document is renewed? Both "already sent" flags reset automatically the moment the expiry date changes, so the new expiry is chased properly when its time comes.
Can I send only one reminder instead of two? Yes. Set the second reminder to 0 on that document type.
Can I turn email off entirely? Yes — Settings → Employee Documents → Send Reminder Emails. Activities are still created, so nothing is lost; the reminders simply never leave the database.
Who can see passport numbers? Only the employee themself, their direct manager, and users in the Employee Documents / Manager group. This is narrower than Odoo's own HR visibility on purpose. See SECURITY.md.
An HR Officer cannot see documents. Is that a bug? No. Being able to see employee records does not grant access to their identity documents. Give them the Employee Documents / User or / Manager group explicitly.
Does it work with multiple companies? Yes. Documents inherit the employee's company, and managers see only their allowed companies.
Can I attach a scan of the passport? Yes, on the Scans tab. They are ordinary Odoo attachments and follow your existing attachment storage and access rules.
What about documents that never expire, like a degree? Set Expires to off on the type. Those documents are recorded and never chased. One such type, Degree / Qualification, is shipped configured that way.
Can I be told when an employee is missing a required document? Yes — mark the type Mandatory. Its form then shows a Missing count, and pressing it lists the employees who hold no document of that type at all.
Can I keep a history of previous passports? Yes. Use Record Renewal rather than editing the date: it creates a new record and leaves the old one. Archive the old record to keep it out of the way without deleting it.
What are the reminder lead times based on? Realistic renewal times, not round numbers. A passport reminder starts 180 days out because many countries refuse entry within six months of expiry; a work visa starts at 90 because that is roughly how long processing takes. Check them against your own jurisdiction and adjust — it is the one setting that decides whether the module is useful.
Will an upgrade overwrite my edited lead times? No. The shipped types load with noupdate="1".
Does it call out to the internet? Never. No external services, no telemetry, no third-party Python packages.
What happens if I uninstall it? Both tables are dropped and every recorded document goes with them. Export first if you want to keep the data.