- 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.
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:
- Strategie-Erstellung: Generiert eine Suchstrategie aus einem Strategie-Dokument und einer Referenz-URL.
- Lead-Identifizierung: Findet ähnliche Unternehmen basierend auf der Referenz-URL.
- Manuelle Überprüfung: Dieser Schritt verbleibt vollständig im React-Frontend. Die App zeigt die Liste an und ermöglicht die Kuratierung.
- Tiefenanalyse: Analysiert die vom Nutzer kuratierte Liste von Unternehmen.
- Kampagnen-Erstellung: Generiert personalisierte E-Mail-Entwürfe.
3. Hybrid-Architektur: Zusammenspiel von React & n8n
Die Kommunikation zwischen Frontend und Backend erfolgt über Webhooks:
- 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.
- 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 (mittelsfetchoderaxios). - 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(erwartetPOST-Request) - Input (JSON Body):
{ "referenceUrl": "...", "contextContent": "..." } - Aktion:
- Nimmt die Eingabedaten entgegen.
- Baut den Prompt für die Strategie-Generierung.
- Ruft den
Gemini-Knoten auf.
- Output:
Respond to Webhook-Knoten, der dasSearchStrategyJSON-Objekt zurückgibt.
Workflow 2: identifyCompetitors
- Trigger:
Webhook(erwartetPOST-Request) - Input (JSON Body):
{ "referenceUrl": "...", "targetMarket": "..." } - Aktion:
- Baut den Prompt zur Identifizierung von Wettbewerbern.
- 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(erwartetPOST-Request) - Input (JSON Body):
{ "strategy": { ... }, "companies": [ { "name": "..." }, ... ] } - Aktion:
- Nutzt den
Loop Over Items-Knoten, um über diecompanies-Liste zu iterieren. - Innerhalb des Loops: Ruft für jedes Unternehmen den
Gemini-Knoten mit dem Prompt für die Tiefenanalyse (analyzeCompanyWithStrategy) auf. - Sammelt die Ergebnisse aller Iterationen.
- Nutzt den
- Output:
Respond to Webhook-Knoten, der eine vollständige Liste vonAnalysisResult-Objekten als JSON zurückgibt.
Workflow 4: generateOutreachCampaign
- Trigger:
Webhook(erwartetPOST-Request) - Input (JSON Body):
{ "companyData": { ... }, "knowledgeBase": "...", "referenceUrl": "..." } - Aktion:
- Baut den Prompt für die Erstellung der E-Mail-Kampagne.
- Ruft den
Gemini-Knoten auf.
- Output:
Respond to Webhook-Knoten, der dieEmailDraft-Objekte als JSON-Array zurückgibt.
5. Nächste Schritte
- Umsetzung in n8n: Erstellen der vier beschriebenen Workflows, beginnend mit
generateSearchStrategy. - Anpassung der React-App: Modifizieren der
geminiService.ts, um diefetch-Aufrufe auf die neuen n8n-Webhook-URLs umzuleiten. - 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. - Sicherheit: Absicherung der n8n-Webhooks, z.B. durch einen geheimen Header-Parameter, um unbefugte Aufrufe zu verhindern.