Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 34 additions & 8 deletions src/content/_includes/docs/user-guide/white-labeling-mail.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,40 @@ To send emails, a tenant administrator must first configure an <DocLink product=

The following mail templates are available for customization:

| Template | Triggered when |
|----------|---------------|
| **Activation** | A new user is created and receives an activation link |
| **Account activated** | A user successfully activates their account |
| **Account lockout** | A user's account is locked due to too many failed login attempts |
| **Password reset** | A user requests a password reset |
| **Password was reset** | A user's password has been successfully changed |
| **Two-factor authentication verification** | A 2FA code is sent to the user |
| Template | Triggered when | Available placeholders |
|----------|----------------|------------------------|
| **Test email message** | An administrator sends a test email while configuring the outgoing mail server | `${targetEmail}` |
| **Account activation message** | A new user is created and receives an activation link | `${activationLink}`, `${activationLinkTtlInHours}`, `${targetEmail}` |
| **Account activated message** | A user successfully activates their account | `${loginLink}`, `${targetEmail}` |
| **Account lockout message** | A user's account is locked due to too many failed login attempts | `${lockoutAccount}`, `${maxFailedLoginAttempts}`, `${targetEmail}` |
| **Reset password message** | A user requests a password reset | `${passwordResetLink}`, `${passwordResetLinkTtlInHours}`, `${targetEmail}` |
| **Password was reset message** | A user's password has been successfully changed | `${loginLink}`, `${targetEmail}` |
| **2FA verification message** | A 2FA code is sent to the user | `${code}`, `${expirationTimeSeconds}`, `${targetEmail}` |

## Placeholders

The **mail body** is processed as a template, so it supports placeholders written as `${placeholderName}`. The platform substitutes them with actual values before sending the email. The **mail subject** is sent as plain text — placeholders in the subject are not substituted.

Use only the placeholders listed for the given template above.

<Aside type="caution">
A placeholder that the selected template does not provide breaks that template entirely. The message fails to render, so **no email of that type is sent at all** — for any user, and permanently, until you remove the placeholder. The platform does not fall back to the default template and does not leave the placeholder in the text as-is.

For example, adding `${loginLink}` to the **Account activation message** template stops every account activation email, because that template provides only `${activationLink}`, `${activationLinkTtlInHours}` and `${targetEmail}`. The same applies to a typo — `${targetEmai}` breaks the template just as much as an unrelated name.
</Aside>

| Placeholder | Substituted with |
|-------------|------------------|
| `${targetEmail}` | Email address the message is sent to |
| `${activationLink}` | One-time link the user opens to activate their account |
| `${activationLinkTtlInHours}` | Lifetime of the activation link, in hours (rounded up) |
| `${loginLink}` | Link to the platform login page |
| `${lockoutAccount}` | Email address of the account that has been locked out |
| `${maxFailedLoginAttempts}` | Number of failed login attempts that triggers the lockout |
| `${passwordResetLink}` | One-time link the user opens to set a new password |
| `${passwordResetLinkTtlInHours}` | Lifetime of the password reset link, in hours (rounded up) |
| `${code}` | Two-factor authentication verification code |
| `${expirationTimeSeconds}` | Lifetime of the 2FA verification code, in seconds |

<Aside type="tip">
Mail templates support HTML. You can include your company logo, custom colors, and branding to match your white-labeled UI.
Expand Down