Document templates¶
Document templates control how automatically generated content looks and sounds: invoices, system emails, certificates, and reminders for mandatory assignments. Instead of leaving it at the built-in texts, you can design them yourself — with your wording, your logo, and your corporate design.
Every company maintains its own templates. If you don't set anything up, the system sends its built-in default text — with two exceptions: the welcome email and the course reminder only go out with a template of your own. Which purposes there are and what happens without a template of your own is shown in the overview under Assigning a template to a purpose; what the default text looks like, you can see under Viewing the default text.
Who is allowed to edit templates?
You can create, edit and assign templates from Content Manager upward. Company Admins have these rights automatically.
What templates are good for¶
Workflow (e.g. assign a mandatory assignment)
↓
Which template is assigned to this purpose?
↓ own template ↓ none of your own
Your template is the default text is sent
used (welcome email and
course reminder: no email)
A template has a type (the broad category) and is assigned to a purpose (the concrete use case). Only through the purpose does the system know which template to load in a particular flow.
| Type | What for |
|---|---|
| Invoice | Layout and text of invoice PDFs |
| System emails around orders, course access, and assignments | |
| Certificate | Layout and text of the completion certificates |
| Assignment reminder | Reminder emails about due mandatory assignments |
Background on certificates
How the awarding of certificates is controlled per course (course field "Certificate for course completion", the "passed"/"participated" variants) and which placeholders certificates know is described under Certificates and certificate templates.
Viewing existing templates¶
- On the learning platform, open the menu Administration → Document templates (tab Templates).
- You see all templates of your company as a tile list with a type filter and a small preview.
- Clicking a tile opens the editor with a preview and editing options.
Per tile you can:
- Edit — opens the editor
- Duplicate — creates a copy as a starting point for a new variant
- Delete

Copy first, then adjust
Instead of building every template from scratch, it's worth duplicating one of your existing ones and adjusting it — logo, colors, and layout are already set. The tile list holds your company's templates; the system's built-in default texts aren't included there. You can look at them with the View default text button on the Assignments tab (more on this).
Creating a new template¶
- Click New template.
- Fill in the fields:
- Name — e.g. "Welcome email 2026"
- Type — invoice, email, certificate, or assignment reminder
- Slug (short identifier) — has to be unique within your company and the same type
- optionally a description
- Write the content in the editor — see the next sections.
- Check the preview (HTML and/or PDF).
- Save.
The editor¶
The editor is a WYSIWYG editor ("what you see is what you get") — you format directly, without HTML knowledge:
- Text formatting: bold, italic, underline
- Headings, lists, alignment
- Images, links, dividers, tables
- Insert placeholders: via a dropdown you choose categorized placeholders (company, customer, order, course, document). The chosen placeholder appears as a colored pill in the text and is applied correctly and automatically on saving.
- Invoice building blocks (for invoice templates only): ready-made blocks for the invoice header, customer block, line-item table, totals block, and footer.
- Subject (only for email and assignment reminder): the subject line of the email; placeholders are possible. If the field stays empty, the built-in subject applies. For the order confirmation, the built-in subject always applies for now.
- HTML mode for anyone who prefers to edit the source code directly.

