Employee Documents & Expiry Alerts for Odoo 19 documentation
A guide to employee documents: document types, adding documents, the expiry alerts, missing documents, renewing, access rights and the limits.
Documents version 1.0.0Updated Oct 23, 2026
Start here
In plain words: A passport that expired last month, a residence permit nobody renewed, a driving licence that lapsed while the employee was driving the company car. Employee Documents & Expiry Alerts keeps every employee's documents in Odoo with their expiry dates, warns you before they expire, shows who is missing a required document and lets you renew in one click.
Tip: Alerts are sent by a daily job as activities for HR and a note on the document. You can also email the employee.
What you get
| Feature | What it does |
|---|---|
| Document types | Passport, ID, residence permit, licence, insurance and more, each with a validity period and a reminder period. Add your own. |
| Each employee's documents | Number, issue and expiry dates and the scanned files, on the employee form and in one list. |
| Expiry alerts | One alert before a document expires and one when it has expired, to HR, to the employee's manager and, if you wish, to the employee. |
| Red and orange | Expired documents in red, expiring ones in orange, with filters for the next 30 and 90 days. |
| Required documents | Mark a type as required and see which employees are missing it. |
| Renew in one click | The old document is archived and a new one is ready with proposed dates. |
| Private | HR officers see all documents; an employee sees only their own. |
| Arabic | Everything is translated and works right to left. |
Requirements
| Item | Details |
|---|---|
| Odoo | 19.0 (Community or Enterprise) |
| Apps needed | Employees (hr) |
| License | OPL-1 (Odoo Proprietary License v1.0) |
Install
- Unzip the package. Inside is
taqnix_employee_documents.zip; unzip it to get the foldertaqnix_employee_documents. - Copy the folder into one of the
addons_pathfolders of your Odoo server and restart Odoo. - Log in as an administrator, activate Developer mode, open Apps and press Update Apps List.
- Remove the “Apps” filter, search Employee Documents and press Install.
# or from the command line ./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_employee_documents --stop-after-init
Document types
In plain words: Open Employees → Configuration → Employee → Document Types. Eight common types are installed; change them or add your own.
| Field | Meaning |
|---|---|
| Validity (months) | Proposes the expiry date from the issue date. 0: the document does not expire (a signed contract). |
| Remind (days before) | The first alert is sent this many days before the expiry. 0: no early alert. |
| Required for everyone | Employees without a document of this type are listed as missing it. |
| Notify | Users who receive the alert as an activity. Empty: the HR administrators. |
| Notify the employee's manager | The manager of the employee, if they have a user, receives the alert. |
| Notify the employee | The employee receives an email (work contact or user). |
Add the documents
In plain words: Open an employee and go to the Documents tab, or use Employees → Documents → New. Choose the type, enter the number, the issue date (the expiry date is proposed) and attach the scans with Files.
In plain words: The tab shows a red banner for expired documents, an orange one for those expiring soon and a blue one for the required documents the employee does not have.
What needs attention
In plain words: Employees → Documents opens the documents that are expired or expiring soon. Use the filters Expired, Expiring soon, Expires in 30 days and Expires in 90 days, group by employee, type, department or expiry month, and search by number.
In plain words: In the employee list, the filters Has an expired document and Missing a required document find the employees to chase.
The alerts
| When | What happens |
|---|---|
| Reminder period reached | Once: an activity to each person to notify, with the expiry date as deadline, and a note on the document. |
| The document has expired | Once: a new activity due today and a note. |
| You change the expiry date | The alerts start again for the new date. |
| Archived documents and employees | No alert. |
| A type without reminder | No early alert, but the expired alert is still sent. |
In plain words: A daily job sends the alerts. If you want the first alert today, run the scheduled action Employee documents: expiry alerts from Settings → Technical → Scheduled Actions.
Renew
In plain words: Open an expired or expiring document and press Renew. The old document is archived, its pending activities are removed and a new document opens for the same employee and type with today as the issue date and the expiry date proposed from the validity. Enter the new number and attach the new scans.
Who sees what
| Who | Can |
|---|---|
| Employees | Read their own documents only. They cannot change them. |
| HR officers | See, create and edit the documents of all employees of their companies. |
| HR administrators | Also manage the document types. |
Tip: The scanned files belong to the document: whoever may read it may read them.
Arabic and right to left
Limits
| Limit | Detail |
|---|---|
| No OCR | Dates are entered by you; nothing is read from the scans. |
| One alert per stage | A reminder and an expiry alert per document and date. Change the date to re-arm. |
| Employee email | Needs a work contact or a user with an email, and working outgoing mail. |
| Required types | A type is required for everyone; it cannot be limited to a department. |
| Missing means none | An expired document counts as present; it is alerted, not missing. |
For developers
In plain words: Skip this chapter if you only use the module.
| Item | Details |
|---|---|
| Models | taqnix.employee.doc.type and taqnix.employee.document (with chatter and activities). |
| Status | state (valid, expiring, expired) and days_left are computed and searchable. |
| Job | _cron_expiry_alerts, daily. |
| Employee | tx_document_ids, tx_expired_count, tx_missing_type_ids. |
doc = env['taqnix.employee.document'].create({
'employee_id': employee.id,
'type_id': env.ref('taqnix_employee_documents.doc_type_passport').id,
'number': 'P4412987', 'expiry_date': '2027-05-30',
})
env['taqnix.employee.document'].search([('state', '=', 'expiring')])Troubleshooting
| Problem | What to do |
|---|---|
| No alert was sent | Check the dates (the reminder days of the type), that the document and employee are not archived, and that the daily job is active. |
| The manager gets nothing | The manager must have a user. Or add users in Notify on the type. |
| I cannot see the Documents menu | You need the HR Officer right. Employees see their documents from their own employee form. |
| The expiry date is empty | The type has validity 0 or no issue date was entered. Enter the date by hand. |
| I want to change a document type's name | Edit it; the existing documents follow. |
Updating and removing
Replace the folder with the new version, restart Odoo and run -u taqnix_employee_documents. Types and documents are kept. Removing the module deletes the documents; the scanned files are deleted with them.
Support
Installation help and bug fixes are included for 6 months, with lifetime updates. Contact us through the marketplace page where you bought the module or write to support@taqnix.com with your Odoo version and a screenshot.