231 lines
12 KiB
Markdown
231 lines
12 KiB
Markdown
# Technisches Zielbild: GTM-Engine & Google Cloud Integration
|
|
|
|
Dieses Dokument beschreibt die Architektur und den Datenfluss der **GTM-Engine (Go-to-Market Engine)**.
|
|
|
|
## Executive Summary: Was wir tun
|
|
Wir automatisieren die **Qualifizierung von B2B-Accounts** (Firmen), um den Vertrieb gezielter und effizienter zu steuern ("Whale Hunting").
|
|
|
|
Anstatt dass ein Mitarbeiter manuell 20 Minuten lang Webseiten liest, um herauszufinden, ob eine Firma relevant ist, übernimmt dies das System automatisiert:
|
|
1. **Input:** Firmenname & Webseite (aus CRM oder Lead-Liste).
|
|
2. **Analyse:** Wir aggregieren öffentlich verfügbare Daten (Website-Text, Impressum, Wikipedia).
|
|
3. **KI-Verarbeitung:** Ein Sprachmodell (Gemini) agiert als "Lese-Assistent". Wir stellen ihm gezielte Fragen an den Kontext (z.B. *"Hat diese Firma mehr als 500 Mitarbeiter?", "Nutzen sie Roboter?", "Sind sie im Bereich Logistik tätig?"*).
|
|
4. **Output:** Strukturierte Daten (Branche, Potential-Score, Summary) fließen zurück ins CRM zur Vertriebssteuerung.
|
|
|
|
**Wichtig:** Es findet **keine** automatisierte Entscheidung über natürliche Personen statt. Wir bewerten Firmen-Potentiale.
|
|
|
|
## Kern-Prinzipien
|
|
1. **Trennung von Identität & Daten:** Nutzung von Unternehmens-Identitäten (Managed Google ID) statt privater Konten.
|
|
2. **Datensparsamkeit:** KI-Verarbeitung erfolgt primär auf anonymen Firmendaten (B2B), nicht auf Personendaten.
|
|
3. **Lokale Hoheit:** Die Business-Logik (Python/Docker) läuft kontrolliert lokal oder im Intranet, nicht "in der Cloud".
|
|
|
|
## Architektur-Übersicht
|
|
|
|
```mermaid
|
|
graph TD
|
|
%% Subgraph: Corporate Environment (Wackler/RoboPlanet)
|
|
subgraph Corporate_IT ["🏢 Wackler / RoboPlanet Umgebung"]
|
|
|
|
subgraph User_Layer ["🧑💻 User & Identity"]
|
|
User[("Christian (User)")]
|
|
CorpID["Corporate Google ID<br/>(@roboplanet.de / @wackler-group.de)"]
|
|
User --> CorpID
|
|
end
|
|
|
|
subgraph Local_Execution ["⚙️ Execution Layer (Local/Server)"]
|
|
Docker["🐳 Docker Container<br/>(GTM-Engine / Python)"]
|
|
|
|
subgraph Data_Handling ["🛡️ Daten-Verarbeitung"]
|
|
RawData[("Rohdaten<br/>(Websites, Listen)")]
|
|
Anonymizer["⚙️ Pre-Processing<br/>(Filterung PII / Personendaten)"]
|
|
end
|
|
|
|
ResultStorage[("Ergebnisse<br/>(Notion / CRM / Excel)")]
|
|
end
|
|
end
|
|
|
|
%% Subgraph: Google Cloud Platform (Managed)
|
|
subgraph Google_Cloud ["☁️ Google Cloud Platform (Enterprise Tenant)"]
|
|
|
|
subgraph IAM_Security ["🔐 Security & Billing"]
|
|
GCP_Project["GCP Projekt<br/>(z.B. 'gtm-engine-prod')"]
|
|
ServiceAccount["🤖 Service Account<br/>(Technischer User für API)"]
|
|
Billing["💳 Corporate Billing<br/>(Zentrale Abrechnung)"]
|
|
end
|
|
|
|
subgraph AI_Services ["🧠 AI Services (Vertex AI / Gemini)"]
|
|
GeminiAPI["⚡ Gemini API<br/>(Enterprise Mode: Zero Logging)"]
|
|
end
|
|
end
|
|
|
|
%% Data Flow Connections
|
|
CorpID -.->|"Verwaltet"| GCP_Project
|
|
Docker -->|"Nutzt API Key"| ServiceAccount
|
|
ServiceAccount -->|"Authentifiziert"| GeminiAPI
|
|
|
|
RawData --> Anonymizer
|
|
Anonymizer -->|"1. Anonymisierter Prompt<br/>(Nur Firmendaten)"| Docker
|
|
Docker -->|"2. API Request (HTTPS/TLS)"| GeminiAPI
|
|
GeminiAPI -->|"3. JSON Response<br/>(Strukturierte Daten)"| Docker
|
|
Docker -->|"4. Speicherung"| ResultStorage
|
|
|
|
%% Styling
|
|
style Corporate_IT fill:#f9f9f9,stroke:#333,stroke-width:2px
|
|
style Google_Cloud fill:#e8f0fe,stroke:#4285f4,stroke-width:2px
|
|
style Anonymizer fill:#fff3e0,stroke:#f57c00,stroke-dasharray: 5 5
|
|
style GeminiAPI fill:#e8f0fe,stroke:#4285f4,stroke-width:4px
|
|
```
|
|
|
|
## Erläuterung für die IT
|
|
|
|
1. **Identity (IAM):**
|
|
* Es wird kein "Schatten-Account" genutzt. Christian authentifiziert sich mit seiner bestehenden Corporate Identity (`@roboplanet`).
|
|
* Für die automatisierte Ausführung (Skripte) wird später ein **Service Account** beantragt, dessen Schlüssel (JSON Key) sicher im lokalen Container verwaltet wird (Secrets Management).
|
|
|
|
2. **Google Cloud Projekt:**
|
|
* Wir benötigen ein dediziertes GCP-Projekt (z.B. `rp-marketing-intel`), das im Rechnungskreis der Firma hängt.
|
|
* Vorteil: Volle Transparenz über Kosten und Nutzung im Admin-Dashboard der IT.
|
|
|
|
3. **Environment Strategie (Dev/Prod Trennung):**
|
|
* Um Entwicklungskosten von Betriebskosten sauber zu trennen und die Stabilität zu gewährleisten, werden **zwei separate GCP-Projekte** empfohlen:
|
|
* **`rp-marketing-intel-dev`**: Sandbox für Entwicklung (Gemini CLI, Tests). Hier können Budgets gedeckelt und Quotas flexibel genutzt werden, ohne den Betrieb zu gefährden ("Blast Radius" Minimierung).
|
|
* **`rp-marketing-intel-prod`**: Stabile Umgebung für den Company Explorer. Exklusive Quotas und striktes Monitoring für den operativen Betrieb.
|
|
|
|
4. **Datenschutz (DSGVO):**
|
|
* **Input:** Wir senden Webseiten-Texte und Firmennamen an die API. Wir senden *keine* Mitarbeiterlisten oder Kunden-Adressdaten zur Analyse.
|
|
* **Enterprise-Garantie:** Durch Nutzung der Enterprise-Verträge (via GCP) ist vertraglich geregelt, dass Google die Daten **nicht** zum Training eigener Modelle verwendet (anders als bei der kostenlosen ChatGPT/Gemini-Consumer-Version).
|
|
|
|
## Datenschutz- & Lizenz-Architektur (Das Zwei-Wege-Modell)
|
|
|
|
Um maximale Sicherheit und Compliance zu gewährleisten, trennen wir technisch strikt zwischen **Automatisierung** (Massenverarbeitung) und **Assistenz** (Ad-hoc Arbeit).
|
|
|
|
```mermaid
|
|
flowchart TD
|
|
User[User: Floke]
|
|
|
|
subgraph Safe_Space_GCP ["Pfad A: Die Engine (Automation)"]
|
|
style Safe_Space_GCP fill:#e6f4ea,stroke:#137333
|
|
API[Python Scripts / GTM-Engine] --> Vertex[Google Vertex AI API]
|
|
Vertex --> Processing[Data Processing in EU]
|
|
Processing -- "No Training / Zero Retention" --> Output_API[Strukturierte Daten]
|
|
end
|
|
|
|
subgraph Safe_Space_Workspace ["Pfad B: Der Assistent (Ad-Hoc)"]
|
|
style Safe_Space_Workspace fill:#e8f0fe,stroke:#1967d2
|
|
Browser[Browser / Chat] --> Gemini[Gemini Enterprise App]
|
|
Gemini -- "Enterprise Terms / No Training" --> Output_Chat[Text / Drafts]
|
|
end
|
|
|
|
User -- "Programming / CLI" --> API
|
|
User -- "Manual / Web" --> Browser
|
|
```
|
|
|
|
### Pfad A: Die Engine (Google Cloud Platform / Vertex AI)
|
|
* **Einsatzzweck:** Automatisierte Skripte, Massenanalyse (GTM-Engine), Coding.
|
|
* **Lizenz:** Pay-per-Use (über GCP Projekt). Keine User-Lizenz erforderlich.
|
|
* **Datenschutz:**
|
|
* **GCP Enterprise Terms:** Standardmäßig **kein Training** auf Kundendaten.
|
|
* **Region Lock:** Datenverarbeitung wird technisch auf `europe-west3` (Frankfurt) oder `europe-west4` gezwungen.
|
|
* **Zero Retention:** API-Calls werden nach Verarbeitung gelöscht (stateless).
|
|
|
|
### Pfad B: Der Assistent (Google Workspace / Gemini Enterprise)
|
|
* **Einsatzzweck:** Ad-hoc Chat im Browser (Texte umschreiben, Brainstorming), Integration in Docs/Gmail.
|
|
* **Lizenz:** Erfordert **"Gemini Enterprise"** (oder Business) Add-on für den User.
|
|
* **Datenschutz:**
|
|
* Nur mit der Enterprise-Lizenz greift die "Enterprise Data Protection".
|
|
* Ohne Lizenz ist dieser Pfad **gesperrt** (aktueller Status) oder unsicher (Consumer Terms).
|
|
* **Vorschlag:** Freischaltung nur für Pilot-User mit Lizenz.
|
|
|
|
## Datenschutz & Compliance Strategie
|
|
|
|
### Grundsatz: "Safe Space" & Transparenz
|
|
Wir verfolgen einen zweistufigen Ansatz ("Salami-Taktik"), um Datenschutzrisiken zu minimieren und Vertrauen aufzubauen.
|
|
|
|
**Phase 1: Der "Safe Space" (Aktueller Status)**
|
|
* **Datenbasis:** Ausschließlich öffentlich zugängliche B2B-Firmendaten (Handelsregister, Webseiten).
|
|
* **Personenbezug:** Keiner (oder nur reine B2B-Kontaktdaten gem. DSGVO Erwägungsgrund 47 / berechtigtes Interesse).
|
|
* **Infrastruktur:** Nutzung der bestehenden Google Workspace Enterprise Umgebung ("Walled Garden").
|
|
* **Training:** Expliziter Ausschluss der Datennutzung zu Trainingszwecken in der Google Admin Konsole (Enterprise Data Protection).
|
|
|
|
**Phase 2: Erweiterte Szenarien (Zukunft / Genehmigungspflichtig)**
|
|
* **Szenario:** Nutzung interner Daten (z.B. Support-Tickets) zur Mustererkennung.
|
|
* **Voraussetzung:** Vorherige Abstimmung eines separaten Datenschutzkonzeptes (z.B. PII-Redaction/Schwärzung vor API-Transfer, Nutzung lokaler LLMs).
|
|
* **Commitment:** Keine Verarbeitung kritischer Daten ohne explizites "Go" durch den Datenschutzbeauftragten.
|
|
|
|
### Technische Maßnahmen
|
|
1. **Vertrag:** Nutzung von Vertex AI im Rahmen des bestehenden Google Workspace Enterprise-Vertrags (DPA).
|
|
2. **Zero Retention:** Nutzung der API im Modus ohne Datenspeicherung seitens Google.
|
|
3. **Data Residency:** Konfiguration der Datenverarbeitung in EU-Rechenzentren (Frankfurt/Belgien) wo möglich.
|
|
|
|
## Spickzettel für den Termin (Fragen & Hypothesen)
|
|
|
|
### Deine Einstiegs-Hypothese ("Wir sind schon compliant"):
|
|
|
|
"Da wir bereits Google Workspace Enterprise nutzen, gehe ich davon aus, dass wir für interne KI-Prozesse (Vertex AI) bereits durch das bestehende DPA abgedeckt sind, solange wir die 'Data Use for Training'-Option deaktiviert haben. Wir führen also kein 'neues Tool' ein, sondern nutzen ein Feature unserer bestehenden, sicheren Infrastruktur."
|
|
|
|
|
|
### Die "Salami"-Frage (Vertrauen bilden):
|
|
|
|
"Wir starten strikt mit Phase 1 (B2B-Daten). Wenn wir später Phase 2 (z.B. Support-Mails) angehen würden: Welche technischen Vorbedingungen (wie PII-Schwärzung) müssten wir aus Ihrer Sicht schaffen, damit das genehmigungsfähig wäre? Wir wollen das gemeinsam entwickeln."
|
|
|
|
|
|
### Der Haftungs-Hebel (für Axel/Geschäftsführung):
|
|
|
|
"Die technische Sicherheit (DSGVO) garantiere ich. Das eigentliche Risiko sehe ich im Wettbewerbsrecht (UWG, Cold Outreach). Das ist eine unternehmerische Entscheidung, keine technische. Ich brauche hierfür die Rückendeckung der GF."
|
|
|
|
|
|
## Vorlage für Axel (Freigabe Cold Outreach)
|
|
|
|
Betreff: Go für GTM-Engine / Risikoübernahme Cold Outreach
|
|
|
|
Hallo Axel,
|
|
|
|
für den Start der GTM-Engine brauche ich noch kurz deine formale Bestätigung.
|
|
|
|
Entscheidung:
|
|
Wir nutzen technisch generierte Leads für die Direktansprache ("Cold Outreach"). Wir sind uns bewusst, dass dies in Deutschland rechtlich eine Grauzone ist (UWG), entscheiden uns aber aus strategischen Wachstumsgründen dafür.
|
|
|
|
Die IT stellt die sichere Infrastruktur; die Verantwortung für die Durchführung der Kampagnen liegt beim Vertrieb/GF.
|
|
|
|
Bitte kurz bestätigen, damit wir loslegen können.
|
|
|
|
|
|
## Backend API (Company Explorer)
|
|
|
|
Das System verfügt bereits über eine standardisierte, dokumentierte API (FastAPI) zur Datenverarbeitung. Dies ermöglicht eine saubere Trennung von Frontend und Backend sowie eine granulare Zugriffskontrolle.
|
|
|
|
**Core Endpoints:**
|
|
|
|
| Methode | Pfad | Beschreibung |
|
|
| :--- | :--- | :--- |
|
|
| `GET` | `/api/health` | System Status Check |
|
|
| `GET` | `/api/companies` | Liste von Unternehmen (Filterbar, Sortierbar) |
|
|
| `GET` | `/api/companies/{id}` | Detailansicht eines Unternehmens |
|
|
| `POST` | `/api/companies` | Manuelle Anlage eines Unternehmens |
|
|
| `POST` | `/api/companies/bulk` | Massenimport (Batch-Processing) |
|
|
| `GET` | `/api/companies/export` | CSV Export der angereicherten Daten |
|
|
|
|
**Enrichment & KI-Analyse:**
|
|
|
|
| Methode | Pfad | Beschreibung |
|
|
| :--- | :--- | :--- |
|
|
| `POST` | `/api/enrich/discover` | Startet Discovery-Prozess (Website-Suche) |
|
|
| `POST` | `/api/enrich/analyze` | Startet KI-Analyse (Scraping + Klassifizierung) |
|
|
| `PUT` | `/api/companies/{id}/industry` | Manuelle Korrektur der KI-Branchenzuordnung |
|
|
| `POST` | `/api/companies/{id}/override/*` | Manuelle Overrides für kritische Datenquellen (Website, Wikipedia, Impressum) |
|
|
|
|
**Quality Assurance:**
|
|
|
|
| Methode | Pfad | Beschreibung |
|
|
| :--- | :--- | :--- |
|
|
| `POST` | `/api/companies/{id}/report-mistake` | Melden von Datenfehlern ("Human in the Loop") |
|
|
| `GET` | `/api/mistakes` | Übersicht gemeldeter Fehler zur Überprüfung |
|
|
| `PUT` | `/api/mistakes/{id}` | Status-Update für Fehlermeldungen (Approved/Rejected) |
|
|
|
|
**Stammdaten & Kataloge:**
|
|
|
|
| Methode | Pfad | Beschreibung |
|
|
| :--- | :--- | :--- |
|
|
| `GET` | `/api/robotics/categories` | Katalog der Robotik-Kategorien |
|
|
| `GET` | `/api/industries` | Katalog der Branchen |
|
|
| `GET` | `/api/job_roles` | Katalog der Job-Rollen |
|