Using placeholders¶
Placeholders are gaps that get filled with real data when sending — e.g. the person's name or the course name. The easiest way to insert them is via the dropdown.
Mind the spelling
Templates of the type Assignment reminder use placeholders in camelCase (e.g. firstName, courseUrl). All other types use snake_case with underscores (e.g. first_name, course_url). The safest way is to insert placeholders via the dropdown so the spelling is right.
A selection of the most important placeholders per type:
| Type | Example placeholders |
|---|---|
| Invoice | company_name, company_logo, invoice_number, invoice_date, customer_name, total, currency |
first_name (first name, automatically derived from the full name), user_name, course_name, course_url (direct link to the course), company_name, company_logo, login_url, order_status (only for the order status update: the status as a word — "bezahlt" (paid), "abgeschlossen" (completed), "storniert" (cancelled), or "erstattet" (refunded)), assigned_by_name (the assigning person; in the welcome email the inviting person, empty on self-registration) |
|
| Certificate | user_name, course_name, completion_date, score_percent, completion_type (completion variant; the value is always the German word „bestanden“ or „teilgenommen“), qr_code (QR code for verification), company_name, company_logo |
| Assignment reminder | firstName (first name), studentName, courseName, dueDate, daysRemaining, courseUrl (direct link to the course), companyName, assignedByName (assigning person) |
The full selection per template is shown by the placeholder dropdown in the editor.
Date placeholders are automatically displayed as DD.MM.YYYY. If you misspell a placeholder (i.e. use one the system doesn't know), it's highlighted in red in the preview — so you spot typos immediately.
Using the preview¶
Before a template goes live, always check it in the preview. The mode depends on the template type:
- Certificate templates show a PDF preview (A4 landscape), embedded in the preview dialog. The certificate that is issued later looks exactly like this preview; the QR code in it already has its real size.
- All other types (invoice, email, assignment reminder) show an HTML preview with sample data (e.g. "Muster GmbH", "Max Mustermann").
What to look out for:
- Are all placeholders replaced correctly? (No more red markings.)
- Is the layout right — does no text run over the edge?
- Is the logo well placed and sharp?
- If something isn't right: adjust, preview again, until it fits.
Versions — bringing back earlier states¶
Every save creates a new version. When saving, the editor asks for a change comment — a short phrase is enough ("swapped the logo"); it later appears in the list and saves you from guessing which version was which. It isn't required.
- In the editor, click the clock icon Version history at the top right.
- The list shows the version number, date, time, and the change comment, newest version first.
- Clicking an entry brings the text from that time back into the editor. Nothing is saved yet — the Unsaved marker shows that the old state currently only lives in the editor.
- If it fits, click Save. This in turn creates a new version, so the state in between isn't lost.

Only the content is brought back
Restoring brings back the text from the editor — the template's name and subject stay as they currently are. If you also want to roll back the subject, re-enter it by hand.
Assigning a template to a purpose¶
For a template to actually be used, it has to be assigned to a purpose.
- On the learning platform under Administration → Document templates, open the Assignments tab.
- Per purpose, you see which template is currently active:
- Default text — no template of your own is assigned; the system uses its built-in text.
- Only with own template — appears instead of "Default text" for the welcome email and the course reminder as long as no template of your own is assigned: these two emails have no built-in text, so without a template nothing goes out.
- Own template — a template maintained by your company is assigned.
- Required marks the three purposes Standard invoice, Order confirmation and Course certificate: passed. Without an own template, the system sends the default text there.
- If a purpose is set to Default text or Only with own template, the Assign button leads to selecting an existing template.
- If a template of your own is already assigned, three icons are available: Edit (opens the editor), Assign a different template, and Remove own template (the default text applies again; for the welcome email and the course reminder, the email is no longer sent afterwards — the dialog points this out).
- Every purpose with a built-in text also has a View default text button, even if a template of your own is assigned. See Viewing the default text.
Which purposes there are¶
| Purpose | Type | Own template is used |
|---|---|---|
| Standard invoice | Invoice | yes — for all invoices |
| Order confirmation | yes — after an order | |
| Course certificate: passed | Certificate | yes — for courses set to "Passed the course" |
| Course certificate: participated | Certificate | yes — for courses set to "Participated in the course"; without its own template, the "passed" template applies (completion_type = „teilgenommen“) |
| Course access unlocked | yes — on enrollment in a course | |
| Course assigned | yes — on a mandatory assignment for a course | |
| Learning path assigned | yes — on a mandatory assignment for a learning path | |
| Order status update | yes — when an order is paid, completed, cancelled, or refunded | |
| Welcome email | yes, only with your own template — once after an invitation is accepted or after self-registration | |
| Course reminder | yes, only with your own template — once, when a course isn't completed three weeks after enrollment | |
| Assignment reminder (default) | Assignment reminder | yes — for reminders to the user without their own template on the reminder |
For the eight purposes above, the rule from the diagram above applies: own template assigned → your template goes out. None assigned → the built-in default text. Exception: if "Course certificate: participated" has no template of its own, the template for "Course certificate: passed" is used.
For Order status update, the placeholder order_status inserts the status into the text as a word: "bezahlt" (paid), "abgeschlossen" (completed), "storniert" (cancelled), or "erstattet" (refunded). On a refund, the credit note is attached to the email as a PDF, even with a template of your own.
Welcome email and Course reminder exist only with a template of your own. If none is assigned, nothing goes out, and the overview shows Only with own template.
- Welcome email: goes out once after a person has accepted an invitation or registered themselves, e.g. when buying via a landing page. It isn't sent when an admin creates accounts directly, individually or via CSV import in the Admin Portal — there the account comes into being without an invitation. The placeholder
assigned_by_nameholds the name of the inviting person; on self-registration it stays empty. - Course reminder: goes out once when a course still isn't completed three weeks (21 days) after enrollment. Courses that are currently an open mandatory assignment for the person (directly or via a learning path) don't get it — the mandatory assignment has its own reminders. Deactivated or deleted courses don't get it either. Enrollments that were already older than four weeks when this email was introduced don't get it retroactively. The period can't be configured.
Assignment reminders choose their template directly on the reminder: you set it when setting up the mandatory assignment, not via this tab. See Mandatory assignments. Only the purpose "Assignment reminder (default)" is assigned here: it applies when a reminder to the user has no template of its own; without an assignment the built-in text applies. Reminders to the assigning person do not use it — without their own template they get a separate built-in text that addresses the assigning person.
Assigning references, it doesn't copy
"Assign" creates a reference to your template, not a copy. You can therefore assign the same template to several purposes, and when you edit it, the change takes effect everywhere immediately. "Remove own template" only releases the reference — the template itself stays in the list.
Viewing the default text¶
You can look beforehand at what the system sends without a template of your own. For this, every purpose with a built-in text has a View default text button on the Assignments tab. It is also there for purposes that already have a template of your own assigned — so you can compare your template with the default text.
Clicking it opens a dialog with the default text, filled with sample data (e.g. "Max Mustermann", "Muster GmbH"):
- Emails appear with the subject line ("Subject: …") and the email as it is sent.
- The Assignment reminder (default) appears in two variants: To learners and To the assigning person. The assigning person gets a text of their own.
- Invoice and certificates open as a PDF. For Course certificate: participated, the dialog shows what really goes out without a template of your own: the template for "passed" (with
completion_type= „teilgenommen“), if a template is assigned (yours or a platform template), otherwise the built-in certificate.
The dialog only displays the default text. You can't edit it or adopt it as a template of your own there. Welcome email and Course reminder have no button, because neither has a default text — they only go out with a template of your own.
Frequently asked questions¶
I created a template, but it isn't being used. Check under Assignments whether the template is assigned to the appropriate purpose. Merely creating a template isn't enough — it still has to be assigned.
My placeholder appears red in the preview.
Then the system doesn't know it — usually a typo. Watch the correct spelling (assignment reminder: camelCase, otherwise snake_case) — the safest way is to insert it via the dropdown.
Can I undo a change? Yes, bring back an earlier version via the version history and save.
A purpose shows "Default text." What does that look like? The View default text button next to the purpose shows it with sample data (more on this). The built-in emails all follow the same layout: a dark header bar with the logo, a white content card, a colored button to the matching spot on the learning platform, and a footer below. The salutation and text are kept businesslike. The header bar, logo, and button color come from online:academy's standard design — your own logo and colors only take effect once you have a template of your own. Welcome email and course reminder have no default text; they show "Only with own template".
I assigned a template for the welcome email or the course reminder, but nothing arrives for one person. Both emails go out only for a specific occasion, and only once: the welcome email when a person accepts an invitation or registers themselves, the course reminder when a course isn't completed three weeks after enrollment. The details are under Assigning a template to a purpose.
How exactly do I create and design certificates? Background on awarding certificates and the placeholders under Certificates and certificate templates.
How do mandatory assignment reminders relate to the templates? The reminder emails about due mandatory assignments use the template of the type assignment reminder. How you assign mandatory assignments is described under Mandatory assignments.