- Accueil
- Apps
- SaaS Tools
- Employee Documents Expiry Tracker
Aperçu illustratifA build-to-order Odoo module that stores every employee document with an expiry date and fires automatic
reminders before passports, visas, contracts and certifications lapse.
ECOSIRE builds, installs, and supports it for your database.
Qu'est-ce que Employee Documents Expiry Tracker ?
A build-to-order Odoo module that stores every employee document with an expiry date and fires automatic reminders before passports, visas, contracts and certifications lapse. ECOSIRE builds, installs, and supports it for your database. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Fonctionnalités clés
Fait sur commande, clé en main
Aucune configuration à faire vous-même — une app fonctionnelle conçue, installée et prise en charge par ECOSIRE.
- 1
Vous commandez
Commencez par un prix de développement unique. Nous cadrons le projet avec vous au lancement.
- 2
Nous développons et installons
ECOSIRE la développe, la configure et l'installe sur votre Odoo.
- 3
Mise en ligne + assistance
Vous êtes en ligne en une semaine ouvrée environ, avec deux semaines d’assistance après la mise en production. Les défauts du code que nous livrons sont corrigés gratuitement.
Spécifications techniques
- Compatibilité Odoo
- Odoo 17, Odoo 18, Odoo 19
- Éditions
- Enterprise et Community
- Licence
- Licence à confirmer
- Version Python requise
- Python 3.10+
- Base de données
- PostgreSQL 12+
À propos de ce produit
Every HR team eventually gets burned by an expired document. A work visa that lapsed while the employee kept working, a first-aid certification that ran out the week before an audit, an ID or medical fitness card that expired unnoticed until a border or a compliance officer flagged it. Out of the box, Odoo's hr.employee model gives you a handful of identification fields and a place to attach files, but it has no concept of a document's validity window, no owner-facing dashboard of what is about to lapse, and no reminder engine. You end up tracking renewals in a spreadsheet that nobody updates, and the ERP that holds every other HR fact stays silent on the one thing that carries legal and financial risk.
We build a dedicated document-tracking layer on top of your existing HR app. A new hr.employee.document model (a proper models.Model, not a free-text note) links each record to its employee via Many2one, carries a document type, issue and expiry dates, issuing authority, document number, the attached scan through ir.attachment, and a state computed with @api.depends on the expiry date that resolves to Valid, Expiring Soon, or Expired against a per-type lead-time threshold. Document types are configurable records — passport, national ID, visa/work permit, labor contract, driving license, professional certification, medical/insurance card, or any custom type you define — each with its own reminder window so a visa can warn 60 days out while a fire-safety certificate warns at 30. A days_to_expiry computed field drives colour-coded kanban and list views, a pivot for reporting by department or document type, and search filters/group-bys for "expiring this month" so managers see exposure at a glance.
The reminder engine is the core of the build. A scheduled action (ir.cron) runs daily, evaluates each active document against its type's threshold, and dispatches notifications — an email built from a QWeb/mail.template to the employee, their manager, and the HR mailbox, plus an in-app Odoo activity (mail.activity) scheduled on the document so the renewal shows up in the responsible user's To-Do list rather than only an inbox. We wire the whole thing into the chatter so every reminder, state change, and re-upload is logged on the record for audit. Access is enforced properly: ir.model.access.csv grants plus record rules so an ordinary employee sees only their own documents while HR officers see the company-wide picture, with multi-company record rules when you run more than one company in the same database. Everything is exposed over the standard XML-RPC/JSON-RPC API so an onboarding portal or an external identity system can create and update documents programmatically. The build targets Odoo 17.0, 18.0 or 19.0 and runs on Community or Enterprise — we confirm your edition during scoping because the notification and activity surfaces differ slightly between them.
Because this is build-to-order, nothing ships until we agree on scope. After a short scoping call we send a fixed quotation and a written spec — document types, reminder windows, who gets notified, report layouts, and any API touchpoints. We then build on a branch, hand you a UAT build on a staging copy of your database, iterate on your feedback, and only deploy to production once you sign off, with a rollback plan in hand. Typical delivery is one working week from confirmed scope depending on how many document types and integrations are in play. Pricing starts from $999 (indicative, single-company base scope); multi-company record rules, additional integrations (onboarding portals, identity providers, or SMS/WhatsApp reminder channels), and data migration of a large existing document backlog increase the quoted scope. The firm number lands in your quotation after the scoping call.
Ce que vous obtenez
- Installable module source code targeting your confirmed Odoo version (17.0 / 18.0 / 19.0) and edition
- Installation and configuration on your environment, including document types and reminder windows set to your policy
- Technical documentation: data model, `ir.cron` schedule, security rules, and API endpoints
- End-user guide plus a live training session for HR and managers
- Post-go-live support window for bug fixes and adjustments to the delivered scope
- UAT build deployed on a staging copy of your database for sign-off before production
- Rollback plan and a clean uninstall path documented before any production deployment
- Git repository handover with tagged release and commit history
Pour qui c'est
HR Operations Manager
Owns the renewal calendar for the whole workforce and is accountable when a document lapses. Needs a single dashboard of what is expiring, automatic reminders that reach the right people, and an audit trail proving notice was given.
Compliance & Risk Officer
Must demonstrate to auditors and regulators that work permits, safety certifications, and licenses are current. Needs enforced record rules, chatter-logged notifications, and reporting by document type and department for evidence.
Odoo System Administrator
Runs the company's Odoo instance and wants a clean, upgrade-safe module — proper models, `ir.model.access.csv`, record rules, and a documented `ir.cron` — rather than brittle automated-action hacks bolted onto `hr.employee`.
Multi-Company HR Lead
Manages HR across several legal entities in one database and needs document visibility scoped correctly per company, with reminder windows and escalation recipients that differ by entity.
Comment Employee Documents Expiry Tracker se compare
| Critère | ÉCOSIRE | Construction personnalisée | Concurrent | Natif Odoo |
|---|---|---|---|---|
| Expiry reminders | Daily `ir.cron` with per-document-type lead times, email + in-app activity | Whatever you build; often a single fixed-window automated action | Basic reminder, usually one global window | None — no concept of document validity |
| Document model | Dedicated `hr.employee.document` model with types, dates, authority, number | Depends on developer; risk of overloading `hr.employee` fields | Own model, but fields fixed to the vendor's design | A few ID fields plus generic file attachments |
| Notification targets | Employee, manager, and HR mailbox, plus scheduled activities | Configurable but built from scratch each time | Typically employee and HR only | None |
| Security & multi-company | Tailored record rules; per-company isolation confirmed in scoping | Only if the developer implements it correctly | Generic access rules, multi-company support varies | Standard HR access, no document-level rules |
| Reporting | Pivot, kanban, and filters by type, department, and expiry window | Built to order; extra cost | Limited list/kanban views | None for documents |
| Fit to your policy | Document types, windows, and recipients configured to your exact rules | Fully bespoke but you own the full build cost | Fit to the module's assumptions, not yours | N/A |
| Support & handover | Support window, training, docs, and git repo handover | Depends on the contractor | Vendor ticket queue, shared codebase | Community forums |
| Odoo version coverage | Built and tested for 17.0 / 18.0 / 19.0, Community or Enterprise | Whatever you target and maintain | Per-version listing, may lag new releases | Ships with your Odoo version |
Foire aux questions sur Employee Documents Expiry Tracker
Is this an existing app I can download and install right now?
No. This is a build-to-order module that ECOSIRE builds, installs, and supports specifically for your Odoo database. There is no instant download — after you request a quotation and confirm scope, we build it and deploy it for you.
How long does delivery take?
Typical delivery is one working week from confirmed scope. The exact timeline depends on how many document types, notification channels, and integrations are in play, and is stated in your quotation after the scoping call.
How does pricing and scoping work?
Pricing starts from $999 as an indicative from-price for a single-company base scope. After a short scoping call we send a fixed, written quotation covering your exact document types, reminder windows, recipients, and any integrations. The firm number is set at that point — no surprises.
Which Odoo versions and editions are supported?
We build for Odoo 17.0, 18.0, and 19.0 on both Community and Enterprise. We confirm your version and edition during scoping because the notification and activity surfaces differ slightly, and we tailor the build accordingly.
What kind of support and updates do I get after go-live?
Every build includes a post-go-live support window for bug fixes and adjustments within the delivered scope. You also receive the git repository so your own team can maintain it, and we can quote a longer support or version-migration retainer separately.
Can employees see other people's documents?
No. We enforce access with `ir.model.access.csv` plus record rules so an ordinary employee sees only their own documents, while HR and compliance roles get the company-wide view. In multi-company databases, record rules keep each company's documents isolated.
Can it push data to or from another system?
Yes. The module is exposed over Odoo's standard XML-RPC/JSON-RPC API, so an onboarding portal, HRIS, or identity provider can create and update documents programmatically. We scope those integration touchpoints during the quotation stage.
Modules associés

