Modèles d’emails

Nous savons tous qu’il est essentiel d’écrire de bons emails pour obtenir un taux de réponse élevé. Ceci dit, vous ne voulez surement pas devoir réécrire la même structure à chaque fois, non ? C’est là qu’interviennent les modèles d’emails. Si vous ne devez pas réécrire l’intégralité de la structure de l’email encore et encore, vous gagnez du temps pour vous concentrer sur le contenu. Plusieurs modèles vous permettent également de transmettre le bon message au bon public, améliorant ainsi leur expérience globale avec l’entreprise.

Activez-le et comprenez quelques concepts

The Developer mode must be activated). Then, go to Settings ‣ Technical ‣ Templates. A view of the existing templates is shown.

Danger

It is highly recommended not to change the content in existing templates unless the user has prior knowledge about placeholders.

Pour en ajouter un nouveau, cliquez sur Créer et choisissez le type de document avec lequel ce modèle est utilisé. Dans l’exemple ci-dessous, le modèle serait envoyé aux candidats.

New email template form in Odoo
Sous Configuration des emails, des champs tels que De, À (emails), À (partenaires), nécessitent des espaces réservés. Si le champ De n’est pas défini, la valeur par défaut est l’alias de l’adresse email de l’auteur, s’il est configuré, ou l’adresse email.
Sous Paramètres avancés, si un Serveur de courrier sortant n’est pas défini, celui avec la priorité la plus élevée est utilisé.
L’option Suppression automatique supprime définitivement les emails après leur envoi, économisant ainsi de l’espace dans votre base de données.

Rédiger du contenu, y compris des expressions de placeholder

A placeholder is a string of characters that temporarily takes the place of the final data. With email templates, for example, placeholders let you put dynamic content in order to personalize the email for the recipient.

A common use is to use it to indicate the name of the recipient in the newsletter so that each recipient gets a personalized newsletter.

Placeholders and more specifically fields that are available for a template will depend on the template you modify. One way to see the fields that are available is to check the Dynamic Placeholder Generator tab.

  1. Sous l’onglet Générateur de placeholder dynamique, recherchez le Champ que vous souhaitez utiliser.

    View of the dynamic placeholder generator tab under a new template in Odoo
  2. Next, copy the Placeholder Expression and paste it in the Body of the email, under the Content tab, using - essentially - the Code View.

    View of the body code view under the content tab in Odoo
  3. Deactivate the Code View option by simply clicking on it again, and easily design the message. Click on Preview to check how the email looks before sending it.

    View of the content with the standard body view in Odoo

Using functions with placeholders

Functions can be used along with your placeholders in order to format the data as you’d like within your mail templates, for example, the time format can be changed using a function such as format_time.

In order to use functions, you have to know the available fields to format. To know that, you have to check the fields (the properties) of the object that are available to be used.

Checking the fields (properties) available on the object

To check the fields available, click on the link next to Applies to. For the example we use the Portal: new user template, so we click on Portal user Config.

Template is capable of using the field of the defined Models.

By clicking on the link, you are redirected to the model, in this case the Portal user Config model that lists all the fields that you can use within your mail template.

Existing fields of a model

As a side note, you can also see the fields that are available by accessing the dynamic placeholder generator, as described previously.

See below an example with the email field that was added in the template and its result as well as some other placeholders already present by default.

Adding a field on a template and see the result

Using fields with functions

Now that you know the fields that can be used, you can use one of them with a function. For this example, we add the creation date, create_date field to the body of the template ‘Portal: new user’ along with the format_date function so that the user knows when he was invited.

Example of the format_date on a create_date field

As you can see we use the placeholder ${} with the format_date function which uses as a parameter the field create_date available on the current object, this gives the following line of code ${format_date(object.create_date)}.

Avertissement

It’s really important to check that the preview is working, if it’s broken your template might appear totally blank when previewing it. We also recommend not changing the content in existing templates unless you have prior knowledge. We highly recommend duplicating the template and apply your changes within this one.

Find below the result of the e-mail received in the recipient’s mailbox with the modifications applied.

Rendering of the format_date function on a create_date field

Still by using the format_date function, you have the possibility to adapt the format of the date just in a specific email by specifying the formatting of the date as a second parameter. If not specified, the format used by default is the one defined in the settings of the language. More information on how to access these parameters can be found here.

In order to adapt the date format, the piece of code used in the above example ${format_date(object.create_date)} becomes ${format_date(object.create_date, date_format='dd -- MM -- YYYY')} here dd is the day, MM the month and YYYY the year.

Here is the result once the function is adapted in the template.

Adapted rendering of the format_date
Functions used by default within email templates

To format your data, many functions can be used, here are some examples.

Note

This list of functions is not exhaustive, meaning that all functions that are available aren’t listed in the below list, for more functions, we invite you to check the babel documentation, last but not least, modifications on the templates are considered as customization and isn’t covered by our support.

For the following examples, we will introduce mostly some date functions. By default, the format of the date used is the one defined in the settings of the language.

