odoo-mail-template

Automate Odoo mail.template design and rendering across v17, v18, and v19.

1|1|Updated Apr 12, 2026
One-click install
npx skills add https://github.com/halim-23/odoo-dev-plugin --skill odoo-mail-template
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: odoo-mail-template
Source: https://github.com/halim-23/odoo-dev-plugin/tree/main/skills/odoo-mail-template
Command: npx skills add https://github.com/halim-23/odoo-dev-plugin --skill odoo-mail-template

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Odoo mail template development across v17, v18, and v19 can be complex due to version-specific fields, layout logic, and rendering changes, making templates brittle and hard to maintain.

Core Features & Use Cases

  • Supports body_html rendering with QWeb and inline templates, dynamic placeholders, and security checks; handles v17/v18/v19 differences in fields like lang, partner_to, and use_default_to.
  • Documents common XML data patterns, mail layout templates, and the mail.template lifecycle from creation to sending via send_mail and generate_email; suitable for CE/EE deployments, automated emails, and canned responses in chatter.
  • Integrates with mail.render.mixin for rendering across models, with version-aware hooks and post-processing steps to ensure safe, correct output.

Quick Start

Create a mail.template in your module and test rendering by invoking send_mail on a sample record to verify the output.

Frequently Asked Questions about odoo-mail-template

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create Odoo mail templates that work across v17, v18, and v19?

Creating Odoo mail templates across versions requires applying version-specific XML data patterns and handling differences in fields like lang, partner_to, and use_default_to to ensure consistent email rendering.

What is the best way to render dynamic placeholders in Odoo mail.template securely?

Rendering dynamic placeholders in Odoo mail.template securely requires applying security checks during the body_html rendering process to prevent injection vulnerabilities and ensure safe email output.

How does QWeb rendering work with Odoo mail templates?

QWeb rendering in Odoo mail templates works by integrating with the mail.render.mixin to process body_html and inline templates across different models, applying version-aware hooks and post-processing steps for correct output.

Can I use the same mail.template XML data patterns for both Odoo Community and Enterprise editions?

Yes, you can use the same mail.template XML data patterns for both Odoo Community and Enterprise editions, as the template lifecycle from creation to sending via send_mail and generate_email applies to both deployments.

Why are my Odoo automated emails showing broken layouts in different versions?

Broken layouts in Odoo automated emails often occur due to version-specific changes in mail layout templates and rendering logic, requiring version-aware hooks and proper QWeb body_html structuring to fix.