Email Client & Unified Inbox – Basic
A build-to-order Odoo module that gives teams one unified inbox across Gmail, Outlook/Microsoft 365, and IMAP mailboxes, with OAuth2 authentication and background synchronization. ECOSIRE scopes, builds, installs, and supports it on your Odoo 17/18/19 environment.

Employee Asset Management
A build-to-order Odoo module that tracks every piece of employee equipment through request, allocation approval, custody, and return, with a complete per-asset and per-employee history. ECOSIRE scopes, builds, installs, and supports it for your team.

Employee Loan & Salary Advance Management
Custom-built Odoo module for staff loans and advances: policies, multi-level approval, and automatic payroll installment deduction.

Employee Probation Management
Custom Odoo HR module to track probation periods, auto-notify managers on completion and convert new hires to permanent status.
Employee Documents Expiry Tracker
A build-to-order Odoo module that stores every employee document with an expiry date and fires automatic reminders before passports, visas, contracts and certifications lapse. ECOSIRE builds, installs, and supports it for your database.
- Dedicated `hr.employee.document` model with `Many2one` link to `hr.employee`, document number, issuing authority, issue and expiry dates, and attached scan via `ir.attachment`
- Configurable document-type records (passport, visa/work permit, national ID, labor contract, license, certification, medical card, plus custom types) each with its own reminder lead-time
- Computed `state` field (Valid / Expiring Soon / Expired) via `@api.depends` on expiry date evaluated against the document type's threshold
- `days_to_expiry` computed field driving colour-coded kanban decorations and list-view highlighting