# Phase 3: KI-Workflow Implementierungs-Roadmap ## 🎯 Ziel Vollautomatisierter Buchungsworkflow von E-Mail-Eingang bis zur Fahrer-Zuteilung mit KI-UnterstΓΌtzung. --- ## βœ… Bereits implementiert (Phase B) ### Datenbank: - βœ… BookingStatus erweitert (7 Stati) - βœ… DriverAvailability Model - βœ… Booking-Felder fΓΌr KI & LexOffice - βœ… Migrations durchgefΓΌhrt ### Services: - βœ… AIService (`lib/ai-service.ts`) - E-Mail-Parsing mit GPT-4 - Antwort-Generierung - Vertrags-Personalisierung - βœ… LexOfficeService (`lib/lexoffice.ts`) - Kontakt-Erstellung - Angebots-Erstellung - AuftragsbestΓ€tigungs-Erstellung ### API-Endpunkte: - βœ… `/api/bookings/[id]/ai-analyze` - KI-Analyse - βœ… `/api/bookings/[id]/release-to-drivers` - Admin-Freigabe - βœ… `/api/bookings/[id]/availability` - Fahrer-VerfΓΌgbarkeit - βœ… `/api/bookings/[id]/assign-driver` - Fahrer-Zuteilung - βœ… `/api/cron/check-contracts` - Auto-VertragsprΓΌfung --- ## πŸ“± UI-Komponenten (TODO) ### 1. Admin-Dashboard Erweiterungen #### 1.1 Neue Anfragen (Status: RESERVED + aiParsed) **Component**: `components/admin/NewBookingsQueue.tsx` ```tsx Ansicht: β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ πŸ“¨ Neue Anfragen (3) β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ [KI] Max Mustermann - Hochzeit 15.12.2025 [Analysieren]β”‚ β”‚ πŸ“§ max@example.com | πŸ“ Berlin β”‚ β”‚ πŸ’‘ KI-Analyse: 95% sicher | Antwort-Entwurf bereitβ”‚ β”‚ [Entwurf ansehen] [Angebot erstellen] β”‚ β”‚ β”‚ β”‚ [NEU] Anna Schmidt - Firmenevent 20.12.2025 [Analysieren]β”‚ β”‚ πŸ“§ anna@firma.de | πŸ“ Hamburg β”‚ β”‚ ⚠️ Noch nicht analysiert β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` **Features**: - Liste aller Buchungen mit `status === RESERVED` - Badge "KI" fΓΌr analysierte, "NEU" fΓΌr neue - Inline-Buttons: "Analysieren", "Entwurf ansehen" - KI-Confidence-Anzeige - Schnell-Aktionen #### 1.2 KI-Entwurfs-Dialog **Component**: `components/admin/AIReviewDialog.tsx` ```tsx Modal: β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ πŸ€– KI-Analyse: Max Mustermann [X] β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ βœ… Extrahierte Daten: β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ Name: Max Mustermann [Bearbeiten] β”‚ β”‚ β”‚ β”‚ E-Mail: max@example.com β”‚ β”‚ β”‚ β”‚ Telefon: +49 123 456789 β”‚ β”‚ β”‚ β”‚ Event: 15.12.2025, 18:00 Uhr β”‚ β”‚ β”‚ β”‚ Ort: Hochzeitssaal Berlin, 10115 Berlin β”‚ β”‚ β”‚ β”‚ Typ: Privat β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ πŸ“ KI-Antwort-Entwurf: β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ Sehr geehrter Herr Mustermann, β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ vielen Dank fΓΌr Ihre Anfrage fΓΌr Ihre Hochzeit... β”‚ β”‚ β”‚ β”‚ [... editierbarer Text ...] β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ πŸ“„ Aktionen: β”‚ β”‚ [Angebot erstellen] [Vertrag generieren] [Verwerfen] β”‚ β”‚ β”‚ β”‚ [Alles bestΓ€tigen & senden] ←───────────────────────── β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` **Features**: - Bearbeitbare extrahierte Daten - Editierbarer Antwort-Entwurf - "Alles bestΓ€tigen & senden" β†’ Erstellt Angebot + Vertrag + sendet E-Mail - Status: RESERVED β†’ CONFIRMED #### 1.3 Freizugebende Buchungen (Status: READY_FOR_ASSIGNMENT) **Component**: `components/admin/ReadyForAssignmentQueue.tsx` ```tsx Ansicht: β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ βœ… Freizugebende Buchungen (2) β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ βœ“ Max Mustermann - Hochzeit 15.12.2025 β”‚ β”‚ πŸ“ Vertrag unterschrieben (digital) β”‚ β”‚ πŸ’° AuftragsbestΓ€tigung versendet β”‚ β”‚ [FΓΌr Fahrer freigeben] ←────────────────────────────│ β”‚ β”‚ β”‚ βœ“ Anna Schmidt - Firmenevent 20.12.2025 β”‚ β”‚ πŸ“ Vertrag hochgeladen (analog) β”‚ β”‚ πŸ’° AuftragsbestΓ€tigung versendet β”‚ β”‚ [FΓΌr Fahrer freigeben] β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` **Features**: - Automatisch gefiltert: `status === READY_FOR_ASSIGNMENT` - Zeigt Vertrags-Status - "FΓΌr Fahrer freigeben" β†’ `status = OPEN_FOR_DRIVERS` #### 1.4 Offene Zuweisungen (Status: OPEN_FOR_DRIVERS) **Component**: `components/admin/DriverAssignmentQueue.tsx` ```tsx Ansicht: β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ πŸš— Offene Zuweisungen (1) β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ Max Mustermann - Hochzeit 15.12.2025 β”‚ β”‚ πŸ“ Berlin | ⏰ 18:00 Uhr β”‚ β”‚ β”‚ β”‚ πŸ‘₯ VerfΓΌgbare Fahrer (3): β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚ β”‚ β”‚ ● Hans MΓΌller [Zuweisen] β”‚β”‚ β”‚ β”‚ VW T6, B-HH 1234 β”‚β”‚ β”‚ β”‚ ⭐⭐⭐⭐⭐ (12 Touren) β”‚β”‚ β”‚ β”‚ πŸ’¬ "Kenne die Location gut" β”‚β”‚ β”‚ β”‚ β”‚β”‚ β”‚ β”‚ ● Lisa Schmidt [Zuweisen] β”‚β”‚ β”‚ β”‚ Mercedes Sprinter, HH-LS 567 β”‚β”‚ β”‚ β”‚ ⭐⭐⭐⭐ (8 Touren) β”‚β”‚ β”‚ β”‚ β”‚β”‚ β”‚ β”‚ ● Tom Werner [Zuweisen] β”‚β”‚ β”‚ β”‚ Ford Transit, B-TW 890 β”‚β”‚ β”‚ β”‚ ⭐⭐⭐⭐⭐ (15 Touren) β”‚β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` **Features**: - Liste verfΓΌgbarer Fahrer pro Buchung - Fahrer-Infos: Fahrzeug, Bewertung, Touren-Anzahl - Optionale Nachricht vom Fahrer - "Zuweisen" β†’ Erstellt/aktualisiert Tour, Status = ASSIGNED ### 2. Fahrer-Portal Erweiterungen #### 2.1 VerfΓΌgbare Events **Component**: `components/driver/AvailableEvents.tsx` ```tsx Ansicht: β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ πŸ“… VerfΓΌgbare Events (4) β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ πŸŽ‰ Hochzeit - Berlin β”‚ β”‚ πŸ“… 15.12.2025, 18:00 Uhr β”‚ β”‚ πŸ“ Hochzeitssaal Berlin, Musterstr. 1 β”‚ β”‚ πŸ• Aufbau bis 17:30 Uhr β”‚ β”‚ [Ich bin verfΓΌgbar] ←─────────────────────────────────│ β”‚ β”‚ β”‚ 🏒 Firmenevent - Hamburg β”‚ β”‚ πŸ“… 20.12.2025, 14:00 Uhr β”‚ β”‚ πŸ“ Hotel Alster, Hamburg β”‚ β”‚ πŸ• Aufbau bis 13:30 Uhr β”‚ β”‚ [Ich bin verfΓΌgbar] β”‚ β”‚ β”‚ β”‚ βœ… Du hast dich bereits gemeldet (2) β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` **Features**: - Filtert `status === OPEN_FOR_DRIVERS` - Zeigt Event-Details - "Ich bin verfΓΌgbar" β†’ POST `/api/bookings/[id]/availability` - Optionale Nachricht an Admin #### 2.2 VerfΓΌgbarkeits-Dialog **Component**: `components/driver/AvailabilityDialog.tsx` ```tsx Modal: β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ βœ‹ VerfΓΌgbarkeit bestΓ€tigen [X] β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β”‚ β”‚ Event: Hochzeit - Berlin β”‚ β”‚ Datum: 15.12.2025, 18:00 Uhr β”‚ β”‚ β”‚ β”‚ MΓΆchtest du fΓΌr diesen Event verfΓΌgbar sein? β”‚ β”‚ β”‚ β”‚ Nachricht an Admin (optional): β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ Ich kenne die Location gut und habe Erfahrung mit β”‚ β”‚ β”‚ β”‚ Hochzeiten. β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ [Abbrechen] [BestΓ€tigen] β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` --- ## πŸ”„ Automatisierungs-Jobs ### Cron-Job Setup (Vercel Cron) `vercel.json`: ```json { "crons": [ { "path": "/api/cron/sync-emails", "schedule": "*/5 * * * *" }, { "path": "/api/cron/check-contracts", "schedule": "*/15 * * * *" }, { "path": "/api/cron/sync-lexoffice", "schedule": "*/30 * * * *" } ] } ``` --- ## πŸ“… Implementierungs-Zeitplan ### Sprint 1: Admin KI-Review (2-3 Tage) - [ ] `NewBookingsQueue` Component - [ ] `AIReviewDialog` Component - [ ] Integration in Dashboard - [ ] Test: E-Mail β†’ KI-Analyse β†’ Review β†’ Senden ### Sprint 2: Freigabe-Workflow (2 Tage) - [ ] `ReadyForAssignmentQueue` Component - [ ] Auto-Freigabe nach Vertrag - [ ] Status-Updates testen ### Sprint 3: Fahrer-Portal (2-3 Tage) - [ ] `AvailableEvents` Component - [ ] `AvailabilityDialog` Component - [ ] VerfΓΌgbarkeits-API testen ### Sprint 4: Admin Zuweisung (2 Tage) - [ ] `DriverAssignmentQueue` Component - [ ] Fahrer-Zuweisung UI - [ ] Tour-Erstellung testen ### Sprint 5: E-Mail-Integration (3-4 Tage) - [ ] IMAP E-Mail-Sync - [ ] Webhook fΓΌr neue E-Mails - [ ] Auto-KI-Analyse bei neuer E-Mail ### Sprint 6: Testing & Polish (2-3 Tage) - [ ] End-to-End Tests - [ ] UI/UX-Optimierungen - [ ] Performance-Tests **Gesamt: ~15-20 Tage** --- ## πŸ”‘ BenΓΆtigte API-Keys ### 1. OpenAI API Key - **Wo**: https://platform.openai.com/api-keys - **Kosten**: ~$0.01-0.03 pro E-Mail-Analyse - **Limit**: Empfehlung 100$/Monat ### 2. LexOffice API Key - **Wo**: https://app.lexoffice.de/addons/#/public-api - **Kosten**: Kostenlos im Tarif enthalten - **Limit**: Unbegrenzt ### 3. Google Maps API Key - **Wo**: https://console.cloud.google.com/ - **Kosten**: 200$/Monat gratis - **APIs**: Directions, Distance Matrix, Geocoding --- ## 🎨 Design-System ### Farben (Status-Badges): - `RESERVED`: Blau (#3B82F6) - `CONFIRMED`: Gelb (#F59E0B) - `READY_FOR_ASSIGNMENT`: Lila (#A855F7) - `OPEN_FOR_DRIVERS`: Cyan (#06B6D4) - `ASSIGNED`: GrΓΌn (#10B981) - `COMPLETED`: Grau (#6B7280) - `CANCELLED`: Rot (#EF4444) ### Icons: - πŸ“¨ Neue Anfrage - πŸ€– KI-analysiert - βœ… Vertrag unterschrieben - πŸ’° AuftragsbestΓ€tigung - πŸ‘₯ VerfΓΌgbare Fahrer - πŸš— Zugewiesen - βœ“ Abgeschlossen --- **Bereit fΓΌr die Implementierung?** Welcher Sprint soll als nΓ€chstes angegangen werden?