Templates erstellen, Versionen verwalten, Platzhalter nutzen und Test-Mails senden.
Ein E-Mail-Template ist eine wiederverwendbare HTML-E-Mail-Vorlage. Jedes Template hat einen Namen (eindeutiger Bezeichner), einen Betreff und einen HTML-Body. Zu jedem Template kann es mehrere Versionen geben — nur eine Version ist jeweils aktiv.
| Tabelle | Inhalt |
|---|---|
public.email_templates |
Aktive Template-Versionen: name, version, subject, html, aktiv, type, brand_setting |
public.email_template_versions |
Alle Versionen inkl. Brand-Snapshot: html_content, brand_setting, brand_area, status |
public.email_template_drafts |
Drafts zur Freigabe durch n8n: html, subject, status (pending_approval / approved) |
| Wert | Bedeutung |
|---|---|
| recurring | Regelmäßiger Newsletter (Standard) |
| transactional | Transaktionsmail (Welcome, Passwort-Reset, etc.) |
| campaign | Einmalige Kampagne |
POST /api/templates
{
"name": "newsletter-april",
"subject": "🌱 Dein April-Update",
"html": "<html>...</html>"
}
Das Template wird mit Version 1 und aktiv = false angelegt.
brand_setting (s1 / s2 / s3) und brand_area (master / light)
steuern, welche Farben beim n8n-Rendering verwendet werden.
PUT /api/templates/:id/activate
Alle anderen Versionen desselben Namens werden automatisch deaktiviert.
Nur die aktive Version wird beim Versand verwendet.
Jede Änderung an einem Template erzeugt eine neue Version. Ältere Versionen bleiben in der DB erhalten und können jederzeit reaktiviert werden.
In email_template_versions wird der aktuelle Brand-Zustand als
brand_snapshot (JSONB) gespeichert, wenn n8n das Template rendert.
So ist nachvollziehbar, mit welchen Farben eine Version erstellt wurde.
n8n übernimmt zwei Aufgaben im Template-Workflow:
Beim Erstellen eines Newsletters im CRM kann n8n das HTML-Template automatisch
generieren (KI + Brand-Schema). Das Ergebnis landet als Draft mit
status = 'pending_approval' in email_template_drafts.
# n8n Webhook: Template-Generierung
POST /webhook/template-generate
{
"template_name": "newsletter-april",
"brand_setting": "s1",
"segment": "newsletter",
"thema": "Frühlings-Routine"
}
# Antwort → Draft-ID für Freigabe im CRM
Nach der Freigabe im CRM (POST /api/templates/drafts/:id/approve) iteriert
n8n über alle Abonnenten des gewählten Segments und sendet die personalisierte Mail via
Hostinger SMTP.
pending_approval ist. Bereits versendete Drafts sind schreibgeschützt.
Im HTML-Body können folgende Platzhalter genutzt werden. Sie werden beim Versand pro Empfänger durch die echten Daten ersetzt:
{{vorname}}
Vorname des Empfängers (aus bestand.persons)
{{email}}
E-Mail-Adresse des Empfängers
{{unsubscribe_url}}
Personalisierter Abmelde-Link (Pflicht!)
{{current_year}}
Aktuelles Jahr (z.B. 2026) für Footer
{{brand_primary}}
Primärfarbe des aktiven Brand-Schemas
{{brand_accent}}
Akzentfarbe des aktiven Brand-Schemas
{{unsubscribe_url}}
enthalten — das ist gesetzlich vorgeschrieben (§ 7 UWG) und wird vom Versand-Workflow
geprüft.
Im Template-Editor gibt es die Funktion „Test senden". Dabei wird das Template mit Beispieldaten gerendert und an eine einzige Adresse gesendet — kein Segment, kein Zeitplan wird dabei berührt.
# Intern: Test-Versand via API
POST /api/templates/:id/test
{
"to": "mario@example.com"
}
Das Welcome-Template für neue Newsletter-Abonnenten hat den Namen
newsletter-welcome. Es wird direkt von n8n verwendet (nicht über den
CRM-Template-Editor) und enthält:
{{vorname}}{{unsubscribe_url}}
Das Template ist in n8n direkt im Node „Send Email" hinterlegt und wird
nicht über email_templates verwaltet — Änderungen
müssen direkt in n8n vorgenommen werden.
Im Template-Versionsverlauf die gewünschte Version anklicken und
„Aktivieren" wählen. Die API setzt alle anderen Versionen des
gleichen Template-Namens auf aktiv = false.
Ja. Ein Template ist segmentunabhängig. Beim Zeitplan wird festgelegt, an welches Segment das Template versendet wird.
Beim Rendern speichert n8n die aktuellen Brand-Farben (Hex-Codes, Font-Einstellungen) als JSON-Snapshot in der Version. So sieht man später, mit welchem Brand-Stand eine bestimmte Version erstellt wurde — auch wenn das Brand-Schema sich geändert hat.
Es gibt keine Begrenzung. In der Praxis ist es sinnvoll, abgelöste Versionen regelmäßig zu archivieren (manuell löschen), um die Übersicht zu behalten. Die letzten 3–5 Versionen sollte man behalten, für ältere Versionen genügt die aktive.
Excellence Journey CRM · Interne Dokumentation · Stand 2026-03