====== Mail Vorlagen ====== HSPinONE ermöglicht das Anlegen und Ändern von Systemmails, die in erster Linie von der Onlineanmeldung versandt werden. Die Bearbeitung erfolgt in den Einstellungen unter **Inhalte → Vorlagen**. **Stand 01.10.2026 – neue Template-Engine:** Alle Vorlagen werden ausschließlich mit [[https://github.com/scriban/scriban/blob/master/doc/readme.md|Scriban]] verarbeitet. Platzhalter in einfachen geschweiften Klammern (''{kunde.vorname}'') werden **nicht mehr ersetzt** und erscheinen sonst wörtlich in der Mail. ===== Platzhalter ===== * Platzhalter stehen in doppelten geschweiften Klammern, Leerzeichen sind erlaubt: ''%%{{ kunde.vorname }}%%''. * Bevorzugt wird die Schreibweise mit Punkt (''%%{{ kurs.kursname }}%%''). Die bisherige Schreibweise mit Unterstrich (''%%{{ kurs_kursname }}%%'') funktioniert weiterhin als Alias. * Wenn-Dann-Konstrukte und Schleifen sind möglich, z. B. ''%%{{ if kurs.ende != "" }} – {{ kurs.ende }}{{ end }}%%'' oder ''%%{{ for pos in bestellung.positionen }} … {{ pos.brutto }} … {{ end }}%%''. * Unbekannte Platzhalter bleiben in der Mail leer, der Versand bricht nicht ab. * Der Betreff wird ebenfalls mit Scriban verarbeitet (z. B. ''%%{{ kurs.kursname }}%%''). Die verfügbaren Platzhalter hängen vom **Typ** der Vorlage ab. Die vollständige Liste mit Beschreibung und Beispielwert zeigt der Vorlagen-Editor rechts neben dem Text; beim Tippen von ''%%{{%%'' schlägt der Editor passende Platzhalter vor. Diese Liste ist maßgeblich. ===== Wichtige Platzhalter ===== ^ Platzhalter ^ Inhalt ^ Beispiel ^ ^ Allgemein (alle Typen) ^^^ | ''today'' | Heutiges Datum | 01.10.2026 | | ''jahr'' | Aktuelles Jahr | 2026 | ^ Empfänger (alle Mail-Typen) ^^^ | ''kunde.vorname'', ''kunde.nachname'' | Vor- und Nachname | Erika, Mustermann | | ''kunde.suchname'' | Nachname, Vorname | Mustermann, Erika | | ''kunde.briefanrede'' | Förmliche Briefanrede (für Du-Texte ungeeignet) | Sehr geehrte Frau Mustermann | | ''kunde.anrede'' | Herr/Frau | Frau | | ''kunde.kundennummer'' | Kundennummer | 12345 | | ''kunde.mail1'' | E-Mail-Adresse | erika.mustermann@example.org | | ''kunde.strasse'', ''kunde.plz'', ''kunde.ort'' | Anschrift | Musterweg 1, 37073, Göttingen | | ''kunde.geburtstag'' | Geburtsdatum | 01.01.2000 | | ''kunde.iban'', ''kunde.bic'' | Bankverbindung | DE02…, BYLADEM1001 | | ''kunde.mandatsreferenz'' (auch ''kunde.mref'') | SEPA-Mandatsreferenz | 12345-1 | | ''kunde.meta.'' | Zusatzfelder des Kunden | | ^ Kurs (Kursbuchung, Warteliste, Kursausfall, Erinnerung) ^^^ | ''kurs.kursname'' | Sportart und Zusatzinfo | Yoga Anfänger | | ''kurs.zeit'' | Wochentag und Uhrzeit | Mo 18:00 - 19:30 | | ''kurs.ort'' | Ort | Halle 1 | | ''kurs.start'', ''kurs.ende'' | Erster und letzter Termin (''kurs.ende'' kann leer sein) | 01.10.2026, 31.01.2027 | | ''kurs.veranstaltungsnummer'' | Veranstaltungsnummer | 4711 | ^ Rechnung (Buchungsbestätigungen) ^^^ | ''rechnung.vwz'' | Verwendungszweck | Kursgebühr Yoga Anfänger | | ''rechnung.preis'' / ''rechnung.brutto'' | Bruttobetrag inkl. € | 40,00 € | | ''rechnung.netto'' | Nettobetrag inkl. € | 33,61 € | | ''rechnung.tax'' | Steuerbetrag inkl. € | 6,39 € | | ''rechnung.taxpercent'' | Steuersatz inkl. % | 19% | | ''rechnung.bemerkung'' | Bemerkung, z. B. Termine | | | ''meta'' | Kommentar zur Buchung | | ^ Raum-/Platzbuchung und Pakete ^^^ | ''booking.start'', ''booking.ende'' | Beginn und Ende der Buchung | 01.10.2026 18:00 | | ''booking.locationname'' | Gebuchter Raum/Platz | Beachvolleyballfeld 2 | | ''package.packagename'', ''package.preis'' | Paket/Ticket und Preis | 10er-Karte Klettern, 45,00 € | ^ Vertrag (Neuvertrag, Kündigung) ^^^ | ''contract.vertragsbeginn'' | Vertragsbeginn | 01.10.2026 | | ''contract.monate'' | Laufzeit in Monaten | 6 | | ''contract.tarif'' | Tarif | Mitgliedschaft Studierende | | ''contract.ratenbetrag'' (auch ''contract.price'') | Ratenbetrag inkl. € | 25,00 € | | ''link'' | Link zum Bestätigen des Vertrags | | | ''vertrag.kuendigungzum'' | Vertragsende nach der Kündigung | 31.03.2027 | ^ Bestellung (Checkout) ^^^ | ''bestellung.positionen'' | Liste der Positionen, je Position ''beschreibung'', ''brutto'', ''netto'', ''tax'', ''taxpercent'' | | | ''bestellung.gesamtbetrag'' | Gesamtbetrag inkl. € | 40,00 € | | ''bestellung.rechnungsnummer'', ''bestellung.rechnungsdatum'' | Rechnung (leer, solange keine Rechnung erstellt ist) | R-2026-000123 | | ''bestellung.hatrechnung'' | true, wenn bereits eine Rechnung existiert | true | ^ Registrierung, Zugangsdaten, Warteliste ^^^ | ''email'' | E-Mail-Adresse, an die die Mail geht | | | ''tokenlink'' | Link zum Bestätigen bzw. Setzen des Passworts (''token'' ist veraltet, gleicher Wert) | | | ''link'' | Link zum Kurs (freier Platz auf der Warteliste) | | ===== Vorschau und Prüfung ===== * Über **Vorschau** wird die Vorlage mit Beispieldaten des gewählten Typs gerendert; Syntaxfehler und unbekannte Platzhalter werden angezeigt. * **Test E-Mail an mich** verschickt diese Vorschau mit Beispieldaten an die eigene Adresse. * Vorschau und Test-Mail zeigen den Text ohne das Mail-Layout des Stores. Die endgültige Darstellung ist nur über eine echte Testbuchung prüfbar. * Vorlagen mit Syntaxfehlern (Text oder Betreff) lassen sich nicht speichern. Unbekannte Platzhalter sind nur ein Hinweis, weil Zusatzfelder frei benannt sein können. ===== Zeilenumbrüche und HTML ===== Beim Versand aus dem Store wird der Text in das Mail-Layout eingebettet. Dabei wird jeder Zeilenumbruch im Quelltext zwischen zwei Tags in ein ''
'' umgewandelt; Umbrüche innerhalb eines Tags bleiben erhalten. In Tabellen schieben Mailprogramme diese ''
'' vor die Tabelle, es entstehen große Lücken. * HTML-Vorlagen daher **einzeilig speichern**: Umbrüche und Einrückungen zwischen den Tags entfernen. * Reine Textvorlagen ohne HTML können mit normalen Zeilenumbrüchen gespeichert werden. ===== Bekannte Abweichungen ===== ^ Platzhalter ^ Verwendet in ^ Status ^ | ''kunde_email'' | Registration | existiert nicht, bleibt leer; stattdessen ''email'' oder ''kunde.mail1'' verwenden | | ''vertrag_ruhevon'', ''vertrag_ruhebis'' | Ruhezeit | nicht im Variablenkatalog; über diese Vorlage wird derzeit keine Mail versendet | | ''token'' | RequestPasswort | veraltet, gleicher Wert wie ''tokenlink''; die Mail „Passwort vergessen“ wird derzeit über Keycloak versendet, nicht über diese Vorlage | | ''vertragsbeginn'', ''monate'', ''tarif'', ''price'' | ältere Vertragsvorlagen | veraltet, ersetzt durch ''contract.vertragsbeginn'', ''contract.monate'', ''contract.tarif'', ''contract.ratenbetrag'' | | ''kurs.zeit'' | alle Kursvorlagen | Wochentag kommt deutsch abgekürzt (z. B. „Di.“), auch im englischen Teil | ===== Beispiel: Systemprompt für die KI-gestützte Bearbeitung von Mail-Vorlagen ===== Der folgende Systemprompt dient als Vorlage für Einrichtungen, die ihre Mail-Vorlagen mit Hilfe eines KI-Assistenten (z. B. Claude) überarbeiten möchten. Er bündelt die technischen Anforderungen an HTML-E-Mails, die Scriban-Syntax von HSPinONE sowie einen einheitlichen Baukasten für den Aufbau der Mails. Die einrichtungsspezifischen Angaben sind im Prompt bewusst nicht enthalten. Der Prompt weist den Assistenten an, diese Angaben zu Beginn abzufragen (Name der Einrichtung, Markenschreibweise, Mitgliedschaften, Kontaktdaten, Links, Anrede, Sprachen usw.). ==== Ablauf ==== - Prompt als Systemprompt bzw. Projektanweisung im KI-Assistenten hinterlegen. - Die vom Assistenten abgefragten Angaben zur Einrichtung beantworten. - Bestehenden Vorlagentext und die Platzhalterliste des Vorlagentyps aus dem Vorlagen-Editor in den Chat kopieren und überarbeiten lassen. - Ergebnis einzeilig in die Vorlage übernehmen, über **Vorschau** auf Fehler prüfen, speichern und mit einer echten Testbuchung kontrollieren. Du bist Spezialist:in für HTML-E-Mail-Vorlagen der Verwaltungssoftware HSPinONE (inOne). Du überarbeitest ausschließlich den Mailtext (Body) einzelner Vorlagen. Arbeite kurz, faktenbasiert und frag nach, statt zu raten. SCHRITT 0 – ANGABEN ZUR EINRICHTUNG ABFRAGEN (vor der ersten Vorlage, noch offen) Frage zu Beginn folgende Angaben ab und verwende danach ausschließlich diese: - Name der Einrichtung und Träger (z. B. "Zentrale Einrichtung ... der Universität ...") - Markenname und genaue Schreibweise (z. B. "UniSport"), alte Bezeichnungen, die ersetzt werden sollen - Angebotene Mitgliedschaften bzw. Tarife und ihre Bezeichnungen - Kontakt-E-Mail-Adresse(n), ggf. getrennt nach Bereichen - Links: Homepage, Store/Account, Teilnahme- und Stornobedingungen, Impressum, Datenschutz - Gläubiger-Identifikationsnummer (falls SEPA-Lastschrift genutzt wird) - Anrede (Du oder Sie), auch gegenüber Eltern bei Kinderangeboten - Sprachen (z. B. Deutsch und Englisch) und Grußformel je Sprache - Wird ein angepasstes Mail-Layout mit Dark-Mode-Klassen eingesetzt? Kommt der Footer (Adresse, Impressum, Datenschutz) aus dem Layout bzw. den globalen Einstellungen? - Platzhalterliste des jeweiligen Vorlagentyps (aus dem Vorlagen-Editor) ARCHITEKTUR - Das Mail-Layout liefert , , CSS und Rahmen; der Mailtext wird an der Stelle {body} eingesetzt. Im Body daher kein , , oder