# Aufgaben & Meilensteine ## Phase 1: Stabilisierung & Daten-Import (Abgeschlossen) - [x] **Stabilität:** `ModuleNotFoundError` durch Downgrade der `openai`-Bibliothek beheben. - [x] **Stabilität:** `json.JSONDecodeError` durch robuste Parser in `helpers.py` beheben. - [x] **Sync-Design:** Prozess für den Datenabgleich D365 -> GSheet ohne API definieren. - [x] **Implementierung:** `sync_manager.py` für den "Full-Sync mit intelligentem Merge" erstellen. - [x] **Debugging:** Fehler im `SyncManager` (Attribut-, Typ- und Index-Fehler) iterativ beheben. - [x] **Kernproblem-Analyse:** "Header-Mismatch" als Ursache für Datenverlust identifizieren. - [x] **Implementierung:** Header-Normalisierung in der `_load_data`-Methode implementieren. - [x] **Fachlogik:** Spezifische Vergleichsregeln für Länder, Techniker, Umsatz, Mitarbeiter und Branchen definieren und implementieren. - [x] **Tooling:** Einen `simulate_sync`-Modus und einen finalen Statistik-Report implementieren. ## Phase 2: Schließen des Datenkreislaufs (In Arbeit) - [ ] **Design:** Spalten und Format für die D365-Re-Import-Datei definieren. - [ ] **Implementierung:** Eine neue Funktion/einen neuen Modus (`generate_import_file`) erstellen, der die `d365_import.xlsx` erzeugt. - [ ] **Logik:** Die Funktion soll nur Datensätze exportieren, die im letzten Lauf geändert wurden (`ReEval Flag` oder neu erstellt). - [ ] **Logik:** Die Branchennamen müssen vor dem Export mithilfe des Mappings in der `config.py` in das D365-Format übersetzt werden. - [ ] **Testing:** Den vollständigen Round-Trip testen: `sync` -> `reeval` -> `generate_import_file` -> Manueller Import in D365. ## Phase 3: Optimierung der Potenzialanalyse (Abgeschlossen) - [x] **Bugfix:** "Concatenated Year Bug" (z.B. Wolfra 802020) im `MetricParser` behoben. - [x] **Logik:** Smart-Year-Skipping implementiert (Zahlen zwischen 1900-2100 werden als Jahre ignoriert, wenn Alternativen existieren). - [x] **Präzision:** Entity-Confusion (z.B. Therme Erding vs. Hallenbad Erding) durch Standort-Validierung im Such-Prompt minimiert. - [x] **Transparenz:** Confidence Scores (0.0-1.0) und "Proof Snippets" (Original-Textfragmente) in die Datenbank integriert. - [x] **UI:** Confidence-Ampel und Tooltip für Quellen-Beweise im Frontend implementiert. - [x] **Integrität:** Fehlende API-Endpunkte für Firmen-Erstellung, Bulk-Import und Wiki-Overrides wiederhergestellt. ## Lead Engine: Tradingtwins Automation (In Arbeit) - [x] **E-Mail Ingest:** Automatisierter Import von Leads aus dem Postfach `info@robo-planet.de` via Microsoft Graph API. - [x] **Parsing:** Strukturierte Extraktion von Bedarfsdaten (Fläche, Zweck, Funktionen) aus Tradingtwins-HTML. - [x] **Contact Research:** KI-gestützte Rollen-Identifizierung via SerpAPI und Gemini 2.0 Flash. - [x] **CE-Sync:** Automatisches Anlegen von Firmen und Kontakten im Company Explorer inkl. Role-Mapping. - [x] **Drafting:** E-Mail-Generator auf "Human Expert Level" mit Branchen-Fokus und ROI-Argumentation. - [x] **UI: Visuelle Unterscheidung:** Leads nach Herkunft (TradingTwins vs. Website-Formular) optisch differenziert. - [x] **UI: Status-Indikatoren:** Synchronisationsstatus (CE) und Low-Quality-Warnungen direkt im Lead-Header sichtbar. - [x] **Drafts: Persistente Speicherung:** Generierte E-Mail-Entwürfe werden dauerhaft in der Datenbank gespeichert. - [ ] **IT-Klärung:** Microsoft Bookings Berechtigungen (`Bookings.Read.All`, `BookingsAppointment.ReadWrite.All`) für die Entra App anfragen und "Admin Consent" einholen. - [ ] **Infrastruktur:** Korrekten Buchungslink (persönliches Konto) ermitteln und in der `.env` (Variable `BOOKING_LINK`) hinterlegen. - [ ] **CRM-Integration:** Modul "Push to SuperOffice" entwickeln, um Personen und E-Mail-Entwürfe (als Aufgabe/Aktivität) direkt im CRM anzulegen. - [ ] **Daten-Synchronisation:** Notion-Produktdatenbank in die lokale DB spiegeln, um Produktauswahl und ROI-Berechnung zu dynamisieren. - [ ] **Logik:** ROI-Kalkulation im E-Mail-Entwurf auf Basis von echten Leistungsdaten (m²/h) und Preisen schärfen. - [ ] **UI:** "Copy to Clipboard" Funktion für den fertigen Entwurf in der Web-App finalisieren. - [ ] **Phase 2: Intelligente Antworten für Kontaktformulare:** Entwicklung einer kontextbezogenen Antwortlogik für Website-Formular-Leads (zunächst allgemeine Bestätigung, später KI-gestützt auf Nachrichtsinhalt basierend). ## Heatmap Tool (Standalone) ### Status: Beta (Funktionsfähig mit Basisfunktionen) - [x] **Setup:** Projektstruktur mit FastAPI (Backend) und React/Vite (Frontend) aufgesetzt. - [x] **Daten:** Upload von XLSX-Dateien und automatische PLZ-Erkennung implementiert. - [x] **Visualisierung:** Leaflet-Karte mit "Points"-Ansicht (CircleMarker) und "Heatmap"-Ansicht (Density) erstellt. - [x] **Interaktivität:** Dynamische Filterung nach Spaltenwerten implementiert. - [x] **UI/UX:** Filter-Panel redesignet (Checkboxen, Collapsible) und Tooltip-Manager integriert (Drag & Drop, Sichtbarkeit). - [x] **Clustering:** Marker Clustering für die Punkte-Ansicht implementiert. - [x] **Fix:** Docker-Networking Probleme (Vite Proxy) gelöst. - [x] **Fix:** Infinite-Loop bei zoom-adaptiver Legende durch Revert behoben (Feature als instabil markiert). ### Offene Punkte & Erweiterungen - [ ] **Export:** Funktion "Karte als PNG speichern" implementieren. - [ ] **Geo-Aggregation:** Aggregation nach Bundesland und Landkreis hinzufügen. - [ ] **Multi-Layer:** Vergleichsansicht (z.B. Kunden vs. Techniker) durch zweiten Datei-Upload ermöglichen.