48 lines
2.1 KiB
Markdown
48 lines
2.1 KiB
Markdown
# Migrations-Plan: Legacy GSheets -> Company Explorer (Robotics Edition v0.8.5)
|
|
|
|
**Kontext:** Strategische Neuausrichtung der Lead-Analyse für RoboPlanet.
|
|
**Zentrale Philosophie:** Trennung von CRM-Historie ("Was wir wissen") und KI-Recherche ("Was aktuell wahr ist").
|
|
|
|
## 14. Detaillierte Logik der neuen Datenfelder (v2.0)
|
|
|
|
... (Kapitel 14 bleibt unverändert) ...
|
|
|
|
## 15. Offene Arbeitspakete (Bauleitung)
|
|
|
|
### Task 1: UI-Implementierung "Data Match & Strategy"
|
|
(In Arbeit / Teilweise erledigt durch Gemini CLI)
|
|
|
|
### Task 2: Intelligenter CRM-Importer (Bestandsdaten)
|
|
|
|
**Ziel:** Importieren der `demo_100.xlsx` in die SQLite-Datenbank unter Berücksichtigung von Dubletten und Datenqualität.
|
|
|
|
**Dateien:**
|
|
* `company-explorer/backend/scripts/ingest_superoffice_excel.py`
|
|
|
|
**Anforderungen & Logik:**
|
|
|
|
1. **Dateihandling:**
|
|
* Nutze `openpyxl` (oder `pandas`, falls im Container installiert).
|
|
* **WICHTIG:** Die Spalte `PLZ` muss zwingend als **String** eingelesen werden, um führende Nullen (z.B. 01234) zu erhalten.
|
|
* Normalisiere die Spalte `Website`: Entferne `https://`, `http://`, `www.` und abschließende Slashes.
|
|
|
|
2. **Matching-Logik (Deduplizierung):**
|
|
* Suche in Tabelle `companies` nach:
|
|
* a) `crm_id` (falls in DB bereits vorhanden).
|
|
* b) `crm_vat` (Ust-ID Match).
|
|
* c) Normalisierte Domain (Website).
|
|
* d) Fuzzy Name + Stadt (Score < 1.0).
|
|
|
|
3. **Update-Prozess:**
|
|
* **Match gefunden:** Befülle nur die `crm_*` Spalten (`crm_name`, `crm_address`, `crm_website`). Ändere NICHT die Felder `name` oder `website`, falls diese schon durch Recherche befüllt wurden.
|
|
* **Kein Match:** Lege neuen Record an. Kopiere CRM-Werte initial in `crm_*` UND in die Golden-Record Felder (`name`, `website`).
|
|
* **Status:** Setze `status` auf `TO_ENRICH`.
|
|
|
|
4. **Länder-Fokus:**
|
|
* Gehe davon aus, dass alle Leads für den deutschen Markt sind (`country="DE"`).
|
|
|
|
**Akzeptanzkriterien:**
|
|
* Skript läuft ohne Fehler durch.
|
|
* In der SQLite-DB sind die `crm_` Felder befüllt.
|
|
* Führende Nullen bei PLZ bleiben erhalten.
|