These settings can only be accessed when the developer mode is enabled. Once developer is enabled go to Settings ‣ Translations ‣ Languages and click on one of the languages to see all the settings such as the time format or date format used by the language.

  • format_date() - formats the date (without the time).

    Can be found on the template Purchase Order: Send PO:

    Code of the format_date on existing template Purchase

    The result will look like this:

    Rendering of the format_date on existing template Purchase
  • format_datetime() - formats the datetime, defining a specific timezone, in this case Central European Time (CET).

    Can be found on the template Event: Registration.

    Code of the format_datetime on existing template Event

    The result will look like this:

    Rendering of the format_datetime on existing template Event
  • format_time() - Similar to the format_datetime function except It’s used only for the time, not a date.

  • format_amount() - Formats a number, an amount to display the currency depending on the display setting that has been defined on the currency (the debug mode must be activated to see this feature) Accounting ‣ Configuration ‣ Currencies (before or after the amount depending on the convention).

    Code of the format_amount on existing template Sales Order

    Which will look like this:

    Rendering of the format_amount on existing template Sales Order

Définir une réponse par défaut à sur votre modèle d’email

Bien que le champ reply to soit disponible dans les modèles d’email, ce champ n’est utilisé que pour le mode d’envoi en masse (c’est-à-dire lors de l’envoi de modèles sur ce que nous appelons l’envoi en masse). Vous pouvez envoyer des emails en masse dans presque toutes les applications qui ont une vue de liste. Sélectionnez les enregistrements que vous voulez et cliquez sur le bouton d’action. Si vous avez l’option d’envoyer un email, vous verrez un compositeur de courrier avec des valeurs possibles à définir :

Compositeurs en mode d'envoi en masse après avoir sélectionné de multiples devis.

Vous pouvez également les définir par défaut sur le modèle :

Champ reply-to sur un modèle.

Pour cette raison, définir une valeur dans ce champ est inutile car la valeur définie sera totalement ignorée. La valeur reply-to par défaut est l’adresse email catchall par défaut pour assurer une communication entre votre client et votre base de données Odoo. Pour plus d’informations sur le fonctionnement du catchall, veuillez consulter la documentation: comment gérer les messages entrants.

Emails transactionnels et URL correspondantes pour chaque entreprise

Lors de l’utilisation d’Odoo, plusieurs événements déclenchent l’envoi d’emails automatisés. Ces emails sont appelés emails transactionnels et contiennent parfois des liens pointant vers votre base de données Odoo.

Par défaut, les liens générés par la base de données utilisent la clé dynamique web.base.url définie dans les paramètres système. Plus d’informations à ce sujet paramètres.

Si l’application de Site Web n’est pas installée, la clé web.base.url sera toujours le paramètre par défaut utilisé pour générer tous les liens.

Il est important de savoir que cette clé ne peut avoir qu’une seule valeur, ce qui signifie que dans un environnement de base de données multi-sites/entreprises, même si vous avez un nom de domaine spécifique pour chaque site, les liens générés pour partager un document ou au sein d’un email transactionnel peuvent rester les mêmes, quel que soit le Site Web/la société liés à l’envoi de l’email/du document.

Ce n’est pas toujours le cas car certaines applications Odoo ont un lien établi dans la base de données avec l’application du Site Web, ce qui signifie que dans ce cas, si un domaine spécifique est défini pour les sites web, l’URL générée dans le modèle d’email utilisera le domaine défini sur le site web correspondant de la société.

Prudence

Un document partagé à l’aide de l’application Documents utilisera toujours la clé web.base.url, car le document partagé n’est associé à aucun Site Web particulier. Cela signifie que l’URL sera toujours la même (la valeur clé web.base.url), quelle que soit l’entreprise à partir de laquelle elle est partagée, c’est une limitation connue !

En revanche, les commandes passées par un client sur l’un de vos sites eCommerce Odoo ont un lien établi avec le site depuis lequel la commande a été passée. Par conséquent, l’email envoyé pour les commandes client utilise le nom de domaine défini pour le Site Web correspondant pour générer les liens.

Pour plus d’informations sur la configuration de vos domaines, nous vous invitons à consulter notre documentation sur les noms de domaine.

Mise à jour des traductions dans les modèles d’email

Les modèles d’emails sont automatiquement traduits. Changer les traductions ne devrait pas être nécessaire. Cependant, si pour une raison spécifique vous souhaitez modifier certaines traductions, cela peut être fait.

Comme toute modification dans le code, gardez à l’esprit que des modifications qui ne sont pas faites correctement (par exemple des modifications conduisant à une mauvaise syntaxe) peuvent casser le modèle, par conséquent, le modèle apparaîtra vide.

Pour modifier vos traductions, suivez ces étapes à partir du modèle.

  1. Cliquez sur le bouton modifier, puis sur le bouton langue

    Éditer la langue d'un modèle
  2. Une fenêtre contextuelle avec les différentes langues installées sur la base de données s’affichera. À partir de là, l’édition des traductions sera possible. N’oubliez pas de cliquer sur le bouton Enregistrer pour conserver vos modifications.

    Traduction du corps du modèle de l'application dans les différentes langues installées.