| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Employees (hr) |
| Community Apps Dependencies | Show |
| Lines of code | 2551 |
| Technical Name |
wt_hrms_letters |
| License | OPL-1 |
| Website | https://way4tech.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Employees (hr) |
| Community Apps Dependencies | Show |
| Lines of code | 2551 |
| Technical Name |
wt_hrms_letters |
| License | OPL-1 |
| Website | https://way4tech.com |
WT HRMS Letters — Offer, Experience, NOC, Warning & More
A reusable HR-letter generator with rich-HTML templates and variable substitution. Eleven letter types out of the box, employee-data merge fields, and a clean Draft → Generated → Sent workflow with full chatter audit.
HR letters · offer letter · experience letter · salary certificate · NOC · warning letter · termination letter · promotion letter · transfer letter · increment letter · HR document templates · Odoo 19 · Odoo 18 · community edition · enterprise alternative · open hrms · HR software · HR automation · way4tech
Live Preview
A real screenshot from a working WT HRMS install on Odoo 19.
The Problem This Solves
Most HR teams spend hours every week copy-pasting offer/experience/salary letters in Word, trying not to break formatting and not to leak last week's salary into next week's letter.
Word-doc copy-paste hell
One typo and the wrong name, wage or join date is in a legally-binding letter. Templates fork into a dozen versions across the team's drives.
No history of who got what
Auditors and HR managers can't easily answer "show me every salary certificate issued to John in 2024." Files live in inboxes.
No central template library
Every business unit invents its own offer-letter wording. Branding, tone and clauses drift over time without anyone noticing.
The Solution — Templates + Merge Fields, Inside Odoo
Build a template once with rich HTML and {{placeholders}}; generate a personalised letter for any employee in seconds.
- ✓ 11 built-in letter types — Offer, Appointment, Experience, Salary Certificate, NOC, Warning, Termination, Promotion, Transfer, Increment, Other
- ✓ Rich-HTML template editor — same WYSIWYG used elsewhere in Odoo
- ✓ Merge placeholders —
{{employee.name}},{{employee.job_title}},{{employee.department_id.name}},{{company.name}},{{date}},{{wage}} - ✓ Wage merged with thousands separator (formatted via
{wage:,.2f}) - ✓ Pulls live wage from the employee's current contract version (
current_version_id) - ✓ Sequenced letter numbers —
LTR/YYYY/0001 - ✓ Three-state workflow — Draft → Generated → Sent
- ✓ Edit after generation — tweak the merged HTML before marking sent
- ✓ Department auto-fills from the chosen employee
- ✓ HTML & markup-safe escaping — never breaks layout when an employee name has angle brackets
- ✓ mail.thread chatter on every letter for full audit history
- ✓ Multi-company aware — templates and letters per company
- ✓ Active flag on templates to retire deprecated wording
Step-by-Step User Guide
Install the module
Install WT HRMS Letters from Apps. wt_hrms_core installs automatically.
Build your template library
Go to WT HRMS → Configuration → Letter Templates. Create one template per letter type you need (Offer, Experience, Salary Certificate, etc.). In the body, drop in placeholders such as {{employee.name}}, {{employee.job_title}}, {{wage}}, {{date}}, {{company.name}} — the help text on the field lists every supported placeholder.
Create a letter for an employee
Open WT HRMS → Letters, click New. Pick the employee, pick the template — Letter Type auto-fills from the template — set the date (defaults to today).
Generate the letter
Click Generate Letter. The module reads the template body, substitutes every placeholder with live data from the chosen employee (including current contract wage, with thousands separator), and writes the merged HTML into the Letter Content field. State moves to Generated.
Review & tweak
The merged HTML is fully editable on the form, so you can add a custom paragraph or signature block before delivery without changing the master template.
Mark Sent
After delivering the letter (print, email or upload), click Mark Sent. The state moves to Sent to Employee and the chatter records who sent it and when.
Marquee Features
11 Letter Types
Offer, Appointment, Experience, Salary Certificate, NOC, Warning, Termination, Promotion, Transfer, Increment and a free-form Other — covering every common HR letter.
Rich-HTML Templates
Build templates in the standard Odoo WYSIWYG editor with images, headings, tables and your full company branding.
Live Wage Pull
Reads from the employee's current hr.version record so salary certificates always reflect the latest contract.
Auto-Numbered Letters
Each letter gets LTR/YYYY/0001 so HR has a stable reference for audits, courier dispatch and employee enquiries.
Safe HTML Escape
Merged values pass through markupsafe.escape — an employee name with & or < characters can never break your template's HTML.
Three-State Workflow
Draft → Generated → Sent — statusbar reflects exactly where each letter is in its lifecycle.
Editable After Merge
Generated body is editable so HR can add personalised paragraphs before sending without touching the master template.
Chatter Audit
Every letter has full mail.thread chatter — you can attach the signed PDF, log notes, and follow it.
HR Group ACL
Templates & letters writable by the HR User group, manageable by HR Manager. No separate users group needed.
Compatibility & Requirements
| Odoo Edition | Community & Enterprise |
| Odoo Version | 19.0 |
| Module Dependencies | wt_hrms_core — provides the dashboard, employee extensions, and contract-version model used to read the live wage |
| Python Packages | markupsafe (already pinned by Odoo) |
| External Services | None — runs entirely inside your Odoo instance |
| Security Groups Used | hr.group_hr_user (read), hr.group_hr_manager (full write) |
About Waqas Riasat & Way4Tech
We build Odoo modules that fix real business pain — not nice-to-have features. The WT HRMS suite is a Community-only HR + Payroll replacement that we use ourselves and ship with hand-tested upgrade paths.
way4tech.com · info@way4tech.com · WhatsApp +92 315 411 4748
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module