Guides
Email Templates
Generate and customize built-in email templates with template variables and usage references
Use Manage → Templates to edit Kener’s built-in general email templates.
Quick setup
- Open Manage → Templates.
- Select a template from the dropdown.
- Edit Subject and HTML Body.
- Click Update Template.
Important
You need an admin or editor role to update templates.
Available templates
Kener currently includes these templates:
| Template ID | Purpose |
|---|---|
invite_user |
Team member invitation email |
verify_email |
Email verification link email |
forgot_password |
Password reset link email |
subscription_account_code |
OTP code for subscription account verification |
subscription_update |
Incident/maintenance update email for subscribers |
How customization works
Each template has:
template_subjecttemplate_html_bodytemplate_text_body(used as plain-text body when provided)
Kener renders subject and HTML body with Mustache variables.
Note
If template_text_body is empty, Kener falls back to generating plain-text content from rendered HTML.
Common variables
All templates can use site-level variables:
| Variable |
|---|
{{site_name}} |
{{site_url}} |
{{logo}} |
{{favicon}} |
{{tagline}} |
Variables by template
invite_user
| Variable | Description |
|---|---|
{{site_name}}, {{site_url}}, {{logo}}, {{favicon}}, {{tagline}} |
Site branding/context |
{{invitation_link}} |
Invitation acceptance URL |
verify_email
| Variable | Description |
|---|---|
{{site_name}}, {{site_url}}, {{logo}}, {{favicon}}, {{tagline}} |
Site branding/context |
{{verification_link}} |
Email verification URL |
forgot_password
| Variable | Description |
|---|---|
{{site_name}}, {{site_url}}, {{logo}}, {{favicon}}, {{tagline}} |
Site branding/context |
{{reset_link}} |
Password reset URL |
subscription_account_code
| Variable | Description |
|---|---|
{{site_name}}, {{site_url}}, {{logo}}, {{favicon}}, {{tagline}} |
Site branding/context |
{{email_code}} |
OTP code sent to subscriber |
subscription_update
| Variable | Description |
|---|---|
{{site_name}}, {{site_url}}, {{logo}}, {{favicon}}, {{tagline}} |
Site branding/context |
{{title}} |
Event title |
{{update_subject}} |
Event subject line (also used by default subject template) |
{{update_text}} |
Main update content |
{{cta_text}} |
Call-to-action text |
{{cta_url}} |
Call-to-action URL |
{{update_id}} |
Event/update identifier |
{{event_type}} |
Event category |
{{update_state}} |
Incident updates: the comment's state, e.g. INVESTIGATING |
{{#is_investigating}}, {{#is_identified}}, {{#is_monitoring}}, {{#is_resolved}} |
Incident updates: true for the comment's state |
{{incident_impact}} |
Incident updates: the worst impact among the incident's monitors that are not hidden, DOWN, DEGRADED or empty |
{{#is_down}}, {{#is_degraded}} |
Incident updates: true for that worst impact |
{{#is_maintenance}} |
True for maintenance mails |
The flags let a template change its look by what the mail is about, which Mustache cannot do by comparing strings. For example, a banner only on resolved incidents:
{{#is_resolved}}
<p style="background:#16a34a;color:#fff;padding:8px">Resolved</p>
{{/is_resolved}}
Best practices
- Keep subject lines short and user-facing.
- Prefer editing wording and branding, not template structure.
- Keep Mustache variables exactly as documented.
- Test critical flows after updates (invite, verify, reset, subscription update).
Troubleshooting
- Variables render blank: confirm variable name spelling and braces.
- Emails fail after edits: verify template still contains required flow links (
invitation_link,verification_link,reset_link). - Defaults did not come back after restart: seeds only insert missing templates; existing customized templates are not overwritten.