Lead-System und Formulare
AktivAblösung der Freeda-Formulare: Lead-Formulare, Standardformulare (Kündigung, Widerruf), Datei-Upload, Spam-Weiche, Bestätigungsmail und nächtliche Anonymisierung nach Frist
- Bereich
- Zentrale
- Start
- 04.08.2026
- Zuletzt
- 06.10.2026
- Am Zug
- René
Conversion-Aktion Lead in Google Ads/GTM scharf schalten, Rollout auf die übrigen Kundenseiten und Datei-Upload in Template v1 nachziehen
Worum es geht
Leads von den Kundenwebsites landen bei uns statt bei Freeda. Der Hub nimmt Formulareinsendungen über einen öffentlichen Einlauf an, das Studio arbeitet die Leads im Kundenportal ab (Pipeline neu, kontaktiert, Termin, gewonnen oder verloren, Kommentare, CSV-Export, DSGVO), die Zentrale verwaltet die Formulare selbst. Ziel war die Ablösung der Freeda-Formulare Stück für Stück, inklusive der gesetzlich geprägten Standardformulare Kündigung und Widerruf.
Stand
- Lead-System seit 04.08.2026 live (Hub v0.85.0 bis v0.100.0 in den ersten zwei Tagen): Tabellen lead_formulare, leads, lead_kommentare, lead_audit, öffentlicher Einlauf
POST /portal/lead/:public_keymit Honeypot hp_email, Zeitfalle ts_start, Rate-Limit und Consent-Pflicht. - Formular-Hoheit liegt nur in der Zentrale (Anlegen, Felder, Aktivieren, Empfänger, Bestätigungsmail). Das Portal zeigt Kampagnen an und bearbeitet nur die Leads.
- Standardformulare (Kontakt, Termin, Beratung, Kündigung, Widerruf) sind gesperrt: Änderung am Schema nur mit
standard_bestaetigt:truenach drei Sicherheitsabfragen. - Feldtypen: text, email, tel, textarea, select, date, checkbox (v0.180.0), datei (v0.332.0), dazu bedingte Sichtbarkeit
sichtbar_wenn. - Bestätigungsmail an den Absender ist für jedes Formular Standard (v0.226.0), Du oder Sie folgt der Kundenakte, White-Label mit Kundenmarke, Reply-To und Impressum, Platzhalter für jedes Feld und für Standort (
{standort},{ort},{standort_telefon}seit v0.361.0). - Dankeseite-Text oder Weiterleitung je Formular (v0.100.0), öffentliches Feld-Schema
GET /portal/lead/:key/schema(v0.226.2), Lead-Empfänger je Standort mit mehreren Adressen (v0.309.1). - Datei-Upload mit Magic-Byte-Prüfung, Ablage
data/lead-dateien/, Anhang an der Team-Mail standardmäßig an (v0.334.0), Mail-Log zeigt Anhänge (v0.334.1). - Aufbewahrung: nächtliche Anonymisierung nach Frist je Kunde (nicht gewonnen 180 Tage, gewonnen 365, Datei-Anhänge 90 Tage nach Erledigung), Zählung bleibt (v0.346.0).
- Umgestellte Seiten (laut Notizen): sim2026 (Pilot, LeadForm.astro), Fuchspack (#406 Produktanfrage, #407 Kontaktanfrage), Browns, Impuls, Energy Warstein (4 Formulare), MyTime (Kündigung und Widerruf, preprod), Physiopraxis Rottweil (mit Datei-Upload), Tschann. Komponente
SimStandardformular.astroist in Template v1 und v2 eingebaut.
Offen
- René Google Ads/GTM-Conversion scharf schalten (Conversion-Aktion „Lead“, Trigger auf
lead_submit); die Website-Seite feuert das Event, die GTM-Oberfläche kann nur René bedienen. - René Bestätigungstexte und Verzweigungsregeln für Kündigung und Widerruf freigeben, bevor weitere Kunden umgestellt werden (juristisch bestätigen lassen).
- René Lead-Aufbewahrung von der Kanzlei bestätigen lassen (Rechtslage-Kurzfassung liegt vor).
- ich
SimStandardformularmit Datei-Upload in Template v1 und die übrigen Kunden-Repos nachziehen (Stand 22.09.: nur Physiopraxis Rottweil hat es). - ich Port der Formular-Schema-Logik (GRUPPEN.termin) in Templates v1 bis v3 und Browns (alte Kopie, Formulare dort inaktiv).
- ich Felder-Editor in der Kundenakte reparieren, bevor er wieder angefasst wird:
LEAD_FELD_TYPENinhub/public/app.jskennt select und date nicht, ein Speichern kippt den Typ auf text (betrifft Kündigung und Widerruf). - René
data/uploadsder Zentrale (244 MB, Stand 22.09.) ist in keinem Backup; kein Virenscan auf Lead-Dateien (prüfen, ob inzwischen geändert). - René Kundenlogos für White-Label-Mails (Tabelle customer_brand_assets leer, optional
mappings.mail_logo_url). - René Freeda-Kampagnen der umgestellten Kunden deaktivieren (zuletzt als Punkt genannt: Fuchspack e784d0ec) prüfen.
- René sim-ops main ist dem Remote voraus (Stand 11.10.), Push durch René.
Entscheidungen und Regeln
- 2026-08-04: Alles am Formular ist Sache der Zentrale (Struktur und Betrieb). Kunden bearbeiten im Portal nur die Leads. Standardformulare gesetzlich vorgegeben, Änderung nur mit drei Sicherheitsabfragen (zweimal confirm, „GEPRÜFT“ tippen).
- 2026-08-04: Bestätigungsmail-Absender bleibt unsere Domain, weil Kundendomains (SPF/DMARC) unseren Server nicht autorisieren. Anzeigename und Reply-To tragen die Kundenmarke.
- 2026-08-04: Marke im Mailtext aus
mappings.marken_name, dannstammdaten.firma, danncustomers.name; kein „GmbH“ in der SIM-Signatur. - 2026-08-05: Bei Kündigung und Widerruf ist die Bestätigung Pflicht (
bestaetigung_an=1), Ton folgt der Kundenanrede, Vertragsnummer beim Widerruf optional. - 2026-08-23: Jedes Formular schickt eine freundliche, themenpassende Bestätigung. Ausschalten nur auf Kundenwunsch. Kündigung und Widerruf behalten die gesetzliche Fassung.
- 2026-09-22: Dateien hängen standardmäßig an der Team-Mail, weil die Studios die Verordnung in der Mail wollen.
- 2026-09-25: Leads werden anonymisiert statt gelöscht, damit die Anzahl der Anfragen zählbar bleibt.
- Rollout-Regel: erst mit temporärem Test-Empfänger testen, Empfänger erst danach auf die echten Kundenadressen setzen. Pro Kunde Anrede, marken_name und Bestätigungstext prüfen.
- Eine kopierte Komponente muss im Ziel-Design angesehen werden (Token-Fallback
--color-*in vier Repos, 14.08.). - Nach lokalen Builds in Website-Repos
public/.htaccessverwerfen, sonst fällt der Preprod-Noindex-Block weg.
Verlauf
- Hub v0.361.0 (4462005): Bestätigungsmail kennt
{standort},{ort},{standort_telefon}aus der Standort-Akte des Leads. - Hub v0.346.0 (0454102): Lead-Aufbewahrung mit nächtlicher Anonymisierung, Akte-Karte Leads › Aufbewahrung; Physiopraxis Rottweil Dateien 180 Tage.
- Hub v0.343.0 (8dcd31f): Team-Benachrichtigung und Anzeigewerte folgen der Formularsprache.
- Hub v0.334.0 (276d814) und v0.334.1 (d6da539): Dateianhang standardmäßig an der Team-Mail, Mail-Log mit Spalte anhaenge.
- Hub v0.332.0 (f31dc29, fc11c52): Feldtyp datei, Ordner lead-dateien im täglichen verschlüsselten Backup.
- Hub v0.309.1 (1209776): Lead-Empfänger je Standort mit mehreren Adressen (Tschann-Launch).
- Befund „Lead kommt nicht an“: Spam-Weiche verwarf Renés Test, weil die Erweiterung Fake Filler das Honeypot-Feld befüllte. Diagnoseliste in der Notiz.
- Hub v0.226.0 (35f7452), v0.226.1 (cbb5655), v0.226.2 (11c62b3): Bestätigungsmail als Standard, Anrede-Abgleich bei jedem Start, öffentliches Schema; 68 Bestandsformulare nachgezogen.
- Fuchspack Kontaktanfrage #407 um optionales Feld nachricht erweitert.
- Hub v0.180.0 (f093eb7): Feldtyp checkbox für Pflicht-Zustimmungen (Energy Warstein, 17h-Formular #1603); Token-Fallback der Komponente in Template v1 (82454ce), v2 (f1752a4), Impuls (fef2230) und Energy.
- Hub v0.98.0 (ba33f92), v0.99.0 (4b852d5), v0.100.0 (a329ba2): Empfangsbestätigung Kündigung/Widerruf wie bei Freeda, bedingte Textblöcke, Dankeseite oder Weiterleitung.
SimStandardformular.astrogebaut und in Template v1 (e0b376d) und v2 (7e9d40a) eingebaut. - Hub v0.97.0 (1ea6e35): Standardformulare Kündigung und Widerruf nachgebaut (Backend).
- Hub v0.94.0 bis v0.96.0 (1e652cc, f3bf4be, a1093f7, d24888d): White-Label-Mails, Leads als eigener Reiter in der Kundenakte, Marke im Absender, Anrede in der Bestätigung. Fuchspack #406/#407 abends scharf.
- Hub v0.86.0 bis v0.93.0: Zentrale-Sicht, Formular-Verwaltung nur Zentrale (Renés Korrektur), CSV-Export und Dubletten-Hinweis, Betreff je Formular, trustProxy-Fix für echte Client-IP (df351e1).
- Hub v0.85.0 (dc4d4a2): Lead-System P1 live, Pilot website-sim2026 (2856a8f) auf devel, preprod und main.
Wo liegt was
- Hub-Code:
/root/sim-ops/hub/src/leads.ts(Einlauf, Vorlagen STANDARD_FORMULARE, Platzhalter),leadsCore.ts,leadsAdmin.ts(Zentrale-Endpunkte/api/leads…),leadsDetail.ts,leadDateien.tsundleadDateienCore.ts,leadAufbewahrung.tsundleadAufbewahrungCore.ts. - Tabellen in hub.db: lead_formulare, leads, lead_kommentare, lead_audit, lead_dateien, lead_aufbewahrung. Dateien unter
data/lead-dateien/. - Öffentlich:
POST /portal/lead/:public_key,GET /portal/lead/:key/schema. - Zentrale: Kundenakte › Reiter Leads (Formulare, Felder-Editor, Einstellungen, Aufbewahrung, Einbett-URL); Dashboard-Kachel „Leads heute“. Portal: Bereich Leads.
- Website-Komponenten:
LeadForm.astro(sim2026),SimLeadFormular.astro(Fuchspack),SimStandardformular.astro(Templates v1 und v2, Physiopraxis Rottweil als Muster für Datei-Upload). - Rezept zum Umstellen: Wiki studiowebsite-docs
10 Grundlagen/Lead-Formulare SIM-Lead-System.md; Konzeptsim-ops/docs/leads-konzept-2026-08.md; Wiki20-Tools/Leads.md. - Tests nur per E2E über den Einlauf gegen die laufende Zentrale, nie aus
hub/test/*.test.ts(leads.ts importiert die DB); Testleads danach löschen.