docs: finalize P7 lead handoff and sync project

This commit is contained in:
david committed 2026-08-20 20:22:19 +02:00
1 parent d953a79e95
commit 058d72be72
43 files changed
+1685 -568

No files matched your search

@@ -17,5 +17,9 @@
{"id":"edge-m01-remove","fromNode":"m01","fromSide":"bottom","toNode":"note-remove","toSide":"top","label":"Device entfernen"},
{"id":"edge-m02-inline","fromNode":"m02","fromSide":"bottom","toNode":"note-inline","toSide":"top","label":"Codefehler"},
{"id":"edge-m03-inline","fromNode":"m03","fromSide":"bottom","toNode":"note-inline","toSide":"top","label":"Codefehler"}
]
],
"metadata":{
"version":"1.0-1.0",
"frontmatter":{}
}
}
@@ -115,15 +115,15 @@ Wie viel eigene Struktur braucht 2FA-Verwaltung, ohne aus einfachen Code-Eingabe
### Meldungs-/Error-State-Brainstorming
| Ereignis | UI-Form | Blockiert? | Bauen? | Copy/Notiz |
|---|---|---|---|---|
| 2FA nicht aktiv | Zustand in M01 | nein | nein | CTA zum Einrichten |
| 2FA aktiv | Zustand in M01 | nein | nein | Device-Liste + Aktionen |
| neues Device hinzufuegen | Modal-Step M02 | ja | pruefen | QR/Secret + Code |
| Device entfernen | Row-Action + Confirm | teilweise | nein | wenn nicht letztes Device |
| letztes Device entfernen | Inline/Confirm-Hinweis | ja | nein | Nutzer soll 2FA deaktivieren statt letztes Device still entfernen |
| 2FA deaktivieren | Modal M03 | ja | pruefen | Code + bewusster Confirm im selben Modal |
| 2FA-Code falsch | Inline im Modal | ja | nein | korrigierbar |
| Ereignis | UI-Form | Blockiert? | Bauen? | Copy/Notiz |
| ------------------------ | ---------------------- | ---------- | ------- | ----------------------------------------------------------------- |
| 2FA nicht aktiv | Zustand in M01 | nein | nein | CTA zum Einrichten |
| 2FA aktiv | Zustand in M01 | nein | nein | Device-Liste + Aktionen |
| neues Device hinzufuegen | Modal-Step M02 | ja | pruefen | QR/Secret + Code |
| Device entfernen | Row-Action + Confirm | teilweise | nein | wenn nicht letztes Device |
| letztes Device entfernen | Inline/Confirm-Hinweis | ja | nein | Nutzer soll 2FA deaktivieren statt letztes Device still entfernen |
| 2FA deaktivieren | Modal M03 | ja | pruefen | Code + bewusster Confirm im selben Modal |
| 2FA-Code falsch | Inline im Modal | ja | nein | korrigierbar |
---
@@ -46,4 +46,4 @@ A5 Dialog (echtes Modal: DialogLayout → Dialog → Dialog.Content).
## Notizen
- Wird auch aus anderen Flows geöffnet (z. B. Lead → Projekt: Kontakt verknüpfen/anlegen in D-P7).
- P7 greift fachlich auf diese Mechanik zurück: M02/M08 verknüpfen oder erstellen Ansprechpartner, M01 übernimmt optional einen Kontakt. Ob dabei dieser P6-Dialog technisch wiederverwendet wird, ist im aktuellen Subframe-Export nicht verdrahtet; der frühere Sonderfall `Lead → Projekt` bleibt als P7-Produktdelta offen.
@@ -0,0 +1,43 @@
---
kind: planning-gap
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: GAP-CSV
screen: CSV-Import-Wizard
status: Nicht im aktuellen Subframe-Flow
route: ""
subframe: ""
source_checked: 2026-08-20
---
# Offenes Delta — CSV-Import-Wizard
## Bisher geplantes Ziel
Lead-Listen aus Messekontakten oder Altbestand mit kontrollierter Feldzuordnung importieren. Dieser Punkt war Davids Delta und stand nicht im ursprünglichen Dev-Ticket.
## Bisher geplanter Umfang
1. CSV-Datei hochladen.
2. Spalten Lead-Feldern zuordnen; Auto-Vorschläge, eigene Felder und Überspringen.
3. Vorschau mit fehlerhaften Zeilen und Duplikaten.
4. Duplikatregel: überspringen, trotzdem anlegen oder markieren.
5. Import im Hintergrund mit Ergebnisübersicht.
## Bisher geplantes Pattern
A5 als vierstufiger Wizard: Datei → Spalten zuordnen → Vorschau und Duplikatregel → Import/Ergebnis. Die Dropzone sollte das P4-Dateimuster wiederverwenden.
## Bisher geplante Meldungen
| Ereignis | UI-Form | Blockiert? | Copy / Notiz |
|---|---|---|---|
| Datei nicht lesbar oder falsches Format | Schritt-Fehler | ja, nur diesen Schritt | Klartext plus Beispiel-Hinweis |
| Zeilen mit Fehlern | Markierung in der Vorschau | nein | `werden übersprungen` |
Das Wizard-Muster war außerdem als spätere Wiederverwendung für den Kontaktimport notiert. Serverseitiger Import-Job, Duplikatlogik und Feld-Mapping wären ein Change-Request an Development.
## Abgleich 2026-08-20
Im finalen 20-Seiten-Flow `WF-P7 LeadListe` existiert kein CSV-Import. Er bleibt als separater Change-Request-Kandidat erhalten, ist kein aktueller Subframe-Screen und blockiert den abgeschlossenen P7-Screen-Handoff nicht.
@@ -0,0 +1,36 @@
---
kind: planning-gap
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: GAP-STAT
screen: Lead-Statistiken
status: Nicht im aktuellen Subframe-Flow
route: "/leads/statistics"
subframe: ""
source_checked: 2026-08-20
---
# Offenes Delta — Lead-Statistiken
## Bisher geplantes Ziel
Der Chef sieht, woher Anfragen kommen, wie schnell reagiert wird und was aus Leads wird.
## Bisher geplanter Umfang
- KPI-Kacheln: Eingegangen, Konversion Lead → Projekt, Lead → Gewonnen, Reaktionszeit, Spam-Quote und offene Anfragen über 24 Stunden.
- Aufschlüsselung nach Quelle, Verantwortlichem, Tag, Wochentag und Status.
- Trend-Charts mit Vorperioden-Vergleich.
- Drill-down in eine vorgefilterte Inbox.
- Verantwortlichen-Auswertung nur mit `leads.read_all`.
## Bisher geplantes Pattern und Zustände
- A2 mit KPI-Kit: Kacheln sowie Balken-/Linien-Charts aus dem Baukasten.
- Bei zu wenig Daten: `Noch nicht genug Anfragen für Trends`.
- Laden und Fehler über den wiederverwendbaren A7-Zustand.
## Abgleich 2026-08-20
Im finalen 20-Seiten-Flow `WF-P7 LeadListe` existiert keine Statistikseite. D-P7/R-P7 beschreiben sie weiterhin und das Backend nennt Statistik-Aggregate. Sie bleibt ein separater Ticketkandidat und blockiert den abgeschlossenen P7-Screen-Handoff nicht.
@@ -0,0 +1,61 @@
---
kind: planning-gap
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: GAP-CONTRACT
screen: Produktvertrag-Deltas
status: Separates Produkt-/Development-Folgethema
route: ""
subframe: ""
source_checked: 2026-08-20
---
# Offenes Delta — Produktvertrag versus aktueller Subframe-Flow
Subframe ist die Single Source of Truth für den gebauten UI-Stand. Diese Datei bewahrt davon abweichende Anforderungen aus D-P7, R-P7, AD-20 und der bisherigen Obsidian-Planung. Sie behauptet nicht, dass diese Punkte gebaut sind.
## Eingang
Früher verbindlich bzw. geplant, im aktuellen S02 nicht oder nicht vollständig sichtbar:
- Anfragen aus Formular, E-Mail, Anruf, manueller Anlage und Webhook live ohne Neuladen.
- Quellen-Marker, vollständiger Lead-Status, Weiterverarbeitungsfreigabe `ja/nein/unklar`, Spam-Begründung, Duplikat- und Auto-Promoted-Marker.
- Filter für nicht zugewiesen, eigene Felder und die Toggle-Chips `Spam ausblenden` sowie `Konvertierte einblenden`.
- Bulk-Aktionen für Status, Spam, Archiv und Konversion; cursor-basierte Pagination.
- Zustände für leer, Laden, Fehler und `read_own`.
Der aktuelle Eingang baut Karten-/Listenansicht, Filter/Presets, Löschen, Übernehmen und Zuweisen. Ob und wie `Übernehmen` bzw. `Zuweisen` in die Arbeitsliste überführt, ist im statischen Export nicht verdrahtet.
## Lead-Record
Früher verbindlich bzw. geplant, im aktuellen S03 nicht sichtbar:
- Quellen-Detail je Eingangstyp, etwa Formular-Submission, E-Mail-Header oder Anrufaufnahme.
- Freigabeentscheidung als Gate für die Konversion.
- Harte und weiche Kontakt-Matches mit Direktverknüpfung.
- Spam-Score mit Klartextbegründung und Re-Submission-Verlauf.
- DSGVO-Löschdatum sowie vollständige Statusfolge `new/qualified/converted/lost/spam`.
- 404-/Permission-, Lade- und Fehlerzustände.
## Konversion
Der bisherige Produktvertrag verlangt:
1. Lead → Projekt statt Lead → Deal.
2. Vorschau der zu übernehmenden Lead-Felder.
3. Ziel-Board bzw. Pipeline und Startspalte/-status auswählen.
4. Kontakt per Match übernehmen, suchen oder vorbefüllt neu anlegen.
5. Fehlende Pflichtdaten direkt im Dialog ergänzen.
6. Bulk-Variante mit gemeinsamer Zielwahl und Konfliktliste je Lead.
7. Nach Erfolg Leadstatus `converted` und Sprung zur Projekt-Detailseite.
Das aktuelle M01 zeigt stattdessen ein verlustfreies Mapping in einen Deal auf dem fest vorgegebenen Vertriebsboard und eine Checkbox zur Kontaktübernahme. Diese Differenz ist vor dem Development-Handoff zu entscheiden.
## Manuelle Anlage
Die alte Planung sah zusätzlich Verantwortlich mit Default `ich`, eine Live-Match-Prüfung während der Eingabe und das anschließende Öffnen des Details vor. Das aktuelle M02 bietet dagegen Privatperson/Firma, Projekt-/Firmenname, Kontakt, Quelle, Projekttyp, Priorität und Tags; die Dublettenentscheidung ist als nachgelagertes M03 gebaut.
## Einordnung nach dem finalen Handoff
Davids Finalisierungsanweisung vom 2026-08-20 bestätigt den aktuellen Subframe-Stand als geltenden P7-UI-Handoff. Die hier konservierten Abweichungen sind keine offenen Entscheidungen innerhalb dieses Screen-Tickets mehr. Falls sie weiterverfolgt werden, erhalten sie einen ergänzenden Flow oder ein eigenes Produkt-/Development-Ticket.
@@ -0,0 +1,34 @@
---
kind: planning-gap
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: GAP-SOURCES
screen: Quellen-Verwaltung
status: Nicht im aktuellen Subframe-Flow
route: "/admin/lead-sources"
subframe: ""
source_checked: 2026-08-20
---
# Offenes Delta — Quellen-Verwaltung
## Bisher geplantes Ziel
Steuern, woher Anfragen kommen, einschließlich fremder Websites.
## Bisher geplanter Umfang
- Quellen-Liste mit Name, Typ System/eigene Quelle, Lead-Anzahl der letzten 30 Tage und Status.
- Eigene Quelle mit Anzeige-Label, Standard-Verantwortlichem und Standard-Tags anlegen.
- Webhook-URL mit Token kopieren.
- Bearbeiten und archivieren.
## Bisher geplantes Pattern und Zustände
- A2/A6 unter Einstellungen → Arbeitsweise.
- Laden, Fehler und fehlender Zugriff über den wiederverwendbaren A7-Zustand.
## Abgleich 2026-08-20
Im finalen 20-Seiten-Flow `WF-P7 LeadListe` existiert keine Quellen-Verwaltung. D-P7/R-P7 und die bestehende Admin-Route beschreiben sie weiterhin. Sie bleibt ein separater Settings-/Ticketkandidat und blockiert den abgeschlossenen P7-Screen-Handoff nicht.
@@ -0,0 +1,20 @@
---
kind: planning-gap-index
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
status: Separate Folgethemen
source_checked: 2026-08-20
---
# P7 — Separate Folgethemen außerhalb des finalen Subframe-Flows
Diese Themen waren vor dem Subframe-Abgleich als aktuelle P7-Screens oder verbindliche Produktanforderungen geplant. Sie bleiben erhalten, damit Produkt-/Dev-Anforderungen nicht still verloren gehen.
- [[Produktvertrag-Deltas]] — Anforderungen, die vom aktuellen UI abweichen oder dort nicht sichtbar sind
- [[Lead-Statistiken]]
- [[Quellen-Verwaltung]]
- [[Spam-Schutz]]
- [[CSV-Import-Wizard]]
Sie sind keine aktuellen Tracker-Screens. Die letzten vier Themen besitzen im finalen Flow keine Seite; der ältere Produktvertrag hat mit M01 zwar ein UI-Gegenstück, weicht aber beim Zielmodell ab. Diese Punkte blockieren den abgeschlossenen D-P7-Screen-Handoff nicht und werden bei Bedarf als eigene Produkt-/Development-Tickets entschieden.
@@ -0,0 +1,35 @@
---
kind: planning-gap
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: GAP-SPAM
screen: Spam-Schutz
status: Nicht im aktuellen Subframe-Flow
route: "/admin/lead-anti-spam"
subframe: ""
source_checked: 2026-08-20
---
# Offenes Delta — Spam-Schutz
## Bisher geplantes Ziel
Spam automatisch abfangen, ohne echte Anfragen zu verlieren.
## Bisher geplanter Umfang
- Limits pro Quelle/Stunde und IP/Stunde.
- 10-facher Anstieg pausiert eine Quelle automatisch und benachrichtigt Admins.
- Schalter für IP-Sperrliste, Wegwerf-Domains, Honeypot und Absenden unter drei Sekunden.
- Quarantäne versus vollständig Spam.
- Auto-Löschfrist für verlorene Leads; Spam 30 Tage.
## Bisher geplantes Pattern und Zustände
- A6 Settings mit Toggle-Zeilen und Klartextbeschreibung je Regel.
- Laden, Fehler und fehlender Zugriff über den wiederverwendbaren A7-Zustand.
## Abgleich 2026-08-20
Im finalen 20-Seiten-Flow `WF-P7 LeadListe` existieren weder Spam-Schutz-Settings noch Spam-Score/Begründung im Lead-Record. D-P7/R-P7 und die bestehende Admin-Route beschreiben diese Funktion weiterhin. Sie bleibt ein separater Ticketkandidat und blockiert den abgeschlossenen P7-Screen-Handoff nicht.
@@ -0,0 +1,60 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: M01
screen: Konversion
subframe_name: "M01 Konversion"
subframe_page_id: "1609485c-d315-4cdf-8e41-ad1dfb0b2691"
typ: Konversionsdialog
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/1609485c-d315-4cdf-8e41-ad1dfb0b2691/edit"
source_checked: 2026-08-20
---
# M01 — Konversion
## Ziel und Rolle im Flow
Wandelt den geöffneten [[S03 Lead-Record|Lead]] in einen Deal auf dem Vertriebsboard um.
## Sichtbarer Aufbau
- Titel `In Deal umwandeln`.
- Erklärung: Thomas Klein wird als Deal auf dem Vertriebsboard angelegt.
- Abschnitt `Feld-Mapping (verlustfrei)`.
## Sichtbares Mapping
| Lead-Feld | Ziel / Beispielwert |
|---|---|
| Ansprechpartner | Thomas Klein |
| Telefon / E-Mail | 0160 5551020 · t.klein@web.de |
| Quelle | Empfehlung |
| Projekttyp | Bad-Sanierung |
| Potenzieller Wert | 25.000 € |
| Owner | zuständige Person |
| Verlauf + Notizen | Deal-Timeline |
Zusätzlich ist `Kontakt (Ansprechpartner) in den Deal übernehmen` standardmäßig aktiviert.
## Aktionen
- Abbrechen.
- `In Deal umwandeln`.
## Finaler UI-Stand und Vertragsdelta
Der finale Dialog spricht von Deal und festem Vertriebsboard; das ist der geltende P7-Screen-Handoff. D-P7/R-P7 und AD-20 beschreiben abweichend `Lead → Projekt` mit Ziel-Pipeline/Startstatus und separater Kontaktverknüpfung. Diese ältere Anforderung bleibt ein separates Produkt-/Development-Folgethema und blockiert den Screen-Handoff nicht.
## Verwendete Komponenten
`Button`, `Checkbox`, `Dialog`, `DialogLayout`; technisch echte Struktur `DialogLayout` → `Dialog.Content`.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/1609485c-d315-4cdf-8e41-ad1dfb0b2691/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -1,57 +0,0 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: M01
screen: Lead zu Projekt
typ: Modal (gross)
umsetzung: Bauen
status: Validiert
route: "aus S01/S02, nur bei Freigabe = ja"
subframe: ""
---
# M01 — Lead → Projekt ⭐
## Ziel
Der Kern-Moment der Kette: aus einer guten Anfrage wird ein Projekt — kontrolliert, mit sauberem Kontakt dran.
## Was das Tool können muss
- **Daten-Vererbungs-Vorschau**: welche Lead-Felder ins Projekt fließen (Name, Nachricht, eigene Felder …)
- **Ziel-Board + Start-Spalte wählen** (Default-Vorauswahl beim Subframe-Bau klären)
- **Kontakt separat verknüpfen**: Auto-Match-Vorschlag (gleiche E-Mail/Telefon) → bestehenden wählen ODER neu anlegen (öffnet [[M01 Kontakt anlegen]] aus P6, vorbefüllt)
- Fehlende Pflichtdaten (z. B. Name) direkt im Modal nachtragen (Mängel-Banner)
- **Bulk-Variante** (Davids Ergänzung): mehrere Leads auf einmal — gemeinsame Board-Wahl, Kontakt-Match je Lead, Konfliktliste für Leads ohne Match
## Pattern / Archetyp
A5 großes Modal (echtes Modal: DialogLayout → Dialog → Dialog.Content) mit drei Sektionen.
## Aufbau
1. **Was wird übernommen** — Vorschau der vererbten Felder
2. **Wohin** — Pipeline/Board + Start-Spalte
3. **Wer** — Kontakt (Match-Vorschlag / suchen / neu anlegen)
## Aktionen
- »Projekt erstellen« → Projekt existiert, Lead wird `converted`, Sprung zur Projekt-Detailseite (Toast mit Link)
- Abbrechen
## Meldungsentscheidung
| Ereignis | UI-Form | Blockiert? | Umsetzung | Copy/Notiz |
|---|---|---|---|---|
| Pflichtdaten fehlen | Mängel-Banner + Inline-Nachtragen | ja (Aktion) | Nur dokumentieren | z. B. fehlender Name |
| Bulk: Lead ohne Kontakt-Match | Konflikt-Zeile in Bulk-Ansicht | nein | Nur dokumentieren | einzeln nachziehen |
## Subframe
- (erst nach explizitem OK)
## Notizen
- Ersetzt das alte 4-Optionen-Promotion-Modal (Pivot AD-20). Bulk-Machbarkeit → Dev-Frage beim Handoff.
@@ -1,42 +0,0 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: M02
screen: Anfrage anlegen
typ: Modal
umsetzung: Bauen
status: Validiert
route: "aus S01 (Route /leads/new bleibt Dev-seitig)"
subframe: ""
---
# M02 — Anfrage anlegen
## Ziel
Anruf kommt rein, kein passender Kontakt — Anfrage in Sekunden erfassen.
## Was das Tool können muss
- Schnelles Erfassen: Vor-/Nachname, E-Mail, Telefon, Nachricht, Quelle (Default: manuell), Verantwortlicher (Default: ich), Tags
- **Live-Match-Check beim Tippen**: »Gibt es schon als Kontakt/Anfrage« mit Sprung-Link
## Pattern / Archetyp
A5 Dialog, gleiche Mechanik wie »Kontakt anlegen« (P6).
## Aktionen
- »Anlegen« → Anfrage erscheint in der Inbox, Detail öffnet
- Abbrechen
## Subframe
- (erst nach explizitem OK)
## Notizen
- Davids Delta: Modal statt eigener Seite (Ticket sah `/leads/new` als Seite vor — UI-Form ist Designer-Freiheit).
- D01 Inline-Anlegen (Plus → Zeile) als »Später«-Muster dokumentiert.
@@ -0,0 +1,49 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: M02-K
screen: Lead anlegen Kontakt verknuepfen
subframe_name: "M02 Lead anlegen Kontakt verknuepfen"
subframe_page_id: "75858347-70f9-4233-99f6-e72f0852ccab"
typ: Anlage-Dialog · Kontaktvariante
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/75858347-70f9-4233-99f6-e72f0852ccab/edit"
source_checked: 2026-08-20
---
# M02 — Lead anlegen · Kontakt verknüpfen
## Ziel und Rolle im Flow
Variante von [[M02 Lead anlegen]], in der für eine Firma ein bestehender Ansprechpartner gesucht und ausgewählt wird.
## Sichtbarer Zustand
- Suchfeld `Kontakt suchen (Name, Firma) …` mit Beispielsuche `Reit`.
- Treffer Klaus Reithofer, Sabine Reitz und Martin Reiter.
- Auswahlmarkierung am aktiven Treffer.
- `Nicht dabei? Neu anlegen` als Rückweg zur Neuanlage.
- Die übrigen Lead-Felder bleiben sichtbar: Projekt/Firma, Kontaktwege, Quelle, Projekttyp, Priorität und Tags.
## Aktionen
- Kontakt auswählen.
- Zu `Neu anlegen` wechseln.
- Abbrechen oder `Lead anlegen`.
## Aktuelle Abgrenzung
Der gerenderte Varianten-Screen zeigt am Segment Privatperson/Firma keinen aktiven Zustand, obwohl die Firmenfelder sichtbar sind. Development übernimmt hier den Firmenzustand aus M02 und setzt ihn visuell aktiv; dafür ist kein weiterer Screen nötig.
## Verwendete Komponenten
`Avatar`, `Button`, `Dialog`, `IconButton`, `IconWithBackground`, `Select`, `TextInput`, `ToggleGroup`, `DialogLayout`.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/75858347-70f9-4233-99f6-e72f0852ccab/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -0,0 +1,53 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: M02
screen: Lead anlegen
subframe_name: "M02 Lead anlegen"
subframe_page_id: "14a837e3-c2f7-4289-9ae4-d9427935e74f"
typ: Anlage-Dialog
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/14a837e3-c2f7-4289-9ae4-d9427935e74f/edit"
source_checked: 2026-08-20
---
# M02 — Lead anlegen
## Ziel und Rolle im Flow
Manuellen Lead aus [[S01 Arbeitsliste]] oder [[S02 Eingang Karten|Eingang]] anlegen. Die Quelle ist frei wählbar; laut Copy ist mindestens ein Kontaktweg nötig.
## Felder und Optionen
- Segment Privatperson / Firma; im gerenderten Grundscreen ist Firma aktiv.
- Projektname und Firmenname als Pflichtfelder im Firmenzustand.
- Telefon und E-Mail.
- Hinweis: mindestens eines von Telefon, Fax oder E-Mail.
- Ansprechpartner der Firma: neu anlegen oder bestehenden verknüpfen.
- Quelle: Telefon, Formular, WhatsApp, Empfehlung, Portal, LinkedIn, Persönliches Gespräch, Messe oder Andere.
- Projekttyp: Heizungstausch, Wärmepumpe, Bad-Sanierung, Wartung oder Notdienst.
- Priorität: Kritisch, Hoch, Mittel oder Niedrig.
- Tags.
## Aktionen und Varianten
- `Bestehenden verknüpfen` → [[M02 Lead anlegen Kontakt verknuepfen]].
- Eine gefundene gleiche Telefonnummer führt fachlich zu [[M03 Dubletten-Pruefung]].
- Abbrechen oder `Lead anlegen`.
## Sichtbare Inkonsistenz
Die Pflicht-Copy erlaubt Fax als Kontaktweg, der Dialog enthält aber kein Fax-Feld. Außerdem ist nicht sichtbar, ob ein manuell angelegter Lead zuerst im Eingang oder direkt in der Arbeitsliste landet.
## Verwendete Komponenten
`Button`, `Dialog`, `IconButton`, `IconWithBackground`, `Select`, `TextInput`, `ToggleGroup`, `DialogLayout`.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/14a837e3-c2f7-4289-9ae4-d9427935e74f/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -1,47 +0,0 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: M03
screen: CSV-Import
typ: Modal/Wizard
umsetzung: Bauen
status: Validiert (Davids Delta)
route: "aus S01, Importieren-Knopf"
subframe: ""
---
# M03 — CSV-Import-Wizard
## Ziel
Ganze Listen auf einmal reinholen (z. B. Messekontakte, Alt-Bestand) — mit sauberer Feld-Zuordnung statt Chaos. **Davids Delta: steht nicht im Dev-Ticket → Change-Request.**
## Was das Tool können muss
- CSV-Datei hochladen (Dropzone-Baustein aus P4)
- **Spalten-Zuordnung**: jede CSV-Spalte einem Lead-Feld zuordnen (Auto-Vorschlag bei passenden Überschriften, eigene Felder wählbar, Spalte überspringen möglich)
- **Vorschau vor dem Import**: erste Zeilen gemappt anzeigen, Fehler markieren (ungültige E-Mail, leere Pflichtwerte)
- **Duplikat-Behandlung wählen**: überspringen / trotzdem anlegen / als möglichs Duplikat markieren
- Import läuft im Hintergrund; Ergebnis-Meldung (»142 importiert, 3 übersprungen — Liste ansehen«)
## Pattern / Archetyp
A5 mehrstufiger Wizard: 1. Datei → 2. Spalten zuordnen → 3. Vorschau + Duplikat-Regel → 4. Import läuft/Ergebnis.
## Meldungsentscheidung
| Ereignis | UI-Form | Blockiert? | Umsetzung | Copy/Notiz |
|---|---|---|---|---|
| Datei nicht lesbar / falsches Format | Schritt-Fehler | ja (Schritt) | Nur dokumentieren | Klartext + Beispiel-Hinweis |
| Zeilen mit Fehlern | markierte Zeilen in Vorschau | nein | Nur dokumentieren | »werden übersprungen« |
## Subframe
- (erst nach explizitem OK)
## Notizen
- Change-Request an Dev: Import-Job serverseitig, Duplikat-Logik, Feld-Mapping. Beim Handoff formulieren.
- Gleiches Wizard-Muster ist später für Kontakt-Import wiederverwendbar (nur notiert, nicht beauftragt).
@@ -0,0 +1,49 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: M03
screen: Dubletten-Pruefung
subframe_name: "M03 Dubletten-Pruefung"
subframe_page_id: "36fb8b6a-bced-44a3-b8bd-76ae3ecf7cdd"
typ: Dubletten-Entscheidung
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/36fb8b6a-bced-44a3-b8bd-76ae3ecf7cdd/edit"
source_checked: 2026-08-20
---
# M03 — Dubletten-Prüfung
## Ziel und Rolle im Flow
Warnt bei gleicher Telefonnummer während [[M02 Lead anlegen|der Lead-Anlage]] und verlangt eine bewusste Entscheidung vor dem Zusammenführen.
## Vergleich
Zwei Karten `NEU` und `BESTAND` zeigen jeweils:
- Name.
- Telefonnummer.
- Quelle.
- Anliegen.
Im Beispiel besitzen beide Anna-Weber-Datensätze dieselbe Telefonnummer, aber unterschiedliche Quellen und Anliegen.
## Aktionen
- `Getrennt anlegen`.
- `Zusammenführen`.
Der statische Screen zeigt kein neutrales Abbrechen; die beiden Aktionen bilden die vollständige Entscheidung.
## Verwendete Komponenten
`Button`, `Dialog`, `DialogLayout`; echte Struktur `DialogLayout` → `Dialog.Content`.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/36fb8b6a-bced-44a3-b8bd-76ae3ecf7cdd/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -0,0 +1,47 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: M04
screen: Naechste Aktion
subframe_name: "M04 Naechste Aktion"
subframe_page_id: "9b3a7954-384f-42ed-9b04-934f30adbc0f"
typ: Reminder-/Aufgaben-Dialog
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/9b3a7954-384f-42ed-9b04-934f30adbc0f/edit"
source_checked: 2026-08-20
---
# M04 — Nächste Aktion
## Ziel und Rolle im Flow
Setzt einen Reminder für den aktuellen [[S03 Lead-Record|Lead]]. Die Aktion erscheint anschließend im Bereich `Anstehend`.
## Felder
- Aufgabe, Beispiel `Angebot nachfassen`.
- Notiz optional.
- Datum über Monatskalender.
- Uhrzeit über getrennte Stunden- und Minutenwahl in 5-Minuten-Schritten.
## Aktionen
- Abbrechen.
- Setzen.
## Sichtbare Inkonsistenz
Der gerenderte Screen markiert im Kalender den 20. August, zeigt daneben `Mi, 12.08.2026` und gleichzeitig `Noch kein Termin gewählt`. Development verwendet einen einzigen ausgewählten Datums-/Zeitwert und leitet alle drei Darstellungen daraus ab; dafür ist kein zusätzlicher Screen nötig.
## Verwendete Komponenten
`Button`, `Calendar`, `Dialog`, `TextInput`, `DialogLayout`.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/9b3a7954-384f-42ed-9b04-934f30adbc0f/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -0,0 +1,42 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: M05
screen: Ansicht speichern
subframe_name: "M05 Ansicht speichern"
subframe_page_id: "c011c64f-df15-42c2-b920-66f0ebea87fd"
typ: Kleiner Dialog
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/c011c64f-df15-42c2-b920-66f0ebea87fd/edit"
source_checked: 2026-08-20
---
# M05 — Ansicht speichern
## Ziel und Rolle im Flow
Speichert die aktuelle Filterkombination aus [[S02 Eingang Karten|Eingang]] als eigene benannte Ansicht.
## Inhalt
- Erklärung `Die aktuelle Filter-Kombination als eigene Ansicht sichern.`
- Feld `Name der Ansicht`.
- Platzhalter `z. B. Notfälle Region Stuttgart`.
## Aktionen
- Schließen oder Abbrechen.
- Speichern.
## Verwendete Komponenten
`Button`, `Dialog`, `IconButton`, `TextInput`, `DialogLayout`; echte Struktur `DialogLayout` → `Dialog.Content`.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/c011c64f-df15-42c2-b920-66f0ebea87fd/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -0,0 +1,52 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: M06
screen: Dialer
subframe_name: "M06 Dialer"
subframe_page_id: "dcd35b81-dce7-4257-be0d-8755adeffe8b"
typ: Schwebender Anruf-Composer
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/dcd35b81-dce7-4257-be0d-8755adeffe8b/edit"
source_checked: 2026-08-20
---
# M06 — Dialer
## Ziel und Rolle im Flow
Startet und protokolliert einen Anruf direkt aus [[S03 Lead-Record]]. Der Dialer liegt als schwebendes Panel unten rechts über dem aktuellen Kontext.
## Kopf und Kontakt
- `Anruf · Thomas Klein`.
- Einstellungen, Minimieren und Schließen.
- Ausgehende Nummer `+49 711 44 55 66`.
- Kontakt, Typ Mobil, Rufnummer, Beziehung und Ort.
## Anruf und Protokoll
- Primäraktion `Anrufen` → [[V03 Dialer Im Gespraech]].
- Reiter Tastenfeld → [[V02 Dialer Tastenfeld]] und Notiz.
- Gesprächsnotiz wird am Lead protokolliert.
- Ergebniswahl: Erreicht, Mailbox, Kein Interesse, Interesse, Interessiert in 1–3 Monaten, Schlechter Fit, Weggedrückt, Gatekeeper, falsche/alte Nummer, Kunde und Rescheduling.
- Stimmung: Positiv, Neutral oder Negativ.
- `Protokollieren & abschließen`.
- Minimieren → [[V05 Dialer kompakt]].
## QA-Hinweis
Die Ergebnisliste mischt deutsche und englische Vertriebsbegriffe. Die Taxonomie sollte vor Development-Handoff vereinheitlicht und fachlich auf den SHK-Kontext geprüft werden.
## Verwendete Komponenten
`Button`, `Select`; das Panel ist kein `Dialog` und bleibt bewusst im Arbeitskontext.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/dcd35b81-dce7-4257-be0d-8755adeffe8b/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -0,0 +1,55 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: M07
screen: E-Mail schreiben
subframe_name: "M07 E-Mail schreiben"
subframe_page_id: "9a4d7a13-73e3-412d-8beb-0c6dfcc7617c"
typ: Schwebender E-Mail-Composer
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/9a4d7a13-73e3-412d-8beb-0c6dfcc7617c/edit"
source_checked: 2026-08-20
---
# M07 — E-Mail schreiben
## Ziel und Rolle im Flow
Verfasst eine E-Mail direkt aus [[S03 Lead-Record]], ohne den Lead-Kontext zu verlassen. Der Composer liegt schwebend unten rechts.
## Kopf und Adressierung
- `E-Mail · Thomas Klein`.
- Entwurfsstatus `Entwurf gespeichert 14:57`.
- Minimieren → [[V06 E-Mail minimiert]], Vollbild → [[V07 E-Mail Vollbild]], Schließen.
- Empfänger, Cc/Bcc und Betreff.
## Editor
- Schriftfamilie und Größe.
- Textfarbe/Format, Fett, Kursiv, Unterstrichen, Durchgestrichen.
- Ausrichtung, Listen, Ein-/Ausrückung.
- Link, Bild, Anhang, Kalender, Variablen und Tabelle.
- Vorschau.
- Beispieltext mit Anrede und Signatur.
- Anhang `Angebot.pdf`.
## Versand und weitere Aktionen
- Sofort senden.
- Zeitversand: in 1 Stunde, heute 17:00, morgen 08:00, Montag 09:00 oder frei wählbar.
- Vorlagen.
- Entwurf löschen.
## Verwendete Komponenten
`Button`, `DropdownMenuSelect`, `IconButton`; schwebender Composer ohne Dialogstruktur.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/9a4d7a13-73e3-412d-8beb-0c6dfcc7617c/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -0,0 +1,49 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: M08
screen: Ansprechpartner hinzufuegen
subframe_name: "M08 Ansprechpartner hinzufuegen"
subframe_page_id: "c7949b46-6b91-47ec-b08c-959f686df55b"
typ: Kontakt-Verknüpfungsdialog
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/c7949b46-6b91-47ec-b08c-959f686df55b/edit"
source_checked: 2026-08-20
---
# M08 — Ansprechpartner hinzufügen
## Ziel und Rolle im Flow
Verknüpft im [[S03 Lead-Record]] einen bestehenden oder neuen Ansprechpartner mit der Organisation. Der Beispieldialog arbeitet für Reithofer Immobilien GmbH.
## Sichtbarer Aufbau
- Umschalter `Bestehenden verknüpfen` / `Neu anlegen`.
- Suche nach Name, Firma oder Rolle.
- Trefferliste mit Avatar, Name, Rolle und Organisation.
- Bereits verknüpfte Kontakte werden entsprechend markiert.
- Rollenwahl: Geschäftsführer, Technik, Objektbetreuung, Buchhaltung, Hausmeister, WEG-Verwaltung, Assistenz oder Sonstige.
- Option `Als Haupt-Ansprechpartner setzen`.
## Aktionen
- Schließen oder Abbrechen.
- Verknüpfen.
## Abhängigkeit
Die Kontaktanlage und -verknüpfung berührt P6 Kontakte & Organisationen. Vor Development-Handoff muss geklärt werden, ob der Dialog eine P6-Komponente wiederverwendet oder P7-spezifisch bleibt.
## Verwendete Komponenten
`Avatar`, `Button`, `Checkbox`, `Dialog`, `IconButton`, `IconWithBackground`, `Select`, `TextInput`, `ToggleGroup`, `DialogLayout`.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/c7949b46-6b91-47ec-b08c-959f686df55b/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -0,0 +1,66 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: S01
screen: Arbeitsliste
subframe_name: "S01 Arbeitsliste"
subframe_page_id: "ae41c6ea-d1b0-4656-9a5c-55f64343962a"
typ: Priorisierte Lead-Liste
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/ae41c6ea-d1b0-4656-9a5c-55f64343962a/edit"
source_checked: 2026-08-20
---
# S01 — Arbeitsliste
## Ziel und Rolle im Flow
Die Arbeitsliste zeigt alle Leads mit aktiver Fälligkeit und priorisiert den nächsten Handlungsbedarf. Sie ist vom ungeprüften [[S02 Eingang Karten|Eingang]] getrennt.
## Kopf und Steuerung
- Titel `Leads` mit Unterzeile `Alles mit aktiver Fälligkeit, priorisiert`.
- `Abarbeiten` öffnet [[V01 Abarbeiten-Modus]].
- `Lead anlegen` öffnet [[M02 Lead anlegen]].
- FilterBar mit Freitextsuche und den aktiven Filtern Status, Tags, Verantwortlich und Zeitraum. Der gerenderte Finalstand zeigt unter anderem `Marketing`, fünf Verantwortliche und `01.08. – 20.08.`.
- Presets: Heute, Diese Woche, Alle offenen und Meine Projekte; zusätzlich Preset speichern und Filter zurücksetzen.
- Filterwerte: Status Offen/In Bearbeitung/Pausiert/Verloren sowie Tags Design/Entwicklung/Vertrieb/Support.
- Gruppierung nach Fälligkeit, Zuständig, Anfragenart, Kundentyp oder ohne Gruppierung.
## Sichtbare Daten
- Spalten: Lead, Anfragenart, Priorität, Nächste Aktion, Zuständig und Wert.
- Lead-Zelle: Name/Firma plus kurze Anliegenbeschreibung.
- Priorität: vierstufige Balkenanzeige plus Badge Kritisch/Hoch/Mittel/Niedrig.
- Nächste Aktion: konkrete Handlung oder Inaktivität inklusive Fälligkeit.
- Owner: Avatar und Kurzname; Wert als Euro-Kompaktwert.
## Gebaute Gruppen
- Überfällig.
- Neu · unbearbeitet.
- Rückruf zugesagt.
- Heute fällig.
- Droht kalt zu werden.
Die Beispieldaten decken Störung, Heizungstausch, Wartungsvertrag, Bad-Sanierung, Fußbodenheizung und Wärmepumpe ab.
## Aktionen und Beziehungen
- Zeile öffnen → [[S03 Lead-Record]].
- Checkboxen erlauben Auswahl. Ein zugehöriger Mehrfachaktionszustand ist im aktuellen Screen noch nicht gebaut.
- `Abarbeiten` → [[V01 Abarbeiten-Modus]].
- `Lead anlegen` → [[M02 Lead anlegen]].
## Verwendete Komponenten
`Avatar`, `AvatarGroup`, `Badge`, `BadgeFeedback`, `Button`, `Checkbox`, `DropdownMenuMultiSelect`, `FilterBar`, `Tag_Label`, `ToggleGroup`.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/ae41c6ea-d1b0-4656-9a5c-55f64343962a/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -1,61 +0,0 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: S01
screen: Lead-Inbox
typ: Triage-Liste
umsetzung: Bauen
status: Validiert
route: "/leads"
subframe: ""
---
# S01 — Lead-Inbox
## Ziel
Keine Anfrage verlieren: alles Eingehende an einem Ort, in Sekunden sortiert.
## Was das Tool können muss
- Anfragen aus **allen Quellen** automatisch empfangen (Formular, E-Mail, Anruf, manuell, Webhook) — live, ohne Neuladen
- Triage direkt in der Zeile: zuweisen, Status wechseln, **Zu Projekt machen**, als Spam markieren
- Mehrfachauswahl mit Massenbearbeitung (zuweisen/Status/Spam/Archiv) **inkl. Massen-Konvertierung** (Davids Ergänzung)
- Spam-Schutz sichtbar machen (Marker mit Begründung), ohne die Liste zu verstopfen
## Pattern / Archetyp
A2 Liste mit Triage-Akzenten, Tabelle/Karten-Umschalter, cursor-paginiert.
## Daten
- Zeile: Identität (Name, sonst E-Mail/Telefon, sonst Quelle+Datum) · Quellen-Marker · Status · Freigabe (ja/nein/unklar) · Verantwortlicher · Eingegangen (relativ < 7 T) · 80-Zeichen-Nachrichten-Vorschau
- Marker: »Mögliches Duplikat« · »Spam-Verdacht« · »Auto-promoviert«
- Filter: Status (Default new+qualified), Quelle, Verantwortlicher (inkl. »nicht zugewiesen«), Zeitraum, Tags, eigene Felder
- Toggle-Chips: **»Spam ausblenden« (Default an)** · **»Konvertierte einblenden« (Default aus)**
## Aktionen
- Zeile öffnen → [[S02 Lead-Detail]]
- Inline: Zuweisen · Status · **»Zu Projekt«** → [[M01 Lead zu Projekt]] · Spam
- Bulk: Zuweisen/Status/Spam/Archiv + **Bulk »Zu Projekt«** (M01 in Bulk-Variante)
- »+ Anfrage« → [[M02 Anfrage anlegen]] · »Importieren« → [[M03 CSV-Import]]
- »Statistiken« → [[S03 Lead-Statistiken]]
## Zustände
| Zustand | Beschreibung | Umsetzung |
|---|---|---|
| Leer | »Keine neuen Anfragen« | Nur dokumentieren |
| Laden / Fehler | A7 | Wiederverwenden |
| `read_own` | nur eigene sichtbar (server-seitig) | Wiederverwenden |
## Subframe
- (erst nach explizitem OK)
## Notizen
- D01 Inline-Anlegen (Plus → Zeile mit Pflichtfeldern) — gemeinsames »Später«-Muster mit P6.
@@ -0,0 +1,59 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: S02-K
screen: Eingang Karten
subframe_name: "S02 Eingang Karten"
subframe_page_id: "165bfa17-8792-4616-bfb6-d064bc7352a8"
typ: Triage · Kartenansicht
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/165bfa17-8792-4616-bfb6-d064bc7352a8/edit"
source_checked: 2026-08-20
---
# S02 — Eingang Karten
## Ziel und Rolle im Flow
Neue Anfragen zuerst sichten und zuteilen, bevor sie in die [[S01 Arbeitsliste|Arbeitsliste]] wandern. Diese Seite ist die großzügigere Kartenvariante von [[S02 Eingang Liste]].
## Filter und Presets
- Freitextsuche.
- Sichtbare Filter: Dringlichkeit, Anfragenart, Region und Kanal.
- Weitere Filter: Status, Tags, Verantwortlich, Zeitraum, Priorität und Erstellt am.
- Presets: Heute, Diese Woche, Alle offenen und Meine Projekte.
- Aktionen: Preset speichern → [[M05 Ansicht speichern]]; Filter zurücksetzen.
## Daten je Karte
- Auswahl-Checkbox und Prioritätsbadge.
- Name, Kanal und Kurzbeschreibung.
- Potenzieller Wert, Region, Telefonnummer, Anfragenart und Eingangszeit.
- Vorschlag für die zuständige Person mit Begründung, etwa bereits zugewiesen oder passende Region.
Die aktuelle Beispielansicht zeigt Anna Weber, Laura Neumann und Jonas Krüger mit Telefon- bzw. WhatsApp-Anfragen.
## Aktionen
- `Lead anlegen` → [[M02 Lead anlegen]].
- `Übernehmen`, `Zuweisen`, `Öffnen` → bei Öffnen [[S03 Lead-Record]].
- `Verwerfen` → [[V08 Verwerfen bestaetigen]].
- Mehrfachauswahl: Löschen, Übernehmen und Zuweisen.
## Finale Handoff-Logik
`Übernehmen` weist den Lead der handelnden Person zu, `Zuweisen` einer gewählten Person; beide führen aus dem Eingang in [[S01 Arbeitsliste]]. Die exportierten Handler sind technisch leer, diese Logik ist deshalb von Development zu verdrahten.
## Verwendete Komponenten
`Avatar`, `Badge`, `BadgeFeedback`, `Button`, `Checkbox`, `DropdownMenuMultiSelect`, `DropdownMenuSelect`, `FilterBar`.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/165bfa17-8792-4616-bfb6-d064bc7352a8/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -0,0 +1,56 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: S02-L
screen: Eingang Liste
subframe_name: "S02 Eingang Liste"
subframe_page_id: "24d7b73c-39f4-4c74-adf4-8493861adb68"
typ: Triage · Listenansicht
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/24d7b73c-39f4-4c74-adf4-8493861adb68/edit"
source_checked: 2026-08-20
---
# S02 — Eingang Liste
## Ziel und Rolle im Flow
Kompakte Listenvariante des [[S02 Eingang Karten|Eingangs]]. Neue Anfragen werden gesichtet und zugeteilt, bevor sie in [[S01 Arbeitsliste]] weiterlaufen.
## Filter und Presets
- Freitextsuche sowie Dringlichkeit, Anfragenart, Region und Kanal.
- Weitere Filter: Status, Tags, Verantwortlich, Zeitraum, Priorität und Erstellt am.
- Presets: Heute, Diese Woche, Alle offenen und Meine Projekte.
- Preset speichern → [[M05 Ansicht speichern]]; Filter zurücksetzen.
## Tabellenstruktur
- Spalten: Priorität, Lead, Anfragenart, Wert, Vorschlag und Aktionen.
- Gruppen im gebauten Beispiel: Kritisch und Niedrig.
- Zeile: Prioritätsbadge, Name, Kurzbeschreibung, Anfragenart, potenzieller Wert und vorgeschlagene zuständige Person.
## Aktionen
- `Lead anlegen` → [[M02 Lead anlegen]].
- Pro Zeile: Übernehmen oder Zuweisen, alternativen Mitarbeiter wählen, Öffnen, Zuweisen und Verwerfen.
- `Öffnen` → [[S03 Lead-Record]].
- `Verwerfen` → [[V08 Verwerfen bestaetigen]].
- Mehrfachauswahl: Löschen, Übernehmen und Zuweisen.
## Aktuelle Abgrenzung
Der Flow enthält Karten- und Listenansicht als zwei gebaute Darstellungsvarianten, zeigt aber keinen eigenen Umschalter zwischen beiden. Development integriert beide Ansichten in denselben Eingangskontext; die konkrete Umschaltmechanik ist keine zusätzliche P7-Seite.
## Verwendete Komponenten
`Avatar`, `BadgeFeedback`, `Button`, `Checkbox`, `DropdownMenuMultiSelect`, `DropdownMenuSelect`, `FilterBar`, `IconButton`.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/24d7b73c-39f4-4c74-adf4-8493861adb68/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -1,54 +0,0 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: S02
screen: Lead-Detail
typ: Detail
umsetzung: Bauen
status: Validiert
route: "/leads/:id"
subframe: ""
---
# S02 — Lead-Detail
## Ziel
Eine Anfrage komplett verstehen und entscheiden: weiterverarbeiten, ablehnen oder Spam.
## Was das Tool können muss
- **Herkunft transparent machen**: welches Formular (mit Submission), welcher E-Mail-Header, welcher Anruf (mit Aufnahme-Link)
- **Freigabe-Entscheidung** festhalten (ja/nein/unklar) — bei »ja« wird »Zu Projekt« möglich
- **Match-Hinweise**: existierende Kontakte mit gleicher E-Mail/Telefon (harte Treffer) oder ähnlichem Namen (weiche) — mit Direktsprung
- Spam-Score mit Klartext-Begründung; Re-Submission-Verlauf (gleiche Person hat mehrfach angefragt)
## Pattern / Archetyp
A3 Detail — gleiches Grundgerüst wie die Kontakt-Karteikarte (Zweispalter + Reiter).
## Daten
- Kopf: Identität, Status, Freigabe-Schalter, Quellen-Marker · Triage-Quick-Actions (Annehmen / Antworten / Anrufen / Notiz / Aufgabe / Termin)
- Links: Stammdaten inline editierbar · eigene Felder · Match-Hinweise · DSGVO-Lösch-Countdown
- Rechts, Reiter: Übersicht/Nachricht · Konversation · Verlauf (Activity)
## Aktionen
- **»Zu Projekt«** → [[M01 Lead zu Projekt]] (nur bei Freigabe = ja; sonst Hinweis)
- Status wechseln (new/qualified/converted/lost/spam) · zuweisen
- Match-Hinweis → Kontakt-Karteikarte öffnen oder direkt verknüpfen
## Zustände
| Zustand | Beschreibung | Umsetzung |
|---|---|---|
| DSGVO-Countdown | »Wird am [Datum] automatisch gelöscht« | Nur dokumentieren |
| Nicht gefunden / kein Recht | 404 | Wiederverwenden |
| Laden / Fehler | A7 | Wiederverwenden |
## Subframe
- (erst nach explizitem OK)
@@ -0,0 +1,73 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: S03
screen: Lead-Record
subframe_name: "S03 Lead-Record"
subframe_page_id: "6c173984-ea71-4d85-b53e-ebc397b3c821"
typ: Lead-Detail / Record
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/6c173984-ea71-4d85-b53e-ebc397b3c821/edit"
source_checked: 2026-08-20
---
# S03 — Lead-Record
## Ziel und Rolle im Flow
Zentrale Arbeitsansicht für einen einzelnen Lead. Sie bündelt Stammdaten, Kommunikationsverlauf, anstehende Aufgaben, Lead-Metadaten und Ansprechpartner.
## Kopf
- Breadcrumb `Leads › Thomas Klein`.
- Initialen, Name, Status `Rückruf zugesagt`, Hinweis `zeitkritisch` sowie `Eigentümer · Leonberg`.
- Inline bearbeitbare Anfragenart, im Beispiel `Bad-Sanierung`.
- Primäraktion `Qualifiziert zu Deal` → [[M01 Konversion]].
## Schnellaktionen
- Anrufen → [[M06 Dialer]].
- WhatsApp.
- Mail → [[M07 E-Mail schreiben]].
- Task bzw. Aufgabe/Reminder → [[M04 Naechste Aktion]].
- Datei.
## Kontakt und Objekt
- Ansprechpartner, Beziehung, Telefon, E-Mail.
- Straße, Hausnummer, PLZ, Ort und Region.
- Die Felder sind als borderless `TextInput` direkt bearbeitbar angelegt.
## Statistik
Zähler für E-Mails, Anrufe, WhatsApp, Notizen und Aufgaben.
## Anstehend und Verlauf
- Anstehende Aufgabe mit Titel, Kontext, Fälligkeit sowie Erledigen/Verwerfen.
- Schnellerfassung für Notiz, E-Mail, Anruf und WhatsApp.
- Chronologischer Verlauf mit Antwort, Notiz, gesendetem Angebot, Telefonat und Lead-Erfassung.
- Verlaufseinträge besitzen Bearbeiten- und Löschen-Aktionen.
## Lead-Details
- Status, Owner, potenzieller Wert, Priorität, Quelle, nächste Aktion, Engagement und Erfasst.
- Tags mit `Tag hinzufügen …`; im Beispiel Heiß und Großauftrag.
- Ansprechpartner-Liste mit Hauptkontakt-Markierung und Hinzufügen → [[M08 Ansprechpartner hinzufuegen]].
## Sichtbarer Datenkonflikt
Der Hauptdatensatz zeigt Thomas Klein als privaten Eigentümer in Leonberg. Die rechte Ansprechpartner-Liste enthält gleichzeitig Andreas Reithofer und Julia Wenger von Reithofer Immobilien GmbH. Development verwendet für Test-/Seed-Daten einen konsistenten Lead und passende Ansprechpartner; die UI-Struktur selbst bleibt unverändert.
## Verwendete Komponenten
`Avatar`, `BadgeFeedback`, `Button`, `DropdownMenuSelect`, `IconButton`, `MultiSelectTags`, `Tag_Label`, `TextInput`, `Tooltip`.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/6c173984-ea71-4d85-b53e-ebc397b3c821/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -1,45 +0,0 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: S03
screen: Lead-Statistiken
typ: KPI-Seite
umsetzung: Bauen
status: Validiert
route: "/leads/statistics"
subframe: ""
---
# S03 — Lead-Statistiken
## Ziel
Der Chef sieht: Woher kommen Anfragen, wie schnell reagieren wir, was wird daraus?
## Was das Tool können muss
- KPI-Kacheln: Eingegangen · Umwandlung Lead→Projekt · Lead→Gewonnen · Reaktionszeit · Spam-Quote · offene Anfragen > 24 h
- Aufschlüsselung nach Quelle / Verantwortlichem / Tag / Wochentag / Status
- Trend-Charts mit Vergleich zur Vorperiode (Zeitraum-Wahl + Vergleichs-Schalter)
- **Drill-Down**: Klick auf eine Zahl → vorgefilterte Inbox
## Pattern / Archetyp
A2 + KPI-Kit (Kacheln, Balken-/Linien-Charts aus dem Baukasten).
## Zustände
| Zustand | Beschreibung | Umsetzung |
|---|---|---|
| Zu wenig Daten | »Noch nicht genug Anfragen für Trends« | Nur dokumentieren |
| Laden / Fehler | A7 | Wiederverwenden |
## Permissions / Gates
Aufschlüsselung nach Verantwortlichem nur mit `leads.read_all`.
## Subframe
- (erst nach explizitem OK)
@@ -1,40 +0,0 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: S04
screen: Quellen-Verwaltung
typ: Settings-Liste
umsetzung: Bauen
status: Validiert
route: "/admin/lead-sources (Einstellungen -> Arbeitsweise)"
subframe: ""
---
# S04 — Quellen-Verwaltung
## Ziel
Steuern, woher Anfragen kommen — inkl. Anschluss fremder Websites.
## Was das Tool können muss
- Quellen-Liste: Name · Typ (System/eigene) · Anfragen der letzten 30 Tage · Status
- Eigene Quelle anlegen (Name, Anzeige-Label, optional Standard-Verantwortlicher + Standard-Tags)
- **Webhook-URL mit Token** je Quelle (Kopier-Knopf) — damit Fremd-Websites Anfragen direkt einliefern
- Bearbeiten / Archivieren
## Pattern / Archetyp
A2/A6 unter Einstellungen → Arbeitsweise.
## Zustände
| Zustand | Beschreibung | Umsetzung |
|---|---|---|
| Laden / Fehler / kein Zugriff | A7 | Wiederverwenden |
## Subframe
- (erst nach explizitem OK)
@@ -1,41 +0,0 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: S05
screen: Spam-Schutz
typ: Settings
umsetzung: Bauen
status: Validiert
route: "/admin/lead-anti-spam (Einstellungen -> Arbeitsweise)"
subframe: ""
---
# S05 — Spam-Schutz
## Ziel
Spam automatisch abfangen, ohne echte Anfragen zu verlieren — alles in Klartext einstellbar.
## Was das Tool können muss
- **Limits**: max. Anfragen pro Quelle/Stunde und pro IP/Stunde
- **Anomalie-Erkennung**: 10-facher Anstieg → Quelle pausiert automatisch (mit Benachrichtigung)
- **Auto-Spam-Regeln als Schalter**: IP-Sperrliste · Wegwerf-E-Mail-Domains · Honeypot-Feld · Absenden unter 3 Sekunden
- **Modus**: Quarantäne (landet markiert in der Inbox) vs. vollständig Spam (ausgeblendet)
- Auto-Lösch-Frist für verlorene Anfragen (0 = nie); Spam fix 30 Tage
## Pattern / Archetyp
A6 Settings mit Toggle-Zeilen (je Regel Klartext-Beschreibung).
## Zustände
| Zustand | Beschreibung | Umsetzung |
|---|---|---|
| Laden / Fehler / kein Zugriff | A7 | Wiederverwenden |
## Subframe
- (erst nach explizitem OK)
@@ -0,0 +1,43 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: V01
screen: Abarbeiten-Modus
subframe_name: "V01 Abarbeiten-Modus"
subframe_page_id: "f2451766-d918-49b2-8c77-913e4817d31a"
typ: Arbeitsmodus / Overlay
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/f2451766-d918-49b2-8c77-913e4817d31a/edit"
source_checked: 2026-08-20
---
# V01 — Abarbeiten-Modus
## Ziel und Rolle im Flow
Sequenzieller Bearbeitungsmodus aus [[S01 Arbeitsliste]]. Die Leiste zeigt Fortschritt und Aktionen für den aktuell geöffneten Lead.
## Sichtbarer Aufbau
- Moduslabel `Abarbeiten`.
- Fortschritt `3 / 12` plus Fortschrittsbalken.
- `Überspringen`.
- `Erledigt` mit Weiter-Pfeil.
- Schließen.
## Finale Handoff-Logik
Die gebaute Subframe-Seite enthält nur die obere Leiste. Development legt V01 über den aktiven [[S03 Lead-Record|Lead-Record]]; `Erledigt` und `Überspringen` wechseln jeweils zum nächsten Lead der aktuellen gefilterten Arbeitsliste.
## Verwendete Komponenten
`Button`, `IconButton`.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/f2451766-d918-49b2-8c77-913e4817d31a/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -0,0 +1,40 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: V02
screen: Dialer Tastenfeld
subframe_name: "V02 Dialer Tastenfeld"
subframe_page_id: "8960b4b1-cecb-4050-a322-2e8e0b30f0ad"
typ: Dialer-Variante
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/8960b4b1-cecb-4050-a322-2e8e0b30f0ad/edit"
source_checked: 2026-08-20
---
# V02 — Dialer Tastenfeld
## Ziel und Rolle im Flow
Tastenfeld-Variante von [[M06 Dialer]] für DTMF- oder abweichende Nummerneingabe.
## Sichtbarer Zustand
- Kontakt- und Anrufkopf bleiben erhalten.
- Reiter Tastenfeld ist aktiv.
- Eingabeanzeige `Nummer eingeben`.
- Ziffern 0–9 mit Buchstaben, Stern und Raute.
- Löschen und Übernehmen.
- Untere Aktion `Protokollieren & abschließen` bleibt sichtbar.
## Verwendete Komponenten
`Button`; schwebendes Panel ohne Dialogstruktur.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/8960b4b1-cecb-4050-a322-2e8e0b30f0ad/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -0,0 +1,39 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: V03
screen: Dialer Im Gespraech
subframe_name: "V03 Dialer Im Gespraech"
subframe_page_id: "b81072df-5ffd-45b9-959e-166a830807e6"
typ: Dialer-Variante · aktiver Anruf
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/b81072df-5ffd-45b9-959e-166a830807e6/edit"
source_checked: 2026-08-20
---
# V03 — Dialer im Gespräch
## Ziel und Rolle im Flow
Aktiver Gesprächszustand nach `Anrufen` in [[M06 Dialer]].
## Sichtbarer Zustand
- Status `Im Gespräch` und laufende Dauer, im Beispiel 02:14.
- Auflegen und Stummschalten.
- Tastenfeld- und Notiz-Reiter bleiben erreichbar.
- Gesprächsnotiz, Ergebnis und Stimmung können während des Gesprächs gepflegt werden.
- `Protokollieren & abschließen` bleibt als Abschlussaktion sichtbar.
## Verwendete Komponenten
`Button`, `Select`; schwebendes Panel ohne Dialogstruktur.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/b81072df-5ffd-45b9-959e-166a830807e6/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -0,0 +1,40 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: V05
screen: Dialer kompakt
subframe_name: "V05 Dialer kompakt"
subframe_page_id: "b9ea58a5-7e98-435f-8a5b-e696cbc2709b"
typ: Dialer-Variante · kompakt
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/b9ea58a5-7e98-435f-8a5b-e696cbc2709b/edit"
source_checked: 2026-08-20
---
# V05 — Dialer kompakt
## Ziel und Rolle im Flow
Minimierte Variante von [[M06 Dialer]], damit der Nutzer im übrigen Lead-Kontext weiterarbeiten kann.
## Sichtbarer Zustand
- Titel `Anruf · Thomas Klein`.
- Einstellungen, Maximieren und Schließen.
- Ausgehende Nummer, Kontakt, Mobil-Badge, Rufnummer, Beziehung und Ort.
- Primäraktion `Anrufen`.
Notiz, Ergebnis und Protokollierung werden im kompakten Zustand ausgeblendet und kehren beim Maximieren zurück.
## Verwendete Komponenten
`Button`; schwebendes Panel ohne Dialogstruktur.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/b9ea58a5-7e98-435f-8a5b-e696cbc2709b/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -0,0 +1,36 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: V06
screen: E-Mail minimiert
subframe_name: "V06 E-Mail minimiert"
subframe_page_id: "25f763a3-8146-4330-97a5-394510ac0b17"
typ: E-Mail-Composer · minimiert
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/25f763a3-8146-4330-97a5-394510ac0b17/edit"
source_checked: 2026-08-20
---
# V06 — E-Mail minimiert
## Ziel und Rolle im Flow
Minimiert [[M07 E-Mail schreiben]], ohne den Entwurf zu schließen.
## Sichtbarer Zustand
- Titel und Leadbezug.
- Empfängeradresse.
- Betreff beziehungsweise `(Kein Betreff)`.
- Maximieren und Schließen.
Editor, Anhänge und Versandaktionen sind im minimierten Zustand verborgen.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/25f763a3-8146-4330-97a5-394510ac0b17/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -0,0 +1,38 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: V07
screen: E-Mail Vollbild
subframe_name: "V07 E-Mail Vollbild"
subframe_page_id: "20deb403-a0a8-48aa-944b-65a7c464fa7b"
typ: E-Mail-Composer · Vollbild
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/20deb403-a0a8-48aa-944b-65a7c464fa7b/edit"
source_checked: 2026-08-20
---
# V07 — E-Mail Vollbild
## Ziel und Rolle im Flow
Vollbildvariante von [[M07 E-Mail schreiben]] für längere E-Mails und konzentriertes Arbeiten.
## Sichtbarer Zustand
- Gleiche Adressierung, Editorwerkzeuge, Anhang, Vorlagen und Versandoptionen wie M07.
- Breite Schreibfläche über fast die gesamte Seite.
- Entwurfsstatus bleibt sichtbar.
- Minimieren, auf die normale Größe zurückkehren und Schließen.
## Verwendete Komponenten
`Button`, `DropdownMenuSelect`, `IconButton`; Vollbild-Composer ohne Dialogstruktur.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/20deb403-a0a8-48aa-944b-65a7c464fa7b/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -0,0 +1,46 @@
---
kind: screen
project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
id: V08
screen: Verwerfen bestaetigen
subframe_name: "V08 Verwerfen bestaetigen"
subframe_page_id: "ecc9c8b6-ab3a-4dc3-82d2-6f98f2829344"
typ: Destruktiver Bestätigungsdialog
umsetzung: Bauen
status: Fertig / Development-Handoff
route: ""
subframe: "https://app.subframe.com/f023064a5ca0/design/ecc9c8b6-ab3a-4dc3-82d2-6f98f2829344/edit"
source_checked: 2026-08-20
---
# V08 — Verwerfen bestätigen
## Ziel und Rolle im Flow
Bestätigt das irreversible Entfernen eines Leads aus [[S02 Eingang Karten|dem Eingang]].
## Copy
- Titel `Lead wirklich verwerfen?`.
- Der Lead wird aus dem Eingang entfernt und landet nicht in der Arbeitsliste.
- Die Aktion kann laut Screen nicht rückgängig gemacht werden.
## Aktionen
- Schließen oder Abbrechen.
- Destruktiv `Verwerfen`.
## Development-Hinweis
Für den finalen UI-Handoff entfernt `Verwerfen` den Lead irreversibel aus dem Eingang und führt nicht in die Arbeitsliste. Die technische Speicherung bzw. gesetzliche Aufbewahrung kann intern über Status/Soft-Delete erfolgen, darf die im Screen kommunizierte Nutzerwirkung aber nicht widersprechen.
## Verwendete Komponenten
`Button`, `Dialog`, `IconButton`, `IconWithBackground`, `DialogLayout`; echte Struktur `DialogLayout` → `Dialog.Content`.
## Subframe
- [Screen direkt öffnen](https://app.subframe.com/f023064a5ca0/design/ecc9c8b6-ab3a-4dc3-82d2-6f98f2829344/edit)
- [P7-Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
@@ -1,38 +1,72 @@
{
"nodes":[
{"id":"md-paket","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/WF-P7 Leads.md","x":-80,"y":-440,"width":460,"height":280},
{"id":"group-triage","type":"group","x":-80,"y":-100,"width":1820,"height":380,"label":"Triage"},
{"id":"group-stats","type":"group","x":1880,"y":-100,"width":540,"height":380,"label":"Auswertung"},
{"id":"group-aktionen","type":"group","x":-80,"y":460,"width":1780,"height":380,"label":"Konvertieren, Anlegen, Import"},
{"id":"group-settings","type":"group","x":1880,"y":460,"width":1080,"height":380,"label":"Einstellungen → Arbeitsweise"},
{"id":"note-entry","type":"text","text":"# Einstieg\n\nSidebar → Leads (`/leads`).\n\nAlle Quellen landen hier automatisch: Formular, E-Mail, Anruf, Webhook, manuell.","x":0,"y":0,"width":360,"height":200},
{"id":"s01","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/S01 Lead-Inbox.md","x":560,"y":0,"width":420,"height":200},
{"id":"s02","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/S02 Lead-Detail.md","x":1240,"y":0,"width":420,"height":200},
{"id":"s03","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/S03 Lead-Statistiken.md","x":1920,"y":0,"width":420,"height":200},
{"id":"m02","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/M02 Anfrage anlegen.md","x":40,"y":560,"width":420,"height":200},
{"id":"m01","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/M01 Lead zu Projekt.md","x":620,"y":560,"width":420,"height":200},
{"id":"m03","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/M03 CSV-Import.md","x":1200,"y":560,"width":420,"height":200},
{"id":"s04","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/S04 Quellen-Verwaltung.md","x":1920,"y":560,"width":420,"height":200},
{"id":"s05","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/S05 Spam-Schutz.md","x":2500,"y":560,"width":420,"height":200}
],
"edges":[
{
"id":"e-entry",
"fromNode":"note-entry",
"fromSide":"right",
"toNode":"s01",
"toSide":"left",
"toEnd":"arrow",
"styleAttributes":{"path":"dotted"}
},
{"id":"e-open","fromNode":"s01","fromSide":"right","toNode":"s02","toSide":"left","toEnd":"arrow","label":"Anfrage öffnen"},
{"id":"e-stats","fromNode":"s01","fromSide":"top","toNode":"s03","toSide":"top","toEnd":"arrow","label":"Statistiken · Drill-Down zurück in gefilterte Inbox"},
{"id":"e-convert","fromNode":"s02","fromSide":"bottom","toNode":"m01","toSide":"top","toEnd":"arrow","label":"Zu Projekt (Freigabe = ja; aus S01 auch als Bulk)"},
{"id":"e-new","fromNode":"s01","fromSide":"bottom","toNode":"m02","toSide":"top","toEnd":"arrow","label":"+ Anfrage"},
{"id":"e-import","fromNode":"s01","fromSide":"bottom","toNode":"m03","toSide":"top","toEnd":"arrow","label":"Importieren (CSV)"}
],
"metadata":{
"version":"1.0-1.0",
"frontmatter":{}
}
}
"nodes": [
{"id":"a100000000000001","type":"group","x":0,"y":0,"width":2300,"height":1600,"color":"4","label":"1 · Eingang, Arbeitsliste und Lead-Record"},
{"id":"a100000000000002","type":"group","x":2400,"y":0,"width":2200,"height":1600,"color":"5","label":"2 · Anlage, Konversion und Record-Aktionen"},
{"id":"a100000000000003","type":"group","x":0,"y":1800,"width":2300,"height":820,"color":"6","label":"3 · Telefon"},
{"id":"a100000000000004","type":"group","x":2400,"y":1800,"width":2200,"height":820,"color":"6","label":"4 · E-Mail"},
{"id":"a100000000000005","type":"group","x":4800,"y":0,"width":1120,"height":1600,"color":"3","label":"5 · Dokumentierte Development-Folgethemen"},
{"id":"b100000000000001","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/WF-P7 Leads.md","x":0,"y":-520,"width":420,"height":260},
{"id":"b100000000000002","type":"text","text":"# Fertig / Development-Handoff\n\n**Finaler Abgleich:** 2026-08-20 · 20/20 Seiten inklusive JSX gelesen; alle zuletzt geänderten Hauptseiten und Dialogvarianten gerendert. S01 besitzt eine neue UUID.\n\n**Kanten:** sichtbare Controls plus final dokumentierte Handoff-Logik. Die exportierten `onClick`-Handler bleiben technisch leer.\n\n**Farben:** Grün = Hauptfluss · Cyan = Record/Aktionen · Violett = Kommunikation · Gelb = Folgethemen.","x":520,"y":-520,"width":1000,"height":300},
{"id":"b100000000000003","type":"text","text":"# Finaler UI-Stand\n\nSubframe zeigt **Lead → Deal** auf dem festen Vertriebsboard; das ist der geltende P7-Screen-Handoff. Frühere Anforderungen zu Projekt-Konversion, Freigabe, Zielwahl, Anti-Spam, Statistik und Quellenverwaltung bleiben dokumentierte Folgethemen.\n\nDetails und QA-Hinweise stehen im Paket-MD, Abschnitt 6. Subframe wurde nicht verändert.","x":1620,"y":-520,"width":980,"height":300,"color":"1"},
{"id":"b100000000000004","type":"text","text":"# Einstieg\n\nNavigation **Leads**.\n\nNeue Anfragen starten im Eingang. **Übernehmen** weist der handelnden Person zu, **Zuweisen** einer gewählten Person; beide führen in die priorisierte Arbeitsliste.","x":80,"y":160,"width":400,"height":220},
{"id":"b100000000000005","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/S02 Eingang Karten.md","x":560,"y":160,"width":420,"height":220},
{"id":"b100000000000006","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/S02 Eingang Liste.md","x":560,"y":540,"width":420,"height":220},
{"id":"b100000000000007","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/S01 Arbeitsliste.md","x":1200,"y":160,"width":420,"height":220},
{"id":"b100000000000008","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/S03 Lead-Record.md","x":1700,"y":540,"width":440,"height":240},
{"id":"b100000000000009","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/V01 Abarbeiten-Modus.md","x":1200,"y":920,"width":420,"height":220,"color":"3"},
{"id":"b10000000000000a","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/M05 Ansicht speichern.md","x":560,"y":920,"width":420,"height":220,"color":"6"},
{"id":"b10000000000000b","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/V08 Verwerfen bestaetigen.md","x":1700,"y":920,"width":420,"height":220,"color":"1"},
{"id":"b10000000000000c","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/M02 Lead anlegen.md","x":2500,"y":160,"width":420,"height":220,"color":"6"},
{"id":"b10000000000000d","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/M02 Lead anlegen Kontakt verknuepfen.md","x":3100,"y":160,"width":420,"height":220,"color":"6"},
{"id":"b10000000000000e","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/M03 Dubletten-Pruefung.md","x":3740,"y":160,"width":420,"height":220,"color":"6"},
{"id":"b10000000000000f","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/M01 Konversion.md","x":2500,"y":560,"width":420,"height":220,"color":"6"},
{"id":"b100000000000010","type":"text","text":"# Finales Outcome\n\nM01 legt einen **Deal auf dem Vertriebsboard** an. Das ist der geltende P7-Screen-Handoff.\n\nDie ältere Projekt-Konversion aus AD-20 / D-P7 / R-P7 bleibt ein separates Vertragsdelta.","x":3100,"y":560,"width":420,"height":220,"color":"1"},
{"id":"b100000000000011","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/M04 Naechste Aktion.md","x":2500,"y":920,"width":420,"height":220,"color":"6"},
{"id":"b100000000000012","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/M08 Ansprechpartner hinzufuegen.md","x":3100,"y":920,"width":420,"height":220,"color":"6"},
{"id":"b100000000000013","type":"text","text":"# Record-Abhängigkeiten\n\nS03 öffnet Konversion, nächste Aktion, Dialer, E-Mail und Ansprechpartner.\n\nM08 berührt P6 Kontakte & Organisationen. WhatsApp und Datei besitzen im aktuellen P7-Flow keine eigene Seite.","x":3740,"y":920,"width":420,"height":260},
{"id":"b100000000000014","type":"text","text":"# Einstieg Telefon\n\nS03 Lead-Record → **Anrufen**.\n\nAnrufzustände bleiben als schwebendes Panel im Arbeitskontext.","x":80,"y":1960,"width":360,"height":200},
{"id":"b100000000000015","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/M06 Dialer.md","x":520,"y":1960,"width":400,"height":220,"color":"6"},
{"id":"b100000000000016","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/V02 Dialer Tastenfeld.md","x":1040,"y":1960,"width":400,"height":220,"color":"3"},
{"id":"b100000000000017","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/V03 Dialer Im Gespraech.md","x":1560,"y":1960,"width":400,"height":220,"color":"3"},
{"id":"b100000000000018","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/V05 Dialer kompakt.md","x":1040,"y":2280,"width":400,"height":220,"color":"3"},
{"id":"b100000000000019","type":"text","text":"# Einstieg E-Mail\n\nS03 Lead-Record → **Mail**.\n\nDer Composer bleibt schwebend, kann minimiert oder auf Vollbild erweitert werden.","x":2480,"y":1960,"width":360,"height":200},
{"id":"b10000000000001a","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/M07 E-Mail schreiben.md","x":2940,"y":1960,"width":400,"height":220,"color":"6"},
{"id":"b10000000000001b","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/V06 E-Mail minimiert.md","x":3460,"y":1960,"width":400,"height":220,"color":"3"},
{"id":"b10000000000001c","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Screens/V07 E-Mail Vollbild.md","x":3980,"y":1960,"width":400,"height":220,"color":"3"},
{"id":"b10000000000001d","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Backlog/README.md","x":4900,"y":160,"width":420,"height":220,"color":"3"},
{"id":"b10000000000001e","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Backlog/Lead-Statistiken.md","x":5420,"y":160,"width":400,"height":200,"color":"3"},
{"id":"b10000000000001f","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Backlog/Quellen-Verwaltung.md","x":4900,"y":520,"width":400,"height":200,"color":"3"},
{"id":"b100000000000020","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Backlog/Spam-Schutz.md","x":5420,"y":520,"width":400,"height":200,"color":"3"},
{"id":"b100000000000021","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Backlog/CSV-Import-Wizard.md","x":4900,"y":880,"width":400,"height":200,"color":"3"},
{"id":"b100000000000022","type":"text","text":"# Nicht Teil des finalen P7-UI-Flows\n\nStatistik, Quellen, Anti-Spam und CSV besitzen keine Seite. Der ältere Produktvertrag weicht bei Zielmodell und Pflichtdaten von M01 ab.\n\nDiese Punkte blockieren den Screen-Handoff nicht und bleiben als separate Development-/Produkt-Folgethemen erhalten.","x":4900,"y":1240,"width":920,"height":260,"color":"1"},
{"id":"b100000000000023","type":"file","file":"02 Wireframes/P7 Leads/WF-P7 Leads/Backlog/Produktvertrag-Deltas.md","x":5420,"y":880,"width":400,"height":200,"color":"1"}
],
"edges": [
{"id":"c100000000000001","fromNode":"b100000000000004","fromSide":"right","toNode":"b100000000000005","toSide":"left","toEnd":"arrow","label":"Eingang"},
{"id":"c100000000000002","fromNode":"b100000000000005","fromSide":"bottom","fromEnd":"arrow","toNode":"b100000000000006","toSide":"top","toEnd":"arrow","label":"Darstellungsvariante"},
{"id":"c100000000000003","fromNode":"b100000000000005","fromSide":"right","toNode":"b100000000000007","toSide":"left","toEnd":"arrow","label":"Übernehmen / Zuweisen"},
{"id":"c100000000000004","fromNode":"b100000000000006","fromSide":"right","toNode":"b100000000000008","toSide":"left","toEnd":"arrow","label":"Öffnen"},
{"id":"c100000000000005","fromNode":"b100000000000007","fromSide":"bottom","toNode":"b100000000000008","toSide":"top","toEnd":"arrow","label":"Lead öffnen"},
{"id":"c100000000000006","fromNode":"b100000000000007","fromSide":"bottom","toNode":"b100000000000009","toSide":"top","toEnd":"arrow","label":"Abarbeiten"},
{"id":"c100000000000007","fromNode":"b100000000000005","fromSide":"bottom","toNode":"b10000000000000a","toSide":"top","toEnd":"arrow","label":"Preset speichern"},
{"id":"c100000000000008","fromNode":"b100000000000006","fromSide":"right","toNode":"b10000000000000b","toSide":"left","toEnd":"arrow","label":"Verwerfen"},
{"id":"c100000000000009","fromNode":"b100000000000007","fromSide":"right","toNode":"b10000000000000c","toSide":"left","toEnd":"arrow","label":"Lead anlegen"},
{"id":"c10000000000000a","fromNode":"b10000000000000c","fromSide":"right","toNode":"b10000000000000d","toSide":"left","toEnd":"arrow","label":"Kontakt verknüpfen"},
{"id":"c10000000000000b","fromNode":"b10000000000000d","fromSide":"right","toNode":"b10000000000000e","toSide":"left","toEnd":"arrow","label":"gleiche Telefonnummer"},
{"id":"c10000000000000c","fromNode":"b100000000000008","fromSide":"right","toNode":"b10000000000000f","toSide":"left","toEnd":"arrow","label":"Qualifiziert zu Deal"},
{"id":"c10000000000000d","fromNode":"b10000000000000f","fromSide":"right","toNode":"b100000000000010","toSide":"left","toEnd":"arrow","label":"In Deal umwandeln"},
{"id":"c10000000000000e","fromNode":"b100000000000008","fromSide":"bottom","toNode":"b100000000000011","toSide":"left","toEnd":"arrow","label":"Task / Reminder"},
{"id":"c10000000000000f","fromNode":"b100000000000008","fromSide":"bottom","toNode":"b100000000000012","toSide":"left","toEnd":"arrow","label":"Ansprechpartner +"},
{"id":"c100000000000010","fromNode":"b100000000000014","fromSide":"right","toNode":"b100000000000015","toSide":"left","toEnd":"arrow","label":"Anrufen"},
{"id":"c100000000000011","fromNode":"b100000000000015","fromSide":"right","toNode":"b100000000000016","toSide":"left","toEnd":"arrow","label":"Tastenfeld"},
{"id":"c100000000000012","fromNode":"b100000000000015","fromSide":"right","toNode":"b100000000000017","toSide":"left","toEnd":"arrow","label":"Anrufen"},
{"id":"c100000000000013","fromNode":"b100000000000015","fromSide":"bottom","toNode":"b100000000000018","toSide":"left","toEnd":"arrow","label":"minimieren"},
{"id":"c100000000000014","fromNode":"b100000000000019","fromSide":"right","toNode":"b10000000000001a","toSide":"left","toEnd":"arrow","label":"Mail"},
{"id":"c100000000000015","fromNode":"b10000000000001a","fromSide":"right","toNode":"b10000000000001b","toSide":"left","toEnd":"arrow","label":"minimieren"},
{"id":"c100000000000016","fromNode":"b10000000000001a","fromSide":"right","toNode":"b10000000000001c","toSide":"left","toEnd":"arrow","label":"Vollbild"}
],
"metadata": {
"version": "1.0-1.0",
"frontmatter": {}
}
}
+199 -105
View File
@@ -4,135 +4,229 @@ project: HiveGrid Screen Project
ticket: D-P7
package: WF-P7 Leads
typ: Flow
status: Validiert
subframe: ""
status: Fertig / Development-Handoff
subframe: "https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit"
canvas: "WF-P7 Leads.canvas"
source_checked: 2026-08-20
---
# WF-P7 Leads
Status: Validiert (Screen-Liste)
Subframe-Link: -
Canvas: [Canvas](<WF-P7 Leads.canvas>)
Stand: 2026-07-08
Status: **Fertig / Development-Handoff** · finaler Subframe-Stand vollständig abgeglichen
Subframe: [Flow öffnen](https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit)
Canvas: [Canvas öffnen](<WF-P7 Leads.canvas>)
Ticket: [D-P7 Leads](<../../../Tickets/Fertige Tickets/D-P7 Leads.md>)
Stand: 2026-08-20
---
## 1. Kurzfassung
## 1. Verbindliche Quelle
Der Lead-Eingang: Anfragen aus allen Quellen (Formular, E-Mail, Anruf, manuell, Webhook) landen automatisch in einer Triage-Liste. Dort wird sortiert, zugewiesen — und im Kern-Moment **»Zu Projekt machen«** startet die Kette Richtung Auftrag. Kontakt wird dabei separat verknüpft (kein altes Promotion-Modal, Pivot AD-20).
Für den aktuellen UI-Stand ist der bestehende Subframe-Flow die Single Source of Truth. Subframe wurde nur gelesen und nicht verändert.
---
## 2. Intent Check
| Frage | Antwort |
| Feld | Wert |
|---|---|
| Welches Ticket/Modul ist betroffen? | D-P7, Dev-Pendant R-P7 |
| Was soll der Nutzer am Ende schaffen? | Keine Anfrage verlieren, Spam loswerden, schnell reagieren, gute Anfragen zu Projekten machen |
| Flow, Screen, Zustand oder Doku? | Triage-Liste + Detail + Konvertier-Modal + Statistiken + 2 Einstellungs-Seiten + Anlege-Modal |
| Welche Planning-Quellen wurden geprüft? | `ticket-docs/D-P7.md`, ENTITY-MODEL (Pivot), SCREEN-MAP §2, HiveGrid Map |
| Was ist sicher im Scope? | Alles oben + Anti-Spam + Webhook-Quellen |
| Was ist sicher nicht im Scope? | Kontakt-/Organisations-Listen (P6), Projekt-Welt (P8), Promotion-Modal (existiert nicht mehr) |
| Admin/Normalrolle-Unterschiede? | `leads.*`; bei `read_own` nur eigene (404); Statistiken-Aufschlüsselung nach Person nur mit `read_all` |
| Unsichere Annahmen? | Massen-Konvertierung (Bulk »Zu Projekt«): UI validiert, technische Machbarkeit mit Dev bestätigen |
| Projekt | `Basedesign` (`f023064a5ca0`) |
| Flow | `WF-P7 LeadListe` |
| Flow-ID | `69f745e5-4a15-4227-b9db-ec08c78fd6d7` |
| Bestand | 20 Subframe-Seiten |
| Abgleich | 2026-08-20 per MCP; nach Davids finalen Änderungen erneut 20/20 Seiten inklusive JSX gelesen, alle geänderten Hauptseiten und Dialogvarianten gerendert |
Die Screen-Namen, UUIDs, sichtbaren Inhalte, Komponenten und gebauten Varianten kommen direkt aus Subframe. Frühere Obsidian-Annahmen gelten nur noch dort, wo der aktuelle Flow sie sichtbar bestätigt. `S01 Arbeitsliste` wurde im finalen Stand neu angelegt und besitzt deshalb die neue UUID `ae41c6ea-d1b0-4656-9a5c-55f64343962a`.
Wichtig für die Flow-Kanten: Die exportierten `onClick`-Handler sind leer. Die Canvas-Verbindungen zeigen deshalb sichtbare Auslöser und naheliegende Beziehungen. Wo das Ergebnis einer Aktion im Screen nicht eindeutig ist, ist es als offen markiert und nicht als bereits verdrahtete Navigation behauptet.
---
## 3. Scope
## 2. Aktuelle Flow-Struktur
| Punkt | Inhalt |
|---|---|
| Ticket/Modul | D-P7 · Lead-Eingang |
| Nutzerrolle | Maximalansicht (Admin) |
| Startpunkt | Sidebar »Leads« |
| Ziel | Anfrage triagiert → Projekt erstellt oder erledigt/Spam |
| Haupt-Archetyp | A2 Triage-Liste · A3 Detail · A5 Modal · A6 Settings · KPI-Kit |
| Bespoke-Anteil | Keiner |
| Out of scope | Kampagnen-/Marketing-Quellen-Details (P14) |
---
## 4. Entscheidungen (validiert 2026-07-08)
| Entscheidung | Status | Notiz |
|---|---|---|
| Ein Paket für das ganze Feature | genommen | inkl. Quellen + Spam-Schutz (leben unter Einstellungen → Arbeitsweise) |
| **Lead → Projekt als großes Modal** | genommen | Drei Sektionen: Daten-Vererbungs-Vorschau · Ziel-Board + Start-Spalte · Kontakt verknüpfen (Auto-Match oder neu via M01 aus P6). Man bleibt im Kontext der Liste |
| **Mehrfachauswahl / Massenbearbeitung** | genommen | Davids Ergänzung: Bulk-Zuweisen/Status/Spam/Archiv UND Massen-Konvertierung (Modal in Bulk-Variante: gemeinsame Board-Wahl, Kontakt-Match je Lead). Machbarkeit Bulk-Convert mit Dev bestätigen |
| Anfrage anlegen als Modal | genommen | Wie »Kontakt anlegen« (P6), mit Live-Duplikat-Check |
| **Inline-Anlegen (Plus → Zeile mit Pflichtfeldern)** | dokumentiert / später | Davids Idee — gemeinsames Muster mit P6 (D01 dort); »muss gut gemacht werden«, erstmal Modal |
| Spam standardmäßig ausgeblendet, Konvertierte ausgeblendet | genommen | Toggle-Chips laut Ticket |
| Pivot-Regel | genommen | Freigabe (ja/nein/unklar) am Lead; bei »ja« → Projekt; Kontakt separat verknüpft; Status new/qualified/converted/lost/spam |
| **CSV-Import-Wizard** | genommen — Davids Delta (2026-07-08) | Ganze Listen importieren: Datei hochladen → Spalten den Lead-Feldern zuordnen → Vorschau mit Fehlern/Duplikaten → Import. Steht NICHT im Dev-Ticket → als Change-Request/Delta an Dev |
### Happy Path
1. Anfrage kommt rein (Formular/Anruf/E-Mail) → erscheint live in der Inbox, ggf. mit Duplikat-/Spam-Marker.
2. Triage direkt in der Zeile: zuweisen, Status, oder Spam.
3. Gute Anfrage öffnen → Detail: Herkunft, Match-Hinweise (»könnte Kontakt X sein«), Freigabe auf »ja«.
4. **»Zu Projekt machen«** → Modal: Vorschau der übernommenen Daten, Board + Start-Spalte wählen, Kontakt verknüpfen (Match oder neu) → Projekt existiert, Lead = konvertiert.
5. Chef schaut in die Statistiken: Woher kommen Anfragen, wie schnell reagieren wir, was wird daraus?
### Meldungs-/Error-States (validiert)
| Ereignis | UI-Form | Blockiert? | Bauen? | Copy/Notiz |
|---|---|---|---|---|
| Spam-Verdacht / mögliches Duplikat / auto-promoviert | Marker in der Zeile + Begründung im Detail | nein | Nur dokumentieren | Klartext-Begründung (»3 Anfragen in 1 Min von gleicher IP«) |
| Pflichtdaten fehlen beim Konvertieren (z. B. Name) | Mängel-Banner im Modal | ja (Aktion) | Nur dokumentieren | Felder direkt im Modal nachtragbar |
| DSGVO-Auto-Löschung | Countdown-Hinweis im Detail | nein | Nur dokumentieren | »Wird am [Datum] automatisch gelöscht« (Spam 30 T, lost konfigurierbar) |
| Fremder Lead bei `read_own` | unsichtbar / 404 | ja | Wiederverwenden | Dev-Vorgabe |
| Leere Inbox | Leer-Zustand | nein | Nur dokumentieren | »Keine neuen Anfragen« |
---
## 7. Validierte Screen-Liste
| ID | Screen/Zustand | Typ | Umsetzung | Ort | Status |
|---|---|---|---|---|---|
| S01 | Lead-Inbox (Triage-Liste) | Liste | Bauen | `/leads` | Validiert |
| S02 | Lead-Detail | Detail | Bauen | `/leads/:id` | Validiert |
| M01 | Lead → Projekt ⭐ | Modal (groß, + Bulk-Variante) | Bauen | aus S01/S02 | Validiert |
| S03 | Lead-Statistiken | KPI-Seite | Bauen | `/leads/statistics` | Validiert |
| S04 | Quellen-Verwaltung | Settings-Liste | Bauen | `/admin/lead-sources` | Validiert |
| S05 | Spam-Schutz | Settings | Bauen | `/admin/lead-anti-spam` | Validiert |
| M02 | Anfrage anlegen | Modal | Bauen | aus S01 | Validiert |
| M03 | CSV-Import-Wizard | Modal/Wizard | Bauen | aus S01 | Validiert (Davids Delta) |
| D01 | Inline-Anlegen (Plus → Zeile) | Idee | Später | in S01 | Dokumentiert (gemeinsam mit P6) |
| D02–D06 | Marker/Banner/Zustände (s. Tabelle) | Inline | Nur dokumentieren | — | Validiert |
---
## 8. Grid
### Eingang, Arbeitsliste und Lead-Record
```text
Sidebar -> S01 (Inbox) -> S02 (Detail)
S01/S02 -> M01 (Lead -> Projekt; aus S01 auch als Bulk)
S01 -> M02 (+ Anfrage) / M03 (CSV-Import)
S01 -> S03 (Statistiken; Drill-Down zurueck in gefilterte Inbox)
Einstellungen -> S04 (Quellen) / S05 (Spam-Schutz)
M01 nutzt M01 aus P6 (Kontakt anlegen) fuer neue Kontakte
S02 Eingang Karten <-> S02 Eingang Liste
| Übernehmen / Zuweisen
v
S01 Arbeitsliste -> S03 Lead-Record -> M01 Konversion -> Deal im Vertriebsboard
| |
v +-> M04 Nächste Aktion
V01 Abarbeiten-Modus +-> M06 Dialer -> V02 / V03 / V05
+-> M07 E-Mail -> V06 / V07
+-> M08 Ansprechpartner hinzufügen
```
---
- **Eingang** ist die Triage für neue, noch nicht übernommene Anfragen. Karten- und Listenansicht zeigen dieselben drei Beispieldatensätze mit Filtern, Zuweisungsvorschlägen, Mehrfachauswahl und Verwerfen. Für den Handoff gilt: `Übernehmen` weist den Lead der handelnden Person zu, `Zuweisen` einer gewählten Person; beide führen in die Arbeitsliste.
- **Arbeitsliste** priorisiert bereits aktive Leads nach Fälligkeit bzw. Handlungsbedarf. Gruppierungen sind Fälligkeit, Zuständig, Anfragenart, Kundentyp oder keine Gruppierung.
- **Lead-Record** ist die zentrale Bearbeitungsseite mit Kontaktdaten, nächster Aktion, Kommunikationsverlauf, Lead-Details und Ansprechpartnern.
- **Abarbeiten-Modus** ist im aktuellen Subframe-Bestand als schmale Fortschrittsleiste gebaut; die darunterliegende Lead-Ansicht ist in dieser Seite nicht enthalten.
## 9. Screen-Pakete
### Anlage, Dubletten und Verwerfen
- [[S01 Lead-Inbox]] · [[S02 Lead-Detail]] · [[M01 Lead zu Projekt]]
- [[S03 Lead-Statistiken]] · [[M02 Anfrage anlegen]] · [[M03 CSV-Import]]
- [[S04 Quellen-Verwaltung]] · [[S05 Spam-Schutz]]
```text
S01/S02 -> M02 Lead anlegen
| Ansprechpartner neu / bestehenden verknüpfen
+-> M02 Lead anlegen Kontakt verknüpfen
+-> M03 Dubletten-Prüfung
S02 -> V08 Verwerfen bestätigen
S02 -> M05 Ansicht speichern
```
- M02 unterscheidet Privatperson und Firma und verlangt laut Copy mindestens einen Kontaktweg.
- Die Kontakt-Verknüpfungsvariante sucht bestehende Kontakte direkt im Anlage-Dialog.
- M03 vergleicht neuen und bestehenden Datensatz bei gleicher Telefonnummer und bietet getrenntes Anlegen oder Zusammenführen.
- V08 ist eine irreversible Verwerfen-Bestätigung für den Eingang.
### Kommunikation
- M07 ist ein schwebender E-Mail-Composer mit Empfänger, Cc/Bcc, Betreff, Rich-Text-Werkzeugen, Anhang, Vorlagen, Entwurfsstatus und geplantem Versand.
- V06 und V07 zeigen denselben Composer minimiert bzw. im Vollbild.
- M06 ist ein schwebender Dialer mit Rufnummer, Notiz, Gesprächsergebnis, Stimmung und Protokollierung am Lead.
- V02, V03 und V05 zeigen Tastenfeld, aktives Gespräch und kompakte Ansicht.
---
## 10. Offene Fragen
## 3. Vollständiger Subframe-Bestand
- Massen-Konvertierung (Bulk »Zu Projekt«): technische Machbarkeit + Verhalten bei fehlenden Kontakt-Matches → Frage an Dev (beim Handoff)
- CSV-Import (M03): Davids Delta, steht nicht im Dev-Ticket → als Change-Request formulieren (Import-Job, Duplikat-Behandlung serverseitig)
- Ziel-Board-Vorauswahl im Konvertier-Modal (z. B. immer »Vertrieb«-Board als Default?) → beim Subframe-Bau
- Statistiken: welche KPI-Kacheln auf Seite 1 → beim Subframe-Bau (Ticket-Liste ist Obermenge)
Die Spalte „Canvas-ID“ löst doppelte Subframe-Präfixe eindeutig auf. Maßgeblich bleiben Subframe-Name und UUID.
## Handoff-Check
| Canvas-ID | Subframe-Seite | Typ / Rolle | Screen-MD | Subframe |
|---|---|---|---|---|
| S01 | S01 Arbeitsliste | priorisierte Arbeitsliste | [MD](<Screens/S01 Arbeitsliste.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/ae41c6ea-d1b0-4656-9a5c-55f64343962a/edit) |
| M05 | M05 Ansicht speichern | Filteransicht speichern | [MD](<Screens/M05 Ansicht speichern.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/c011c64f-df15-42c2-b920-66f0ebea87fd/edit) |
| S03 | S03 Lead-Record | zentrale Lead-Detailansicht | [MD](<Screens/S03 Lead-Record.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/6c173984-ea71-4d85-b53e-ebc397b3c821/edit) |
| V01 | V01 Abarbeiten-Modus | Fortschritts-/Arbeitsmodus | [MD](<Screens/V01 Abarbeiten-Modus.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/f2451766-d918-49b2-8c77-913e4817d31a/edit) |
| M08 | M08 Ansprechpartner hinzufuegen | Kontakt verknüpfen/anlegen | [MD](<Screens/M08 Ansprechpartner hinzufuegen.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/c7949b46-6b91-47ec-b08c-959f686df55b/edit) |
| S02-K | S02 Eingang Karten | Eingang · Kartenansicht | [MD](<Screens/S02 Eingang Karten.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/165bfa17-8792-4616-bfb6-d064bc7352a8/edit) |
| S02-L | S02 Eingang Liste | Eingang · Listenansicht | [MD](<Screens/S02 Eingang Liste.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/24d7b73c-39f4-4c74-adf4-8493861adb68/edit) |
| M01 | M01 Konversion | Lead in Deal umwandeln | [MD](<Screens/M01 Konversion.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/1609485c-d315-4cdf-8e41-ad1dfb0b2691/edit) |
| M02 | M02 Lead anlegen | Lead-Anlage | [MD](<Screens/M02 Lead anlegen.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/14a837e3-c2f7-4289-9ae4-d9427935e74f/edit) |
| M02-K | M02 Lead anlegen Kontakt verknuepfen | Anlage · bestehender Kontakt | [MD](<Screens/M02 Lead anlegen Kontakt verknuepfen.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/75858347-70f9-4233-99f6-e72f0852ccab/edit) |
| M07 | M07 E-Mail schreiben | schwebender E-Mail-Composer | [MD](<Screens/M07 E-Mail schreiben.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/9a4d7a13-73e3-412d-8beb-0c6dfcc7617c/edit) |
| V06 | V06 E-Mail minimiert | Composer · minimiert | [MD](<Screens/V06 E-Mail minimiert.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/25f763a3-8146-4330-97a5-394510ac0b17/edit) |
| V07 | V07 E-Mail Vollbild | Composer · Vollbild | [MD](<Screens/V07 E-Mail Vollbild.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/20deb403-a0a8-48aa-944b-65a7c464fa7b/edit) |
| M03 | M03 Dubletten-Pruefung | Dublettenentscheidung | [MD](<Screens/M03 Dubletten-Pruefung.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/36fb8b6a-bced-44a3-b8bd-76ae3ecf7cdd/edit) |
| V08 | V08 Verwerfen bestaetigen | irreversible Bestätigung | [MD](<Screens/V08 Verwerfen bestaetigen.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/ecc9c8b6-ab3a-4dc3-82d2-6f98f2829344/edit) |
| M04 | M04 Naechste Aktion | Reminder/Aufgabe setzen | [MD](<Screens/M04 Naechste Aktion.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/9b3a7954-384f-42ed-9b04-934f30adbc0f/edit) |
| M06 | M06 Dialer | Dialer · Ausgangszustand | [MD](<Screens/M06 Dialer.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/dcd35b81-dce7-4257-be0d-8755adeffe8b/edit) |
| V02 | V02 Dialer Tastenfeld | Dialer · Tastenfeld | [MD](<Screens/V02 Dialer Tastenfeld.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/8960b4b1-cecb-4050-a322-2e8e0b30f0ad/edit) |
| V03 | V03 Dialer Im Gespraech | Dialer · aktives Gespräch | [MD](<Screens/V03 Dialer Im Gespraech.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/b81072df-5ffd-45b9-959e-166a830807e6/edit) |
| V05 | V05 Dialer kompakt | Dialer · kompakt | [MD](<Screens/V05 Dialer kompakt.md>) | [Subframe](https://app.subframe.com/f023064a5ca0/design/b9ea58a5-7e98-435f-8a5b-e696cbc2709b/edit) |
- [x] Jeder Screen ist mit Umsetzung markiert.
- [x] Meldungs-/Error-State-Matrix ist ausgefüllt.
- [ ] Subframe-Link ist eingetragen. *(Subframe erst nach explizitem OK)*
---
## 4. Fachlicher Stand aus dem aktuellen JSX
### Eingang
- Karten- und Listenansicht tragen denselben Titel und dieselbe Erklärung: neue Anfragen werden zuerst gesichtet und zugeteilt, bevor sie in die Arbeitsliste wandern.
- Filter/Preset-Inhalte: Freitext, Dringlichkeit, Anfragenart, Region und Kanal; zusätzliche Filter für Status, Tags, Verantwortlich, Zeitraum, Priorität und Erstellt am; Presets Heute, Diese Woche, Alle offenen und Meine Projekte.
- Sichtbare Lead-Daten: Priorität, Name, Kurzbeschreibung, Kanal, potenzieller Wert, Region, Telefonnummer, Anfragenart, Eingangszeit und vorgeschlagene zuständige Person.
- Einzelaktionen: Übernehmen, Zuweisen, Öffnen und Verwerfen. Mehrfachaktionen: Löschen, Übernehmen und Zuweisen.
### Arbeitsliste
- FilterBar mit Freitext und aktiven Chips für Status, Tags, Verantwortlich und Zeitraum; Presets Heute, Diese Woche, Alle offenen und Meine Projekte.
- Spalten: Lead, Anfragenart, Priorität, Nächste Aktion, Zuständig und Wert.
- Gruppierungen: Fälligkeit, Zuständig, Anfragenart, Kundentyp oder keine.
- Gebaute Fälligkeitsgruppen: Überfällig, Neu · unbearbeitet, Rückruf zugesagt, Heute fällig und Droht kalt zu werden.
- Zeilen zeigen Name/Firma, Kurzbeschreibung, Anfragenart, vierstufige Prioritätsanzeige samt Badge, nächste Aktion/Fälligkeit, Avatar/Owner und potenziellen Wert.
### Lead-Record
- Kopf: Breadcrumb Leads → Lead, Initialen, Name, Statusbadge, Hinweis `zeitkritisch`, Kundentyp/Ort, Anfragenart und `Qualifiziert zu Deal`.
- Schnellaktionen: Anrufen, WhatsApp, Mail, Task und Datei.
- Linke Spalte: Ansprechpartner, Beziehung, Telefon, E-Mail, Straße, Hausnummer, PLZ, Ort und Region; darunter Kommunikationsstatistik.
- Mitte: Anstehende Aufgabe/Reminder, Inline-Erfassung für Notiz/E-Mail/Anruf/WhatsApp und chronologischer Verlauf.
- Rechte Spalte: Status, Owner, potenzieller Wert, Priorität, Quelle, nächste Aktion, Engagement, Erfasst, Tags und Ansprechpartner.
- Verlaufseinträge besitzen Bearbeiten/Löschen-Menüs. Tags und viele Stammdaten sind als direkt bearbeitbare Felder angelegt.
### Konversion
- M01 wandelt den Lead in einen `Deal` auf dem Vertriebsboard um.
- Sichtbares verlustfreies Mapping: Ansprechpartner, Telefon/E-Mail, Quelle, Projekttyp, potenzieller Wert, Owner sowie Verlauf/Notizen → Deal-Timeline.
- Kontaktübernahme ist per Checkbox wählbar. Ziel-Board und Startstatus sind im aktuellen Dialog nicht auswählbar.
### Anlage und Dubletten
- M02 enthält Privatperson/Firma, Projektname, Firmenname, Telefon, E-Mail, Ansprechpartner, Quelle, Projekttyp, Priorität und Tags.
- Die Firma-Variante bietet Ansprechpartner neu anlegen oder bestehenden Kontakt suchen/verknüpfen.
- M03 vergleicht bei identischer Telefonnummer Name, Telefon, Quelle und Anliegen; Entscheidungen sind getrennt anlegen oder zusammenführen.
### Nächste Aktion, E-Mail und Telefon
- M04 setzt Aufgabe, optionale Notiz, Datum und Uhrzeit; der Reminder erscheint in `Anstehend`.
- E-Mail: Empfänger, Cc/Bcc, Betreff, Rich-Text-Toolbar, Variablen/Einfügewerkzeuge, Anhang, Vorlagen, Sofort- oder Zeitversand, Entwurfsstatus und Löschen.
- Dialer: Kontakt und Rufnummer, ausgehende Nummer, Tastenfeld, Gesprächsnotiz, Ergebnis, Stimmung, Gesprächsdauer, Stummschalten, Auflegen sowie `Protokollieren & abschließen`.
---
## 5. Gebaute Zustände und Varianten
| Auslöser / Zustand | Gebaute Seite | Sichtbares Ergebnis |
|---|---|---|
| Eingang als Karten oder Liste | S02-K / S02-L | gleiche Triage-Daten in zwei Darstellungen |
| Filterkombination sichern | M05 | benannte Ansicht speichern |
| sequenziell arbeiten | V01 | Fortschritt, Überspringen, Erledigt, Schließen |
| Lead in Deal umwandeln | M01 | Mapping-Vorschau und Kontaktübernahme |
| bestehenden Ansprechpartner verwenden | M02-K / M08 | Suche, Auswahl, Rolle und Hauptkontakt |
| gleiche Telefonnummer | M03 | getrennt anlegen oder zusammenführen |
| Lead aus Eingang verwerfen | V08 | irreversible Bestätigung |
| nächste Aktivität planen | M04 | Aufgabe/Notiz mit Datum und Uhrzeit |
| E-Mail schreiben | M07 / V06 / V07 | normal, minimiert und Vollbild |
| anrufen | M06 / V02 / V03 / V05 | normal, Tastenfeld, im Gespräch und kompakt |
---
## 6. Finaler UI-Stand und Development-Folgethemen
Mit Davids Finalisierungsanweisung vom 2026-08-20 gilt der aktuelle Subframe-Flow als validierter UI-Stand für den Development-Handoff. Die folgenden Abweichungen zur älteren Planung bleiben bewusst sichtbar, blockieren aber nicht den Abschluss dieses Screen-Tickets.
### Geltender finaler UI-Stand
1. **Konversion zu Deal:** M01 verwendet `Qualifiziert zu Deal` und `In Deal umwandeln` und legt auf dem festen Vertriebsboard an. Der frühere Vertrag `Lead → Projekt` mit Ziel-Pipeline/Startstatus ist nicht Teil des finalen P7-UI-Flows.
2. **Keine separate Weiterverarbeitungsfreigabe:** `ja / nein / unklar` ist im finalen Lead-Record nicht als eigenes Feld oder Gate gebaut.
3. **Kein frei wählbares Konversionsziel:** Ziel-Board und Startstatus werden in M01 nicht ausgewählt.
4. **Separate Folgethemen:** Lead-Statistiken, Quellen-Verwaltung, Anti-Spam-Settings und CSV-Import besitzen im finalen 20-Seiten-Flow keine Seite. Sie bleiben als eigene Produkt-/Ticketkandidaten erhalten.
5. **Nicht im finalen Record enthalten:** Quellen-Detail, Spam-Score/Begründung, Match-Hinweise, Re-Submission-Verlauf, DSGVO-Löschdatum und der frühere vollständige Status-Workflow.
### QA- und Umsetzungshinweise
- M02 nennt Fax als zulässigen Kontaktweg, zeigt aber kein Fax-Feld.
- S03 zeigt den Lead Thomas Klein, listet rechts jedoch Ansprechpartner der Reithofer Immobilien GmbH. Der Beispieldatensatz ist fachlich nicht konsistent.
- M04 zeigt gleichzeitig unterschiedliche Datumszustände (Kalenderauswahl, Datumstext und `Noch kein Termin gewählt`).
- S02 enthält das Preset `Meine Projekte`, obwohl der Screen neue Leads/Anfragen zeigt.
- V01 enthält nur die Abarbeiten-Leiste; der aktive Lead darunter ist in der gebauten Seite nicht enthalten.
- S01 besitzt Auswahl-Checkboxen, aber keinen gebauten Mehrfachaktionszustand.
- Die Dialer-Ergebnisse mischen deutsche und englische Taxonomie (`Gatekeeper`, `Rescheduling`); Development sollte die finale Fachwortliste mit Produkt abstimmen.
- Die exportierten Handler sind leer. Für Development gilt die oben dokumentierte Handoff-Logik für `Übernehmen` und `Zuweisen`.
### Nicht gebaute Standardzustände
Im finalen 20-Seiten-Flow gibt es keine eigenen Empty-, Loading-, Fehler-, Permission- oder Erfolgsseiten für Eingang, Arbeitsliste, Lead-Record, Versand, Anruf oder Konversion. Development verwendet dafür die bestehenden Standardmuster; neue eigene Screens wären ein späterer Produktumfang.
Der vollständige Abgleich der bisherigen Produktanforderungen mit dem aktuellen UI ist unter [Produktvertrag-Deltas](<Backlog/Produktvertrag-Deltas.md>) konserviert.
---
## 7. Bereinigter Altbestand
- Die frühere 8-Screen-Planung wurde durch den tatsächlichen 20-Seiten-Bestand ersetzt.
- `S01 Lead-Inbox` wurde fachlich in `S02 Eingang` und `S01 Arbeitsliste` aufgeteilt.
- `S02 Lead-Detail` wurde durch `S03 Lead-Record` ersetzt.
- Das frühere große `Lead → Projekt`-Modal mit Board-/Spaltenwahl und Bulk-Variante ist nicht mehr als aktueller Screen dokumentiert; maßgeblich ist M01 Konversion aus Subframe.
- Lead-Statistiken, Quellen-Verwaltung, Spam-Schutz, CSV-Import und die abweichenden Vertragsanforderungen bleiben unter [Backlog](<Backlog/README.md>) erhalten, sind aber nicht als aktuelle Subframe-Screens markiert.
- Routen sind im aktuellen Subframe-Code nicht hinterlegt und deshalb nicht als verifizierte Fakten weitergeführt.
---
## 8. Handoff-Check
- [x] Alle 20 aktuellen Subframe-Seiten haben eine Screen-Datei.
- [x] Alle 20 Screen-Dateien enthalten UUID, direkten Link und Abgleichdatum.
- [x] Paket-MD, Tracker und Canvas verwenden denselben 20-Seiten-Bestand.
- [x] Subframe wurde nur gelesen und nicht verändert.
- [x] Alte, nicht mehr belegte Planung wurde sichtbar geparkt statt still als gebaut weitergeführt.
- [x] Alle echten Dialogseiten importieren `Dialog` und enthalten `Dialog.Content`; Dialer und E-Mail sind bewusst schwebende Panels.
- [x] Davids finaler Subframe-Stand ist als geltende UI-Entscheidung dokumentiert; ältere Vertragsdeltas bleiben als Folgethemen erhalten.
- [x] Nicht gebaute Standardzustände sind als Development-Wiederverwendung statt als eigene P7-Screens eingeordnet.
- [x] Das fertige Tickethandoff liegt unter `Tickets/Fertige Tickets/D-P7 Leads.md`.
+28 -12
View File
@@ -41,7 +41,7 @@ Diese Datei ist der erste Ort, um zu sehen:
| WF-P4 Dateien | D-P4 | Aufgaben & Dateien | Validiert | [MD](<P4 Dateien/WF-P4 Dateien/WF-P4 Dateien.md>) | [Canvas](<P4 Dateien/WF-P4 Dateien/WF-P4 Dateien.canvas>) | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Teilen/Ordner/Versionen sichtbar als Backlog v2 |
| WF-P5 Integrationen | D-P5 | Integrationen | Validiert | [MD](<P5 Integrationen/WF-P5 Integrationen/WF-P5 Integrationen.md>) | [Canvas](<P5 Integrationen/WF-P5 Integrationen/WF-P5 Integrationen.canvas>) | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Sync-Verlauf als eigene Seiten; Connection-Card = Muster fuer P14/P15/P16 |
| WF-P6 Kontakte und Organisationen | D-CRM | Kontakte | Validiert | [MD](<P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.md>) | [Canvas](<P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.canvas>) | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Karteikarte = Muster-Vorlage fuer alle Detailseiten (Zweispalter + Reiter) |
| WF-P7 Leads | D-P7 | Leads | Validiert | [MD](<P7 Leads/WF-P7 Leads/WF-P7 Leads.md>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) | - | Subframe nach explizitem OK | Screens validiert 2026-07-08; Lead->Projekt als grosses Modal (+Bulk); CSV-Import = Davids Delta/CR |
| WF-P7 Leads | D-P7 | Leads | Fertig / Development-Handoff | [MD](<P7 Leads/WF-P7 Leads/WF-P7 Leads.md>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) | [Subframe](<https://app.subframe.com/f023064a5ca0/flow/69f745e5-4a15-4227-b9db-ec08c78fd6d7/edit>) | Übergabe abgeschlossen | 20/20 Seiten nach Davids finalen Änderungen am 2026-08-20 erneut synchronisiert; S01 mit neuer UUID, Folgethemen separat dokumentiert |
| WF-P8 Pipelines | D-P8 + D-KANBAN | Pipelines | In Subframe | [MD](<P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.md>) | [Canvas](<P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas>) | [Subframe](<https://app.subframe.com/f023064a5ca0/flow/d9dfdec6-7236-4386-8514-697b9e0f0bc4/edit>) | Development-Handoff | 23 aktuelle Seiten per MCP abgeglichen; S03/S04/M03/M04-Produktlogik am 2026-07-28 von David validiert |
| WF-P9 Projekt-Akte | D-P9 | Auftrag | Validiert | [MD](<P9 Projekt-Akte/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.md>) | [Canvas](<P9 Projekt-Akte/WF-P9 Projekt-Akte/WF-P9 Projekt-Akte.canvas>) | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; Rechnung v1 neu; Board-Auftragsoptionen erweitern WF-P8 S04 |
| WF-P9 Plantafel | D-PLAN | Auftrag | Validiert | [MD](<P9 Plantafel/WF-P9 Plantafel/WF-P9 Plantafel.md>) | [Canvas](<P9 Plantafel/WF-P9 Plantafel/WF-P9 Plantafel.canvas>) | - | Subframe nach explizitem OK | Screens validiert 2026-07-09; Monteur-Modus = 1 Frame Heute<->Woche; Konflikt-Dialog wird gebaut |
@@ -154,14 +154,26 @@ Diese Datei ist der erste Ort, um zu sehen:
| S07 | Duplikat-Tool | WF-P6 Kontakte und Organisationen | Settings-Liste | Bauen | Validiert | `/admin/duplicates` | [MD](<P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/S07 Duplikat-Tool.md>) | - | [Canvas](<P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.canvas>) |
| M03 | Zusammenfuehren (Seite an Seite) | WF-P6 Kontakte und Organisationen | Modal (gross) | Bauen | Validiert | aus S07 | [MD](<P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/Screens/M03 Zusammenfuehren.md>) | - | [Canvas](<P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.canvas>) |
| D01 | Inline-Anlegen in Liste (Notion-Stil) | WF-P6 Kontakte und Organisationen | Idee | Spaeter | Dokumentiert | in S01 | [MD](<P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen/WF-P6 Kontakte und Organisationen.md>) | - | - |
| S01 | Lead-Inbox (Triage) | WF-P7 Leads | Liste | Bauen | Validiert | `/leads` | [MD](<P7 Leads/WF-P7 Leads/Screens/S01 Lead-Inbox.md>) | - | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| S02 | Lead-Detail | WF-P7 Leads | Detail | Bauen | Validiert | `/leads/:id` | [MD](<P7 Leads/WF-P7 Leads/Screens/S02 Lead-Detail.md>) | - | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| M01 | Lead zu Projekt (Kern-Moment) | WF-P7 Leads | Modal (gross, +Bulk) | Bauen | Validiert | aus S01/S02 | [MD](<P7 Leads/WF-P7 Leads/Screens/M01 Lead zu Projekt.md>) | - | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| S03 | Lead-Statistiken | WF-P7 Leads | KPI-Seite | Bauen | Validiert | `/leads/statistics` | [MD](<P7 Leads/WF-P7 Leads/Screens/S03 Lead-Statistiken.md>) | - | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| M02 | Anfrage anlegen | WF-P7 Leads | Modal | Bauen | Validiert | aus S01 | [MD](<P7 Leads/WF-P7 Leads/Screens/M02 Anfrage anlegen.md>) | - | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| M03 | CSV-Import-Wizard | WF-P7 Leads | Modal/Wizard | Bauen | Validiert (Delta) | aus S01 | [MD](<P7 Leads/WF-P7 Leads/Screens/M03 CSV-Import.md>) | - | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| S04 | Quellen-Verwaltung | WF-P7 Leads | Settings-Liste | Bauen | Validiert | `/admin/lead-sources` | [MD](<P7 Leads/WF-P7 Leads/Screens/S04 Quellen-Verwaltung.md>) | - | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| S05 | Spam-Schutz | WF-P7 Leads | Settings | Bauen | Validiert | `/admin/lead-anti-spam` | [MD](<P7 Leads/WF-P7 Leads/Screens/S05 Spam-Schutz.md>) | - | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| S01 | Arbeitsliste | WF-P7 Leads | priorisierte Liste | Bauen | Fertig / Development-Handoff | Leads > Arbeitsliste | [MD](<P7 Leads/WF-P7 Leads/Screens/S01 Arbeitsliste.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/ae41c6ea-d1b0-4656-9a5c-55f64343962a/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| M05 | Ansicht speichern | WF-P7 Leads | Modal | Bauen | Fertig / Development-Handoff | aus S02 Eingang | [MD](<P7 Leads/WF-P7 Leads/Screens/M05 Ansicht speichern.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/c011c64f-df15-42c2-b920-66f0ebea87fd/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| S03 | Lead-Record | WF-P7 Leads | Detail | Bauen | Fertig / Development-Handoff | aus S01/S02 | [MD](<P7 Leads/WF-P7 Leads/Screens/S03 Lead-Record.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/6c173984-ea71-4d85-b53e-ebc397b3c821/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| V01 | Abarbeiten-Modus | WF-P7 Leads | Arbeitsmodus | Bauen | Fertig / Development-Handoff | aus S01 | [MD](<P7 Leads/WF-P7 Leads/Screens/V01 Abarbeiten-Modus.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/f2451766-d918-49b2-8c77-913e4817d31a/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| M08 | Ansprechpartner hinzufuegen | WF-P7 Leads | Modal | Bauen | Fertig / Development-Handoff | aus S03 | [MD](<P7 Leads/WF-P7 Leads/Screens/M08 Ansprechpartner hinzufuegen.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/c7949b46-6b91-47ec-b08c-959f686df55b/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| S02-K | Eingang Karten | WF-P7 Leads | Kartenliste | Bauen | Fertig / Development-Handoff | Leads > Eingang | [MD](<P7 Leads/WF-P7 Leads/Screens/S02 Eingang Karten.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/165bfa17-8792-4616-bfb6-d064bc7352a8/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| S02-L | Eingang Liste | WF-P7 Leads | Tabellenliste | Bauen | Fertig / Development-Handoff | Leads > Eingang | [MD](<P7 Leads/WF-P7 Leads/Screens/S02 Eingang Liste.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/24d7b73c-39f4-4c74-adf4-8493861adb68/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| M01 | Konversion | WF-P7 Leads | Modal | Bauen | Fertig / Development-Handoff | aus S03 | [MD](<P7 Leads/WF-P7 Leads/Screens/M01 Konversion.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/1609485c-d315-4cdf-8e41-ad1dfb0b2691/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| M02 | Lead anlegen | WF-P7 Leads | Modal | Bauen | Fertig / Development-Handoff | aus S01 | [MD](<P7 Leads/WF-P7 Leads/Screens/M02 Lead anlegen.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/14a837e3-c2f7-4289-9ae4-d9427935e74f/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| M02-K | Lead anlegen Kontakt verknuepfen | WF-P7 Leads | Modal-Variante | Bauen | Fertig / Development-Handoff | in M02 | [MD](<P7 Leads/WF-P7 Leads/Screens/M02 Lead anlegen Kontakt verknuepfen.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/75858347-70f9-4233-99f6-e72f0852ccab/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| M07 | E-Mail schreiben | WF-P7 Leads | schwebender Composer | Bauen | Fertig / Development-Handoff | aus S03 | [MD](<P7 Leads/WF-P7 Leads/Screens/M07 E-Mail schreiben.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/9a4d7a13-73e3-412d-8beb-0c6dfcc7617c/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| V06 | E-Mail minimiert | WF-P7 Leads | Composer-Variante | Bauen | Fertig / Development-Handoff | aus M07 | [MD](<P7 Leads/WF-P7 Leads/Screens/V06 E-Mail minimiert.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/25f763a3-8146-4330-97a5-394510ac0b17/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| V07 | E-Mail Vollbild | WF-P7 Leads | Composer-Variante | Bauen | Fertig / Development-Handoff | aus M07 | [MD](<P7 Leads/WF-P7 Leads/Screens/V07 E-Mail Vollbild.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/20deb403-a0a8-48aa-944b-65a7c464fa7b/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| M03 | Dubletten-Pruefung | WF-P7 Leads | Modal | Bauen | Fertig / Development-Handoff | aus M02 | [MD](<P7 Leads/WF-P7 Leads/Screens/M03 Dubletten-Pruefung.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/36fb8b6a-bced-44a3-b8bd-76ae3ecf7cdd/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| V08 | Verwerfen bestaetigen | WF-P7 Leads | Bestätigung | Bauen | Fertig / Development-Handoff | aus S02 | [MD](<P7 Leads/WF-P7 Leads/Screens/V08 Verwerfen bestaetigen.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/ecc9c8b6-ab3a-4dc3-82d2-6f98f2829344/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| M04 | Naechste Aktion | WF-P7 Leads | Modal | Bauen | Fertig / Development-Handoff | aus S03 | [MD](<P7 Leads/WF-P7 Leads/Screens/M04 Naechste Aktion.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/9b3a7954-384f-42ed-9b04-934f30adbc0f/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| M06 | Dialer | WF-P7 Leads | schwebendes Panel | Bauen | Fertig / Development-Handoff | aus S03 | [MD](<P7 Leads/WF-P7 Leads/Screens/M06 Dialer.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/dcd35b81-dce7-4257-be0d-8755adeffe8b/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| V02 | Dialer Tastenfeld | WF-P7 Leads | Dialer-Variante | Bauen | Fertig / Development-Handoff | aus M06 | [MD](<P7 Leads/WF-P7 Leads/Screens/V02 Dialer Tastenfeld.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/8960b4b1-cecb-4050-a322-2e8e0b30f0ad/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| V03 | Dialer Im Gespraech | WF-P7 Leads | Dialer-Variante | Bauen | Fertig / Development-Handoff | aus M06 | [MD](<P7 Leads/WF-P7 Leads/Screens/V03 Dialer Im Gespraech.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/b81072df-5ffd-45b9-959e-166a830807e6/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| V05 | Dialer kompakt | WF-P7 Leads | Dialer-Variante | Bauen | Fertig / Development-Handoff | aus M06 | [MD](<P7 Leads/WF-P7 Leads/Screens/V05 Dialer kompakt.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/b9ea58a5-7e98-435f-8a5b-e696cbc2709b/edit>) | [Canvas](<P7 Leads/WF-P7 Leads/WF-P7 Leads.canvas>) |
| S00 | Boards-Startseite | WF-P8 Pipelines | Board-Auswahl | Bauen | In Subframe | Einstieg Pipelines | [MD](<P8 Pipelines/WF-P8 Pipelines/Screens/S00 Boards-Startseite.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/1778cf5e-777b-439c-81b6-c51f85283cc4/edit>) | [Canvas](<P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas>) |
| S01 | Kanban-Board | WF-P8 Pipelines | Board | Bauen | In Subframe | aus S00 | [MD](<P8 Pipelines/WF-P8 Pipelines/Screens/S01 Kanban-Board.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/52699d37-974d-4f5d-b3d0-003de765b692/edit>) | [Canvas](<P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas>) |
| S02 | Pipelines Detailansicht | WF-P8 Pipelines | Projekt-Detail / Editor | Bauen | In Subframe | aus S01/S03 | [MD](<P8 Pipelines/WF-P8 Pipelines/Screens/S02 Pipelines Detailansicht.md>) | [Subframe](<https://app.subframe.com/f023064a5ca0/design/8f60a380-bb06-4ed7-b21f-1abd1c8ddbb7/edit>) | [Canvas](<P8 Pipelines/WF-P8 Pipelines/WF-P8 Pipelines.canvas>) |
@@ -392,9 +404,13 @@ Diese Datei ist der erste Ort, um zu sehen:
| WF-P6 Kontakte | Inline-Anlegen (Notion-Stil) | Spaeter | Plus in der Liste -> neue Zeile inline; leere Zeile loescht sich automatisch. | Davids Idee, dokumentiert; erstmal nicht bauen |
| WF-P6 Kontakte | Listen-Struktur | Genommen | Zwei getrennte Reiter (Kontakte = ALLE Personen inkl. Ansprechpartner mit sichtbarer Org+Rolle; Organisationen separat); nie gemischt. | Validiert 2026-07-08 |
| WF-P6 Kontakte | Anlege-Regeln + Hauptkontakt | Genommen | Privatperson ohne Kontaktart-Frage; Org auch ohne Person; genau EIN Hauptkontakt je Org, erste Person automatisch (umhaengbar); auch Privatpersonen koennen Sekundaerkontakte haben. | Validiert 2026-07-08 |
| WF-P7 Leads | Lead->Projekt-Form | Genommen | Grosses Modal mit 3 Sektionen (Vererbungs-Vorschau, Board+Spalte, Kontakt verknuepfen); auch als Bulk-Variante (Massen-Konvertierung). | Bulk-Machbarkeit mit Dev bestaetigen |
| WF-P7 Leads | CSV-Import-Wizard | Genommen (Delta) | Datei -> Spalten zuordnen -> Vorschau/Duplikat-Regel -> Import im Hintergrund. Steht nicht im Dev-Ticket. | Change-Request an Dev |
| WF-P7 Leads | Anfrage anlegen | Genommen | Modal (wie Kontakt anlegen); Inline-Anlegen (Plus -> Zeile) als gemeinsames Spaeter-Muster mit P6 dokumentiert. | Validiert 2026-07-08 |
| WF-P7 Leads | Aktueller Subframe-Bestand | Geltend / final | 20 Seiten aus `WF-P7 LeadListe`; Namen, UUIDs, Links und sichtbare JSX-Inhalte sind in Paket, Screen-Dateien und Canvas synchronisiert. | Finaler MCP-Abgleich 2026-08-20 |
| WF-P7 Leads | Eingang und Arbeitsliste | Geltend / final | S02 Karten/Liste triagiert neue Anfragen. `Übernehmen` weist der handelnden Person zu, `Zuweisen` einer gewählten Person; beide führen in S01. | Handoff-Logik 2026-08-20 |
| WF-P7 Leads | Deal oder Projekt | Finaler UI-Stand | Subframe zeigt `Qualifiziert zu Deal` und `In Deal umwandeln` auf festem Vertriebsboard. Die ältere Projekt-Konversion bleibt als Vertragsdelta dokumentiert, ist aber kein Screen-Handoff-Blocker. | Davids Finalisierungsanweisung 2026-08-20 |
| WF-P7 Leads | Freigabe und Konversionsziel | Nicht im finalen P7-UI | `weiterverarbeitung_freigabe` sowie die Wahl von Ziel-Pipeline und Startstatus sind im finalen Konversionsfluss nicht gebaut. | Separates Produkt-/Development-Folgethema |
| WF-P7 Leads | Statistik, Quellen, Anti-Spam, CSV | Nicht im finalen P7-Flow | Diese Bereiche besitzen keine aktuelle Subframe-Seite und bleiben als separate Ticketkandidaten dokumentiert. | Kein Blocker für diesen Screen-Handoff |
| WF-P7 Leads | Lead manuell anlegen | Geltend / final | M02 mit Privatperson/Firma, Kontakt neu/verknüpfen und M03 Dubletten-Prüfung ersetzt die alte Planung `Anfrage anlegen`. | Finaler MCP-Abgleich 2026-08-20 |
| WF-P7 Leads | Standardzustände | Development-Standard | Keine eigenen Empty-, Loading-, Fehler-, Permission- oder Erfolgsseiten im finalen Flow; Development verwendet die bestehenden Standardmuster. | Eigene Screens wären späterer Produktumfang |
| WF-P8 Pipelines | Aktueller Subframe-Bestand | Geltend | 23 Seiten im Flow `(MCP) WF-P8 Pipelines`; alle Namen, UUIDs, Links und JSX-Inhalte sind in Paket, Screen-Dateien und Canvas synchronisiert. | MCP-Abgleich 2026-07-28 |
| WF-P8 Pipelines | Board- und Listenansicht | Geltend | S01 und S03 sind zwei Ansichten derselben Projektdatenbasis; S01a/S03a sind die gebauten Empty States. | Im aktuellen JSX sichtbar |
| WF-P8 Pipelines | Normale Auswahl vs. Admin-Verwaltung | Geltend | S00 ist die normale Board-Auswahl mit Zugriffsgates; S07 ist die Admin-Boardverwaltung. | Im aktuellen JSX explizit beschrieben |