16 KiB
16 KiB
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
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
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
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
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
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
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:
{
"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)
NewBookingsQueueComponentAIReviewDialogComponent- Integration in Dashboard
- Test: E-Mail → KI-Analyse → Review → Senden
Sprint 2: Freigabe-Workflow (2 Tage)
ReadyForAssignmentQueueComponent- Auto-Freigabe nach Vertrag
- Status-Updates testen
Sprint 3: Fahrer-Portal (2-3 Tage)
AvailableEventsComponentAvailabilityDialogComponent- Verfügbarkeits-API testen
Sprint 4: Admin Zuweisung (2 Tage)
DriverAssignmentQueueComponent- 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?