HR Letters & Certificates for Odoo 19 Community documentation
A guide to the HR letters: the first setup, making and issuing a letter, the register, the templates and their placeholders, and the access rights.
Documents version 1.0.0Updated Oct 23, 2026
Start here
In plain words: "Can I have a certificate saying I work here?" Every HR department types the same letters again and again, in Word, with the wrong date or the wrong job title. HR Letters & Certificates does it in Odoo Community: choose the employee and a template, the letter is filled in with their data, you review it, issue it with a number and a verification code, and print or email it with the signatory and the company stamp. Five templates come ready in English and Arabic.
Tip: The letters are recorded: you always know who got which letter, when and signed by whom.
What you get
| Feature | What it does |
|---|---|
| Templates | A text with placeholders such as the employee's name, job title, department, joining date, salary, the company and the signatory. Five ready-made, in English and in Arabic. |
| Filled in | A letter takes the data of the employee; what is not known stays visible so you can complete it. |
| Issue | An issued letter gets a number (LTR/2026/0001) and a verification code, and is locked. |
| Register | All the letters by employee, template, status and month. |
| Many at once | Generate the same letter for several employees. |
| Print and send | A letter with the company header, the signatory, the stamp and the verification code; by email with the PDF. |
| Salary | Filled in only for HR managers. |
| Languages | A template can be in Arabic: dates and amounts follow its language and the letter is written 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_hr_letters.zip; unzip it to get the foldertaqnix_hr_letters. - 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 HR Letters & Certificates and press Install.
# or from the command line ./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_hr_letters --stop-after-init
First setup
In plain words: In the company (Settings → Companies → HR letters) choose who signs the letters and add the stamp or signature image. They appear on every printed letter. Check the company logo and address too: they make the header.
Make a letter
In plain words: Employees → Letters → Letters register → New. Choose the employee and a template: the text is filled in. A letter written for a purpose (a no-objection certificate, a warning) takes it from the Details field.
| Button | What it does |
|---|---|
| Fill the empty placeholders | After you complete the employee's data or the details, fills the placeholders that were empty. |
| Fill from the template | Replaces the text by the template, filled in again. |
| Issue | Gives the number and the verification code and locks the letter. |
Tip: You can edit the text of a draft freely: it is a normal text editor.
Issue, print, send
In plain words: Issue is refused while a placeholder is still unfilled, so a letter never leaves with
{{id_number}} in it. An issued letter cannot be changed: if there is a mistake, cancel it (its number is not reused) and make another.In plain words: Print gives the letter as a PDF with the company header, the reference and the date, the title, the text, the signatory, the stamp and the verification code. Send by email sends the PDF to the employee's work email.
The register
In plain words: Letters register lists all the letters; search by number, employee or verification code, filter by status or year, group by employee, template or month. On the employee, the Letters button lists the letters they received.
Templates
In plain words: Employees → Letters → Letter templates: edit the five templates or make yours. Write the text and put the placeholders between double braces. Choose a language to write a letter in Arabic: the dates and amounts follow that language.
| Placeholder | Filled with |
|---|---|
| {{employee_name}}, {{job_title}}, {{department}} | The employee's name, job title and department. |
| {{company}}, {{company_address}} | The company's name and address. |
| {{manager}}, {{id_number}}, {{nationality}} | The employee's manager, ID number and nationality. |
| {{join_date}}, {{end_date}} | The start date of the contract, and the end date or the departure date. |
| {{salary}} | The monthly gross salary, for HR managers only. |
| {{today}}, {{number}} | The date of the letter and its number. |
| {{signatory_name}}, {{signatory_title}} | Who signs the letter. |
| {{details}} | The text typed in the Details field of the letter. |
Letters for many employees
In plain words: Employees → Letters → Generate letters: choose the template, the employees, the date and the details. A letter is made for each. Tick Issue the letters to issue at once the ones that are complete; the others stay in draft.
The salary
In plain words: The
{{salary}} placeholder is filled only when the user is an HR manager. For an HR officer it stays unfilled and blocks the issue: a salary certificate is made by someone who is allowed to see the salary.Who can do what
| Who | Can |
|---|---|
| HR officers | Make, edit, issue, print and send letters, edit the templates, see the register. |
| HR managers | Also have the salary filled in and set the signatory and the stamp. |
| Other users | No access. |
Arabic and right to left
Limits
| Limit | Detail |
|---|---|
| Data | The placeholders use the data of the employee form: complete it there (ID number, joining date, job title). |
| Verification | The verification code is searched in the register; there is no public page. |
| Signatures | The stamp is an image; there is no electronic signature. |
For developers
In plain words: Skip this chapter if you only use the module.
letter = env['taqnix.letter'].create({'employee_id': employee.id, 'template_id': env.ref('taqnix_hr_letters.template_employment_en').id})
letter.body # filled in from the employee's data
letter.missing # '{{details}}' if something is still to fill
letter.action_issue() # number and verification code, locked
letter.number, letter.verification_code
letter.action_send() # by email, with the PDFTroubleshooting
| Problem | What to do |
|---|---|
| Issue says something is still to fill | A placeholder has no data: complete the employee form or the details, then Fill the empty placeholders. |
| The salary stays empty | Only an HR manager gets it; or the employee has no wage. |
| The date of joining is empty | The employee has no contract start date. |
| I cannot edit the letter | It is issued: cancel it and make another. |
| The PDF header looks wrong | Complete the company logo and address. |
Updating and removing
Replace the folder with the new version, restart Odoo and run -u taqnix_hr_letters. Your letters and templates are kept.
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.