Docs: Add detailed architectural documentation
This commit is contained in:
105
TRADING_TWINS_DOCUMENTATION.md
Normal file
105
TRADING_TWINS_DOCUMENTATION.md
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
# 🚀 TradingTwins Lead Engine - Documentation
|
||||||
|
|
||||||
|
## 1. Projektübersicht
|
||||||
|
Die **TradingTwins Lead Engine** ist ein spezialisiertes Automatisierungs-Tool zur Verarbeitung eingehender B2B-Leads (speziell von der Plattform "tradingtwins").
|
||||||
|
|
||||||
|
**Ziel:** Minimierung der "Time-to-Response" und Maximierung der Lead-Qualität durch automatische Anreicherung und Bewertung.
|
||||||
|
|
||||||
|
Das Tool fungiert als **Middleware** zwischen dem E-Mail-Eingang und dem zentralen Intelligence-Hub (**Company Explorer**).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Architektur & Workflow
|
||||||
|
|
||||||
|
### System-Komponenten
|
||||||
|
1. **Lead Engine (Python/Streamlit):**
|
||||||
|
* Hält den State der Leads (Neu, Synced, Drafted).
|
||||||
|
* Bietet ein Dashboard zur Überwachung.
|
||||||
|
* Führt die Logik aus.
|
||||||
|
2. **Company Explorer (CE):**
|
||||||
|
* Single Source of Truth für Firmendaten.
|
||||||
|
* Führt die eigentliche Web-Recherche (Discovery) und Bewertung (Scoring) durch.
|
||||||
|
3. **SQLite Datenbank (`data/leads.db`):**
|
||||||
|
* Lokaler Speicher für Lead-Status und Historie.
|
||||||
|
|
||||||
|
### Der Prozess-Flow (Sync Logic)
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
graph TD
|
||||||
|
A[E-Mail Eingang] -->|Parser| B(Lead Engine DB)
|
||||||
|
B --> C{Check: Existiert Firma in CE?}
|
||||||
|
|
||||||
|
C -- JA --> D[Hole ID & Status]
|
||||||
|
C -- NEIN --> E[Erstelle Firma via API]
|
||||||
|
|
||||||
|
E --> F[Trigger: Discovery & Enrichment]
|
||||||
|
D --> G[Update Lead-Status: 'Synced']
|
||||||
|
F --> G
|
||||||
|
|
||||||
|
G --> H[Dashboard: Ready for Response]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Installation & Deployment
|
||||||
|
|
||||||
|
Das System läuft als Docker-Container.
|
||||||
|
|
||||||
|
### Voraussetzungen
|
||||||
|
* Zugriff auf das `lead-engine-mvp` Git-Repository.
|
||||||
|
* Laufender **Company Explorer** im selben Netzwerk (oder erreichbar via IP).
|
||||||
|
|
||||||
|
### Starten (Docker)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Image bauen
|
||||||
|
docker build -t lead-engine .
|
||||||
|
|
||||||
|
# 2. Container starten
|
||||||
|
# WICHTIG: Ports mappen & Netwerk beachten
|
||||||
|
docker run -d \
|
||||||
|
-p 8501:8501 \
|
||||||
|
--name lead-engine \
|
||||||
|
-e CE_API_URL="http://192.168.178.6:8090/ce/api" \
|
||||||
|
-e CE_API_USER="admin" \
|
||||||
|
-e CE_API_PASS="gemini" \
|
||||||
|
lead-engine
|
||||||
|
```
|
||||||
|
|
||||||
|
### Environment Variablen
|
||||||
|
|
||||||
|
| Variable | Default | Beschreibung |
|
||||||
|
| :--- | :--- | :--- |
|
||||||
|
| `CE_API_URL` | `http://192.168.178.6:8090/ce/api` | Basis-URL zur Company Explorer API (via Nginx Proxy) |
|
||||||
|
| `CE_API_USER` | `admin` | Benutzer für Basic Auth |
|
||||||
|
| `CE_API_PASS` | `gemini` | Passwort für Basic Auth |
|
||||||
|
| `PYTHONUNBUFFERED` | `1` | Wichtig für Docker Logs |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Technische Details
|
||||||
|
|
||||||
|
### Datenmodell (SQLite)
|
||||||
|
Die lokale Datenbank `leads.db` speichert:
|
||||||
|
* `source_id`: ID aus der E-Mail (TradingTwins Lead-ID).
|
||||||
|
* `raw_body`: Der originale E-Mail-Text.
|
||||||
|
* `enrichment_data`: JSON-Blob mit Daten vom Company Explorer (Score, Vertical, IDs).
|
||||||
|
* `status`: `new` -> `synced` -> `drafted` -> `sent`.
|
||||||
|
|
||||||
|
### API Integration (Company Explorer)
|
||||||
|
Das Tool nutzt folgende Endpunkte des CE:
|
||||||
|
|
||||||
|
1. **Suche:** `GET /companies?search={Name}`
|
||||||
|
* Prüft auf Duplikate.
|
||||||
|
2. **Erstellung:** `POST /companies`
|
||||||
|
* Payload: `{"name": "...", "city": "..."}`
|
||||||
|
3. **Discovery:** `POST /enrich/discover`
|
||||||
|
* Triggert den Crawler, um Webseite und Branche zu finden.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. Roadmap / Offene Punkte
|
||||||
|
|
||||||
|
* **[ ] IMAP Live-Anbindung:** Ersetzen des aktuellen Mock-Ingests durch echten IMAP-Listener (Skript `check_mail.py` existiert bereits als Vorlage).
|
||||||
|
* **[ ] Response Generation:** Abruf eines "Sales Pitches" vom Company Explorer basierend auf den angereicherten Daten (Pain Points, Vertical).
|
||||||
|
* **[ ] CRM Push:** Optionale Weiterleitung an SuperOffice/Odoo nach erfolgreicher Qualifizierung.
|
||||||
Reference in New Issue
Block a user