Skip to main content

Templates

A template is the design wrapper for your emails — it sets the overall look: header, footer, colours, and layout. Every campaign you send uses a template. The email content you write in the campaign goes inside the template.

:::tip You don't need a custom template to get started If you just want to send clean, readable emails, use the Rich Text editor when writing your campaign and the default template will handle the rest. Custom templates are most useful when you want consistent branding across every email — your logo, colours, and footer.

SpringUp can set up a template for you — email support@springup.software. :::

Viewing and editing templates

Go to Templates in the left sidebar. Listmonk comes with a basic default template already in place. You can edit it or create new ones.

Using a ready-made template

The quickest way to get a professional-looking email is to copy one of the templates below and paste it into a new template in Listmonk. You don't need to understand the code — just copy, paste, and change the parts marked in the comments (like "Your Company Name").

How to add a template

  1. Go to Templates and click New template.
  2. Give it a name (e.g. "Newsletter").
  3. Delete any existing content in the editor and paste in the template code from below.
  4. Change "Your Company Name" to your actual name.
  5. Click Save and preview to see how it looks, then Save.
  6. To use this template for all new campaigns, click the three-dot menu (⋮) next to it and choose Set as default.

Clean newsletter

A simple one-column layout suitable for most newsletters and updates.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
<body style="margin:0;padding:0;background:#f5f5f5;font-family:Arial,sans-serif;">
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td align="center" style="padding:32px 16px;">
<table width="600" cellpadding="0" cellspacing="0" style="background:#ffffff;border-radius:8px;overflow:hidden;">

<!-- Header — change the background colour and company name here -->
<tr>
<td style="background:#0f2a43;padding:24px 32px;text-align:center;">
<span style="color:#ffffff;font-size:22px;font-weight:bold;">Your Company Name</span>
</td>
</tr>

<!-- Your email content goes here automatically -->
<tr>
<td style="padding:32px;">
{{ template "content" . }}
</td>
</tr>

<!-- Footer -->
<tr>
<td style="background:#f0f0f0;padding:20px 32px;text-align:center;font-size:12px;color:#888888;">
You're receiving this because you signed up for updates.<br />
<a href="{{ .UnsubscribeURL }}" style="color:#888888;">Unsubscribe</a>
</td>
</tr>

</table>
</td>
</tr>
</table>
</body>
</html>

Simple announcement

A minimal design for short announcements, product updates, or event invitations.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
<body style="margin:0;padding:0;background:#ffffff;font-family:Arial,sans-serif;">
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td align="center" style="padding:40px 16px;">
<table width="560" cellpadding="0" cellspacing="0">

<!-- Header — change the company name and the border colour (#2cb1bc) -->
<tr>
<td style="padding-bottom:24px;border-bottom:2px solid #2cb1bc;">
<span style="font-size:18px;font-weight:bold;color:#0f2a43;">Your Company Name</span>
</td>
</tr>

<!-- Your email content goes here automatically -->
<tr>
<td style="padding:32px 0;font-size:16px;line-height:1.6;color:#333333;">
{{ template "content" . }}
</td>
</tr>

<!-- Footer -->
<tr>
<td style="padding-top:24px;border-top:1px solid #eeeeee;font-size:12px;color:#aaaaaa;text-align:center;">
<a href="{{ .UnsubscribeURL }}" style="color:#aaaaaa;">Unsubscribe</a>
</td>
</tr>

</table>
</td>
</tr>
</table>
</body>
</html>

Personalising emails with placeholders

Inside your email body (and inside templates), you can include personal details that Listmonk fills in for each recipient automatically. These placeholders look like {{ .Something }}.

Common examples:

Type thisWhat gets sent
{{ .Subscriber.FirstName }}The person's first name
{{ .Subscriber.Name }}Their full name
{{ .Subscriber.Email }}Their email address
{{ .Subscriber.Attribs.company }}A custom field (replace company with your field name)
{{ .UnsubscribeURL }}The unsubscribe link

Safe fallback if a name might be missing:

Hello {{ .Subscriber.FirstName | default "there" }},

This sends "Hello there," if no name is stored, and "Hello Jane," if it is.

Show different content to different people:

{{ if .Subscriber.Attribs.company }}
Hi {{ .Subscriber.Attribs.company }} team,
{{ else }}
Hi there,
{{ end }}

Full variable reference

VariableOutput
{{ .Subscriber.UUID }}Subscriber's unique ID
{{ .Subscriber.Email }}Email address
{{ .Subscriber.Name }}Full name
{{ .Subscriber.FirstName }}First word of the name field
{{ .Subscriber.LastName }}Remaining words of the name field
{{ .Subscriber.Attribs.your_field }}Any custom attribute — replace your_field with the key
{{ .Campaign.Name }}Campaign's internal name
{{ .Campaign.Subject }}Email subject line
{{ .UnsubscribeURL }}Unsubscribe link URL
{{ .OptinURL }}Double opt-in confirmation URL
{{ .MessageURL }}Link to view the email in a browser