Skip to content

Email templates

The transactional emails IntelliAuth sends on your tenant's behalf — verification (sign-up), recovery (forgot password), OTP (passwordless sign-in). The platform's defaults work; customising makes them feel like yours.

Branding → Email templates. Three rows:

  • Verification email — sent to verify a new email address. "Confirm your email" / "Welcome".
  • Recovery email — sent when a user requests a password reset. "Reset your password" / "Forgot password".
  • OTP email — sent when a user uses Email OTP or magic link. "Your sign-in code is ..." / "Sign in to <product>".

Click any row to open the editor.

Per template:

  • Subject line — appears in the user's inbox.
  • Pre-header (the snippet text after the subject in inbox previews) — optional but high-impact for "is this real or phishing?"
  • Body — a template with Markdown + a small set of variables.

Variables available:

  • {{ user.name }} — the user's display name (or {{ user.email }} if name is unavailable).
  • {{ user.email }} — the email.
  • {{ link }} — the action link (verify / reset / magic-link).
  • {{ code }} — the one-time code (OTP / magic-link).
  • {{ tenant.name }} — your tenant's name.
  • {{ tenant.support_email }} — your support contact (configured in tenant settings).
  • {{ now }} — the current timestamp at send time.

The platform's default OTP email:

# Your sign-in code
Your sign-in code is **{{ code }}**.
This code expires in 5 minutes. Didn't request this? Ignore this email.

A tenant-customised version:

# Welcome back, {{ user.name }}
Your sign-in code for {{ tenant.name }} is:
# **{{ code }}**
Expires in 5 minutes. If you didn't request this, please [contact support]({{ tenant.support_email }}) — someone may be trying to access your account.
Thanks,
The Cymmetri team

Note the personal touch + safety note. The default is shorter; the customised reads warmer.

The editor's preview pane renders the template with sample values for the variables. Useful for "does my markdown look right?" without committing.

Click Send test email to me. The platform emails the template to YOUR address (the signed-in tenant admin's email) with sample variables.

Check rendering in your actual inbox — Gmail / Outlook / Apple Mail. Each one has slightly different rendering quirks. The preview pane is a close approximation; the real inbox is the truth.

The platform's defaults are intentionally neutral. Your customisation can make them:

  • Warmer — address the user by name, sign off with a person's name.
  • Stricter — explicit "do not share this code with anyone, including IntelliAuth staff".
  • Brief — strip down to just the essentials for users who skim emails.

Pick a voice and apply it across all three templates. Inconsistency reads as "we forgot to update one".

The editor supports per-locale templates. Click the locale picker at the top of the editor to add a template for fr-FR, de-DE, es-ES. The user's locale (on their profile) determines which template they receive.

If no template exists for the user's locale, the platform falls back to en-US (the default).

  • The sender (From) address. Configured in the SMTP integration. See Email SMTP.
  • The plain-text version. The platform auto-generates a plain-text version from your markdown.
  • The HTML wrapper (header / footer / unsubscribe link). The platform's wrapper handles email-client compatibility. Custom HTML is too easy to break in 6 different inboxes; we don't expose it for editing.
  • Don't put the OTP / link in the subject line. Subject lines are NOT secure; some mail systems log them. Keep the code / link in the body.
  • Don't promise SLA the platform doesn't deliver. "Email arrives within 5 seconds" — sometimes it's 30 seconds, sometimes it's 5 minutes (mail provider delays). Be vague: "should arrive shortly".
  • Don't use emoji in the subject of recovery emails. Some spam filters flag emoji-heavy subjects. The platform's default subjects are emoji-free; we recommend keeping yours that way.
  • Don't forget to update the pre-header. Many email clients show the first sentence of the body if the pre-header is empty. Set the pre-header to a one-line summary explicitly.

Each template edit records branding.email_template_updated in audit with the before/after diff.