Zum Hauptinhalt springen

E-Mail-Templates

[admin] [email-templates] [i18n] [einstellungen]

licensio versendet im Namen des Tenants automatische E-Mails an Kunden — Aktivierung, Willkommen, Kündigung und mehr. Jeder dieser Text-Bausteine ist ein Template, das du anpassen kannst. Ohne Anpassung greift der mehrsprachige Default (Deutsch oder Englisch, je nach Tenant-Sprache).

Für wen

Tenant-Admins, die die Tonalität ihrer Kunden-Kommunikation steuern wollen.

Wo finde ich die Templates?

Einstellungen → E-Mail Vorlagen (Pfad: /settings/emails)

Im Editor wählst du oben den Template-Slot, bearbeitest Subject + Body, und kannst rechts die verfügbaren Variablen aus einer Liste übernehmen.

Die 9 Template-Slots

Jeder Slot wird zu einem klar definierten Ereignis ausgelöst:

  • activation — Kunde wurde vom Tenant manuell freigeschaltet. Versendet vom Admin-Action "Aktivieren".
  • welcome — Self-Service-Registrierung über das Widget oder /join. Bestätigt Kontoerstellung, weist auf nötige Freischaltung hin.
  • payment_reminder — Stripe-Zahlung schlug fehl. Aufforderung, Zahlungsmethode zu prüfen.
  • cancellation — Kunde hat gekündigt. Bestätigt das Kündigungsdatum.
  • cancellation_withdraw — Kündigung wurde vor Ablauf zurückgezogen.
  • rejection — Tenant lehnt eine Registrierung ab.
  • email_change_old — Kunde ändert die Login-Email. Benachrichtigt die alte Adresse als Sicherheits-Notiz.
  • email_change_new — Kunde ändert die Login-Email. Sendet Setup-Link an die neue Adresse.
  • interval_change — Abrechnungsintervall wurde geändert (z.B. monatlich → jährlich).

Verfügbare Variablen

Variablen werden im Template als {{variable_name}} geschrieben und beim Versand ersetzt. Heutige Variablen-Namen sind historisch teilweise gemischt-sprachig (kunde_firma, kundennummer) — eine Refactor-Migration auf neutrale englische Namen (customer_name, customer_number) ist im Backlog.

In allen Slots verfügbar:

  • {{tenant_name}} — Name deines Unternehmens
  • {{kunde_firma}} — Firmenname (oder Nachname) des Kunden
  • {{kundennummer}} — Automatisch generierte Kundennummer (z.B. PT-2026-0042)
  • {{support_email}} — Support-Adresse deines Tenants

Slot-spezifisch:

  • {{cancellation_date}} — nur in cancellation
  • {{portal_link}} — nur in payment_reminder
  • {{old_email}} / {{new_email}} — nur in email_change_old
  • {{reset_url}} — nur in email_change_new
  • {{new_interval}} — nur in interval_change

Mehrsprachigkeit

Die Defaults existieren in Deutsch (de) und Englisch (en). Welche Sprache greift, entscheidet tenants.settings.default_locale (konfigurierbar unter Erweiterte Einstellungen → Sprache & Region). Wenn keine default_locale gesetzt ist, fällt das System auf de zurück — schützt Live-Tenants ohne Migration.

Wenn du ein eigenes Template hinterlegst, wird dein Text in jeder Sprache verwendet. Die Templates sind heute nicht pro Sprache pflegbar — Multi-Locale-Templates kommen mit Phase 5 (Multi-Locale Foundation für FR/ES/IT).

Override-Regeln

  • Fehlt das Custom-Template komplett: Default-Sprache aus default_locale greift.
  • Custom-Subject gesetzt, Body leer: Default-Body wird verwendet, dein Subject gewinnt (oder umgekehrt). Beide Felder werden unabhängig gemerged.
  • Variablen werden nach dem Merge ersetzt — du kannst also einen Default-Body lassen und nur dein Subject anpassen, ohne Variablen-Konsistenz prüfen zu müssen.

Test-Versand

Im Editor gibt es einen "Test senden"-Button — schickt das aktuell bearbeitete Template an deine Login-Adresse, mit Platzhalter-Werten für alle Variablen.

Wann werden Änderungen wirksam?

Sofort. Die nächste E-Mail, die nach dem Speichern für den jeweiligen Slot rausgeht, nutzt dein Template. Bereits versendete E-Mails sind nicht betroffen.

Migrierte Email-Routen (Stand 2026-05-28)

Sieben Versand-Routen lesen heute aus diesem Template-System (statt hardcoded HTML-Bodies):

  • Admin: activate, cancel (Tenant kündigt), change-email (alt + neu = 2 Versände), reject (Registrierung ablehnen), register (Welcome bei Self-Service)
  • Portal: cancel-subscription (Kunde kündigt selbst), cancel-subscription/withdraw, change-interval

Drei weitere Routen warten noch auf Migration (Stripe-Webhook-Sprint).

Variablen sauber halten

Wenn du Variablen entfernst (z.B. {{kundennummer}} aus dem Welcome-Template löschst), wird die Variable einfach nicht ersetzt — die E-Mail enthält dann eine leere Stelle, kein Fehler. Wenn du eine Variable einbaust, die für diesen Slot nicht definiert ist (z.B. {{cancellation_date}} im Welcome-Slot), wird sie ebenfalls leer ersetzt.

Verwandt