E-Mail Templates

Templates erstellen, Versionen verwalten, Platzhalter nutzen und Test-Mails senden.

1. Was sind Templates?

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.

TabelleInhalt
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)

Template-Typen (type-Feld)

WertBedeutung
recurring Regelmäßiger Newsletter (Standard)
transactional Transaktionsmail (Welcome, Passwort-Reset, etc.)
campaign Einmalige Kampagne

2. Template erstellen

1
Neues Template anlegen
Im CRM unter E-Mail Templates → Neu Name, Betreff und HTML-Body eingeben. Der API-Call:
POST /api/templates
{
  "name":    "newsletter-april",
  "subject": "🌱 Dein April-Update",
  "html":    "<html>...</html>"
}
Das Template wird mit Version 1 und aktiv = false angelegt.
2
Brand-Schema wählen (optional)
Templates können an ein Brand-Schema gebunden werden. Die Felder brand_setting (s1 / s2 / s3) und brand_area (master / light) steuern, welche Farben beim n8n-Rendering verwendet werden.
3
Version aktivieren
PUT /api/templates/:id/activate
Alle anderen Versionen desselben Namens werden automatisch deaktiviert. Nur die aktive Version wird beim Versand verwendet.

3. Versionen verwalten

Jede Änderung an einem Template erzeugt eine neue Version. Ältere Versionen bleiben in der DB erhalten und können jederzeit reaktiviert werden.

Versionsstrategie: Nutze Versionen wie Git-Commits — jede inhaltlich relevante Änderung bekommt eine neue Version. So lässt sich ein fehlerhaftes Template sofort auf die Vorversion zurückrollen (Aktivieren der alten Version).

Brand-Snapshot

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.

4. n8n — Template-Rendering und Freigabe

n8n übernimmt zwei Aufgaben im Template-Workflow:

4a. Template-Generierung (KI-gestützt)

CRM: Newsletter erstellen
n8n: Template generieren
Draft in DB
CRM: Freigabe-Tab

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

4b. Versand nach Freigabe

CRM: Draft freigeben
status = 'approved'
n8n: Versand-Loop
SMTP → Empfänger

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.

Hinweis: Der Freigabe-Endpoint prüft, ob der Draft-Status pending_approval ist. Bereits versendete Drafts sind schreibgeschützt.

5. Platzhalter-Übersicht

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
Pflicht: Jede Newsletter-Mail muss {{unsubscribe_url}} enthalten — das ist gesetzlich vorgeschrieben (§ 7 UWG) und wird vom Versand-Workflow geprüft.

6. Test-E-Mail senden

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"
}
Empfehlung: Immer erst eine Test-Mail senden, bevor ein Zeitplan mit dem Template aktiviert wird. Besonders bei HTML-Änderungen mit Brand-Variablen.

7. Template für Welcome-Mail

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:

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.

8. Häufige Fragen

Wie aktiviere ich eine ältere Version wieder?

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.

Kann ich dasselbe Template für mehrere Segmente nutzen?

Ja. Ein Template ist segmentunabhängig. Beim Zeitplan wird festgelegt, an welches Segment das Template versendet wird.

Was bedeutet brand_snapshot?

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.

Wie viele Versionen sollte ein Template haben?

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