mail_composer_template_selector
The small three dot Templates button in Odoo's email composer footer is the mail_composer_template_selector widget. It loads your templates first, shared ones second, and quietly hides its management entries when a context key says so.
August 24, 2026Updated August 24, 20264 min read
| Technical name | mail_composer_template_selector |
|---|---|
| Field types | many2one (mail.template; the descriptor declares no supportedTypes) |
| Views | form (email composer and send wizards, rendered in the footer) |
| Module | mail |
| Used in core | 3 occurrences across 3 modules: the account move send wizard, the mail composer and the recruitment interviewer wizard |
| Versions | Odoo 20.0, Odoo 19.0, Odoo 18.0 |
| No-code setup | No. Applied via the widget attribute in view XML |
| Alternatives | many2one, selection, html_mail |
What the Template selector does
What this means for your team
Working examples
Visibility, saving and the Search More path
Version compatibility
| Version | Status | Notes |
|---|---|---|
| Odoo 20.0 | In development | Not released. Props system migration only on the development branch so far; see below. |
| Odoo 19.0 | Verified | Verified against the shipped source. 80 template cap, Search More dialog, management entries removable via context. |
| Odoo 18.0 | Partial / changed | Introduced here. Cap of 7 templates, in dropdown delete and overwrite icons, no Search More. |
| Odoo 17.0 | Not available | Does not exist. The composer used a plain many2one template field. |
| Odoo 16.0 | Not available | Does not exist. |
Introduced in Odoo 18. Flows migrated to 19 lose the in dropdown delete and overwrite icons; template maintenance moves to Manage Templates.
What is changing in Odoo 20
Common problems and fixes
| Symptom | Cause and fix |
|---|---|
| The template button does not appear in the composer | The composer record's can_edit_body is false; the whole dropdown is conditioned on it. Check why the composition mode forbids body editing; the widget cannot be forced visible without it. |
| A template exists but is missing from the dropdown | Its model does not match the composer's render_model, or it sits beyond the 80 result cap. Fix the template's Applies to model, or use the Search More entry which searches the full table. |
| Save as Template and Manage Templates are missing | The action or field passed hide_mail_template_management_options in the context. Remove the context key if users should manage templates from this flow. |
| Save as Template does nothing | The composer record failed to save; the widget saves the record before opening the template creation wizard. Fill the required composer fields first; the save failure blocks the wizard silently. |
Template selector vs the alternatives
| Widget | Best for | Key difference |
|---|---|---|
mail_composer_template_selector | Picking and saving mail templates inside the composer footer | Two pass own first fetch, save then wizard flow, context removable management entries |
| many2one | A plain template field on custom wizards | Standard autocomplete with quick create, no composer integration |
| selection | A small fixed choice of templates | Static selection, no search dialog and no template management |
| html_mail | The email body the chosen template fills | Edits the rendered content rather than picking the source template |
Frequently asked questions
How does Odoo decide which templates the composer dropdown shows?+
How do I hide Save as Template from users?+
Where did the delete template button in the dropdown go?+
Does the widget render the mail.template body?+
Email flows that should be one click, but are not?
Send wizards, locked down template governance and per model template libraries are all wiring around this little widget. We build custom composer flows, enforce template policies with context keys and access rights, and clean up template chaos across departments.
Streamline your Odoo emails