Mail templates

The Mail templates tab lets you edit the subject and body (HTML) of the seven transactional emails the server sends automatically — without touching any code.

List and editing

The table shows the template name and the message's current subject. Clicking a name opens an editor with Subject and Body fields (raw HTML, a text field). Saving updates both parameters at once.

When each email is sent

TemplateWhen it's sent
DEMO welcome messageAutomatically after a DEMO licence is created through the public, self-service endpoint (POST /api/open/licences) — not when a demo licence is added manually in the panel.
Expiry warningPeriodically, for STANDARD licences, as many days before expiration as configured in the MAIL_EXPIRY_WARNING_DAYS parameter (default 30,7 — two emails).
Expiry warning (DEMO)The same mechanism as above, a content variant for DEMO licences.
Licence transfer confirmationWhen someone tries to activate a licence on a new device while it's already active elsewhere — the link in the email confirms the transfer.
Licence activationWhen a STANDARD licence is created with an email filled in — both manually in Licences and by accepting an order in the shop.
Order confirmationAfter an order is accepted in Orders — along with the pro-forma invoice as a PDF attachment, if one was issued.
Order cancellationAfter an order is cancelled in Orders.

Placeholders

The subject and body are templates that substitute values in place of double curly braces, e.g. `{{productName}}`. Two placeholders are available in all seven templates — they come from Branding:

  • `{{logoUrl}}` — the logo in the email header,
  • `{{accentColor}}` — the colour of the bar under the header and button backgrounds.

The remaining placeholders are specific to each template:

TemplateAdditional placeholders
DEMO welcome message`{{productName}}` `{{companyName}}` `{{companyAddress}}` `{{licenceToken}}` `{{expirationDate}}`
Expiry warning`{{productName}}` `{{companyName}}` `{{companyAddress}}` `{{buyerCompany}}` `{{email}}` `{{daysLeft}}` `{{expirationDate}}`
Expiry warning (DEMO)Same as above, without `{{buyerCompany}}`
Licence transfer confirmation`{{productName}}` `{{companyName}}` `{{companyAddress}}` `{{confirmUrl}}`
Licence activation`{{productName}}` `{{companyName}}` `{{companyAddress}}` `{{licenceKey}}`
Order confirmation`{{orderId}}` `{{orderDate}}` `{{buyerEmail}}` `{{buyerCompany}}` `{{buyerVatId}}` `{{period}}` `{{itemsTable}}` `{{nettoTotal}}` `{{vatRate}}` `{{vatAmount}}` `{{bruttoTotal}}` `{{currency}}` `{{sellerName}}` `{{sellerNip}}` `{{sellerAddress}}` `{{sellerContact}}`
Order cancellation`{{orderId}}` `{{orderDate}}` `{{companyName}}` `{{companyAddress}}`

{{companyName}} / {{companyAddress}} come from Settings (company details), and {{sellerName}} / {{sellerNip}} / {{sellerAddress}} / {{sellerContact}} in the order confirmation are the same company details plus the support email — named differently because that template also acts as a mini-invoice.

Restoring defaults

The Restore defaults button removes your overrides for all seven templates at once and restores the original content built into the server. The action applies to every template simultaneously — you can't restore just one.

Was this page helpful?