Files
Brancheneinstufung2/n8n_migration_plan.md
Floke a37c688e07 feat: Plan and define n8n hybrid migration
- Add detailed plan for migrating market intelligence logic to n8n using a hybrid approach.

- Define the first n8n workflow 'identifyCompetitors' as a JSON file for import.
2025-12-20 22:00:29 +00:00

5.4 KiB

Plan zur Migration des "General Market Intelligence" Skripts nach n8n (Hybrid-Ansatz)

Dieses Dokument beschreibt den Plan zur Nachbildung der Funktionalität der React-Anwendung unter /general-market-intelligence als Backend-Logik in der Automatisierungsplattform n8n.

1. Zielsetzung (Hybrid-Ansatz)

Das Ziel ist die Auslagerung der Kernlogik (insbesondere der Gemini API-Aufrufe) aus der React-Anwendung in n8n-Workflows. Dies erhöht die Transparenz, Kontrolle und Stabilität der Ergebnisse.

  • Die bestehende React-Anwendung bleibt als interaktives Frontend für die Benutzerführung und Datenvisualisierung erhalten.
  • n8n fungiert als reines Backend-API, das von der React-Anwendung aufgerufen wird, um die rechenintensiven Aufgaben auszuführen.

Dieser Ansatz kombiniert das Beste aus beiden Welten: eine reaktionsschnelle, benutzerfreundliche Oberfläche und ein robustes, leicht anpassbares Backend.

2. Analyse der Kernfunktionalität

Die bestehende Anwendung führt fünf Hauptschritte aus, die nun als separate, aufrufbare n8n-Workflows modelliert werden:

  1. Strategie-Erstellung: Generiert eine Suchstrategie aus einem Strategie-Dokument und einer Referenz-URL.
  2. Lead-Identifizierung: Findet ähnliche Unternehmen basierend auf der Referenz-URL.
  3. Manuelle Überprüfung: Dieser Schritt verbleibt vollständig im React-Frontend. Die App zeigt die Liste an und ermöglicht die Kuratierung.
  4. Tiefenanalyse: Analysiert die vom Nutzer kuratierte Liste von Unternehmen.
  5. Kampagnen-Erstellung: Generiert personalisierte E-Mail-Entwürfe.

3. Hybrid-Architektur: Zusammenspiel von React & n8n

Die Kommunikation zwischen Frontend und Backend erfolgt über Webhooks:

  1. n8n-Workflows als API-Endpunkte: Jeder Kernprozess wird als eigener n8n-Workflow mit einem Webhook-Trigger erstellt. Dieser Trigger stellt eine einzigartige URL bereit, die auf Anfragen wartet.
  2. React-App als Client: Die Funktionen in der geminiService.ts-Datei der React-App werden so angepasst, dass sie nicht mehr direkt die Gemini-API, sondern die entsprechenden n8n-Webhook-URLs aufrufen (mittels fetch oder axios).
  3. Datenfluss (Beispiel):
    • Der Nutzer lädt in der React-App eine Strategie-Datei hoch und klickt auf "Strategie erstellen".
    • Die React-App sendet den Dateiinhalt und die Referenz-URL per POST-Request an den n8n-Webhook für die Strategie-Erstellung.
    • Der n8n-Workflow wird ausgelöst, führt den Gemini-Call aus und sendet das Ergebnis (das SearchStrategy-JSON) als Antwort auf den Webhook-Request zurück.
    • Die React-App empfängt die JSON-Antwort und zeigt dem Nutzer den nächsten Schritt an.

4. Benötigte n8n-Workflows (API-Endpunkte)

Die folgenden Workflows müssen in n8n erstellt werden, um die Logik aus geminiService.ts abzubilden.


Workflow 1: generateSearchStrategy

  • Trigger: Webhook (erwartet POST-Request)
  • Input (JSON Body): { "referenceUrl": "...", "contextContent": "..." }
  • Aktion:
    1. Nimmt die Eingabedaten entgegen.
    2. Baut den Prompt für die Strategie-Generierung.
    3. Ruft den Gemini-Knoten auf.
  • Output: Respond to Webhook-Knoten, der das SearchStrategy JSON-Objekt zurückgibt.

Workflow 2: identifyCompetitors

  • Trigger: Webhook (erwartet POST-Request)
  • Input (JSON Body): { "referenceUrl": "...", "targetMarket": "..." }
  • Aktion:
    1. Baut den Prompt zur Identifizierung von Wettbewerbern.
    2. Ruft den Gemini-Knoten auf.
  • Output: Respond to Webhook-Knoten, der die Liste der gefundenen Unternehmen als JSON-Array zurückgibt.

Workflow 3: runFullAnalysis

Dieser Workflow führt die Tiefenanalyse für eine ganze Liste von Unternehmen durch.

  • Trigger: Webhook (erwartet POST-Request)
  • Input (JSON Body): { "strategy": { ... }, "companies": [ { "name": "..." }, ... ] }
  • Aktion:
    1. Nutzt den Loop Over Items-Knoten, um über die companies-Liste zu iterieren.
    2. Innerhalb des Loops: Ruft für jedes Unternehmen den Gemini-Knoten mit dem Prompt für die Tiefenanalyse (analyzeCompanyWithStrategy) auf.
    3. Sammelt die Ergebnisse aller Iterationen.
  • Output: Respond to Webhook-Knoten, der eine vollständige Liste von AnalysisResult-Objekten als JSON zurückgibt.

Workflow 4: generateOutreachCampaign

  • Trigger: Webhook (erwartet POST-Request)
  • Input (JSON Body): { "companyData": { ... }, "knowledgeBase": "...", "referenceUrl": "..." }
  • Aktion:
    1. Baut den Prompt für die Erstellung der E-Mail-Kampagne.
    2. Ruft den Gemini-Knoten auf.
  • Output: Respond to Webhook-Knoten, der die EmailDraft-Objekte als JSON-Array zurückgibt.

5. Nächste Schritte

  1. Umsetzung in n8n: Erstellen der vier beschriebenen Workflows, beginnend mit generateSearchStrategy.
  2. Anpassung der React-App: Modifizieren der geminiService.ts, um die fetch-Aufrufe auf die neuen n8n-Webhook-URLs umzuleiten.
  3. Konfiguration: Die URLs der n8n-Webhooks müssen in der React-Anwendung als Umgebungsvariablen (.env.local) konfiguriert werden, um Flexibilität zwischen Entwicklungs- und Produktionsumgebungen zu gewährleisten.
  4. Sicherheit: Absicherung der n8n-Webhooks, z.B. durch einen geheimen Header-Parameter, um unbefugte Aufrufe zu verhindern.