Use of Email template with multitenant app

How can we use email templates in a multitenant environment where I don’t want access to one tenant’s email template by others? I tried to find it in the documentation but didn’t come across any.

EmailTemplates add-on doesn’t support multitenancy out of the box. You may try to extend required entities from the add-on and make them work with multi-tenancy by adding required tenant columns.

Hi Maxim
Thanks for the info. It will be appreciated if you please list the Entities relevant for getting the email template working in a multitenant environment.

You may find a list of entities used by Email templates add-on in this package.

Thank you Maxim.

I have currently extended

@Entity(name = "erp$ExtEmailTemplate")
public class ExtEmailTemplate extends JsonEmailTemplate {
    private static final long serialVersionUID = -1482560931655145667L;

    @Column(name = "TENANT_ID")
    protected String tenantId;

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;

    public String getTenantId() {
        return tenantId;

I guess this will work, thanks for your comments or suggestions if any.

I noticed that JsonEmailTemplate is extended from EmailTemplate entity, therefore, I might not need to extend EmailTemplate, is that right or still need to extend?

My second point is, EmailTemplatesAPI is not found in the new version of Add-on that I used in the previous version, is it removed? If so, which API is replacing that to send email using email template?

This is what I am trying to migrate to JMIX as follows:

                    .setBodyParameter("linkParameter", linkString)
                    .setBodyParameter("userFirstName", actor.getFirstName())
                    //.setBodyParameter("lastName", actor.getLastName())

It seems that you need to extend JsonEmailTemplate and ReportEmailTemplate. Also pay attention to the @ReplaceEntity annotation.

You should use the EmailTemplates interface, it is described in the documentation.

Thank you.

Ok, I will choose “replace parent” when I’m extending those Entities to my ones in the studio.