{
  "schema": "ldwf",
  "version": 1,
  "name": "Sales E-Mail Drafter",
  "meta": {
    "exportedAt": "2025-11-16T16:42:07.961Z",
    "exporter": "client"
  },
  "graph": {
    "nodes": [
      {
        "type": "action",
        "data": {
          "comment": "💼 DEALS FINDEN\n\nSucht alle Deals, die mit dem Kontakt verknüpft sind (parallel zu Interaktionen).\n\n✅ SETUP-SCHRITTE:\n1. HubSpot-Verbindung auswählen (dieselbe wie oben)\n2. Keine weiteren Anpassungen nötig\n\n🔧 KONFIGURATION:\n- Limit: Bis zu 5 Deals (sortiert nach letzter Änderung)\n- Filter: Automatisch nach Kontakt-ID gefiltert\n- Eigenschaften: Deal-Name, Betrag, Status, Pipeline, Abschlussdatum, Besitzer\n- Sortierung: Neueste zuerst\n\n📤 OUTPUT: Liste der Deals mit Status und Wert\n\n💡 NUTZEN: Die KI kann Bezug auf laufende Deals nehmen und die Priorität basierend auf Deal-Werten einschätzen.",
          "executionId": null,
          "errorHandling": {
            "strategy": "stop"
          },
          "slug": "findDeals",
          "actionId": "b676d4e5-14a1-45df-8048-8dfeba172b49",
          "config": {
            "connectionId": null,
            "requiresConfirmation": false,
            "modelId": "c968689a-c0d9-49de-aa76-b10ed15ebb0e",
            "fields": {
              "limit": {
                "mode": "manual",
                "value": "{{ 5 }}"
              },
              "sorts": {
                "mode": "manual",
                "value": "[{\"propertyName\": \"hs_lastmodifieddate\", \"direction\": \"DESCENDING\"}]"
              },
              "properties": {
                "mode": "manual",
                "value": "[\"dealname\", \"amount\", \"dealstage\", \"closedate\", \"pipeline\", \"hubspot_owner_id\", \"hs_is_closed\", \"hs_is_closed_won\"]"
              },
              "searchQuery": {
                "mode": "none"
              },
              "filterGroups": {
                "mode": "prompt",
                "prompt": "Create a filter to find deals associated with the contact ID from: {{findContact.output}}"
              }
            }
          }
        },
        "id": "451f2683-0099-4a51-8a6d-d6201949f967",
        "position": {
          "x": 1120,
          "y": 4770
        }
      },
      {
        "type": "action",
        "data": {
          "comment": "🔍 KONTAKT SUCHEN in HubSpot\n\nSucht den Kontakt im CRM anhand der E-Mail-Adresse des Absenders.\n\n✅ SETUP-SCHRITTE:\n1. HubSpot-Verbindung auswählen\n2. Keine weiteren Anpassungen nötig - KI extrahiert automatisch die Absender-E-Mail\n\n🔧 KONFIGURATION:\n- Limit: 1 Kontakt (der erste Treffer)\n- Eigenschaften: E-Mail, Name, Telefon, Position, Firma, Lifecycle-Stage, Besitzer\n- Suchlogik: KI extrahiert die Absender-Adresse aus den E-Mail-Daten\n\n📤 OUTPUT: Kontaktdaten aus HubSpot (falls vorhanden)\n\n⚠️ HINWEIS: Wenn kein Kontakt gefunden wird, können Sie optional einen 'Create Contact' Node hinzufügen.",
          "executionId": null,
          "errorHandling": {
            "strategy": "stop"
          },
          "slug": "findContact",
          "actionId": "f6f066df-a438-4c06-a1ed-5859dafb3843",
          "config": {
            "connectionId": null,
            "requiresConfirmation": false,
            "modelId": "c968689a-c0d9-49de-aa76-b10ed15ebb0e",
            "fields": {
              "limit": {
                "mode": "manual",
                "value": "1"
              },
              "sorts": {
                "mode": "none"
              },
              "properties": {
                "mode": "manual",
                "value": "[\"email\", \"firstname\", \"lastname\", \"phone\", \"jobtitle\", \"company\", \"lifecyclestage\", \"hubspot_owner_id\"]"
              },
              "searchQuery": {
                "mode": "prompt",
                "prompt": "Extract the sender email address from the email data: {{salesLeadEmail.output}}"
              },
              "filterGroups": {
                "mode": "none"
              }
            }
          }
        },
        "id": "54fa2cc7-e9b9-43f3-a9cf-6f4f17a92844",
        "position": {
          "x": 560,
          "y": 4960
        }
      },
      {
        "type": "trigger",
        "data": {
          "comment": "📧 WORKFLOW-START: Gmail Trigger\n\nDieser Workflow startet automatisch, wenn in Gmail ein Label auf einer E-Mail geändert wird.\n\n✅ SETUP-SCHRITTE:\n1. Gmail-Verbindung auswählen (falls noch nicht verbunden)\n2. Label 'Sales-Lead' in den Trigger-Einstellungen konfigurieren\n3. Trigger-Bedingung: Label wurde HINZUGEFÜGT (nicht entfernt)\n\n💡 WICHTIG: Stellen Sie sicher, dass das Label 'Sales-Lead' in Ihrem Gmail-Konto existiert. Erstellen Sie es bei Bedarf in Gmail.\n\n📤 OUTPUT: Vollständige E-Mail-Daten inkl. Absender, Betreff, Inhalt, Thread-ID",
          "executionId": null,
          "errorHandling": {
            "strategy": "stop"
          },
          "slug": "salesLeadEmail",
          "kind": "integration",
          "integrationId": "0ccd0103-2862-46ac-86e1-ef1b40e679b4",
          "triggerId": "4a66f801-9f7f-4fbb-863c-0c076a7dce3d",
          "requiresConnection": true,
          "connectionId": null,
          "params": []
        },
        "id": "c7b7f743-7ea1-4996-9700-77f8e9f58978",
        "position": {
          "x": 20,
          "y": 4960
        }
      },
      {
        "type": "action",
        "data": {
          "comment": "📢 TEAM BENACHRICHTIGEN via Slack\n\nSendet eine strukturierte Benachrichtigung an den Sales-Kanal (parallel zum Draft-Speichern).\n\n✅ SETUP-SCHRITTE:\n1. Slack-Verbindung auswählen\n2. Channel-ID anpassen: Ändern Sie 'sales-leads' zu Ihrem tatsächlichen Slack-Channel-Namen oder -ID\n\n🔧 KONFIGURATION:\n- Channel: 'sales-leads' (ANPASSEN!)\n- Nachricht: Automatisch generiert mit:\n  • Absender-Info aus der E-Mail\n  • KI-generierte Zusammenfassung\n  • Prioritätsbewertung\n  • Hinweis auf fertigen Draft\n\n📤 ERGEBNIS:\nDas Sales-Team erhält sofort eine übersichtliche Benachrichtigung und kann:\n- Die Priorität auf einen Blick erkennen\n- Die Zusammenfassung lesen\n- Zum Gmail-Draft wechseln\n\n💡 ALTERNATIVE:\nStatt Slack können Sie auch Microsoft Teams, E-Mail oder andere Messaging-Tools verwenden.",
          "executionId": null,
          "errorHandling": {
            "strategy": "stop"
          },
          "slug": "notifySales",
          "actionId": "26a39d11-d5fe-4f46-b776-973dd20b8147",
          "config": {
            "connectionId": null,
            "requiresConfirmation": false,
            "modelId": "c968689a-c0d9-49de-aa76-b10ed15ebb0e",
            "fields": {
              "text": {
                "mode": "prompt",
                "prompt": "Erstelle eine Slack-Benachrichtigung für das Sales-Team mit folgenden Informationen:\n- Neuer Sales-Lead von {{salesLeadEmail.output}}\n- Zusammenfassung: {{responseAgent.output.structured.summary}}\n- Priorität: {{responseAgent.output.structured.priority}}\n- Hinweis, dass ein E-Mail-Draft erstellt wurde und zur Überprüfung bereit steht\n\nFormatiere die Nachricht übersichtlich und professionell."
              },
              "channelId": {
                "mode": "manual",
                "value": "sales-leads"
              }
            }
          }
        },
        "id": "a7b6a069-c9df-4335-bdbe-a13b5c296155",
        "position": {
          "x": 2240,
          "y": 4770
        }
      },
      {
        "type": "action",
        "data": {
          "comment": "✉️ DRAFT SPEICHERN in Gmail\n\nSpeichert die von der KI erstellte Antwort als E-Mail-Entwurf im Gmail-Thread.\n\n✅ SETUP-SCHRITTE:\n1. Gmail-Verbindung auswählen (dieselbe wie beim Trigger)\n2. Keine weiteren Anpassungen nötig\n\n🔧 KONFIGURATION:\n- Thread-ID: Automatisch aus der ursprünglichen E-Mail extrahiert\n- Antwort-Inhalt: Verwendet den HTML-Draft vom KI-Agenten\n- Empfänger: Automatisch der ursprüngliche Absender (To-Feld leer = Reply-To)\n\n📤 ERGEBNIS: \nEin fertiger Antwort-Entwurf erscheint in Gmail im selben Thread. Der Vertriebsmitarbeiter kann ihn:\n- Direkt versenden\n- Noch anpassen und dann versenden\n- Als Vorlage verwenden\n\n💡 VORTEIL: Spart Zeit - der Mitarbeiter muss nur noch prüfen statt komplett neu schreiben.",
          "executionId": null,
          "errorHandling": {
            "strategy": "stop"
          },
          "slug": "createDraft",
          "actionId": "7c1e4def-fa3d-4a8f-9639-3c71d5a8f784",
          "config": {
            "connectionId": null,
            "requiresConfirmation": false,
            "modelId": "c968689a-c0d9-49de-aa76-b10ed15ebb0e",
            "fields": {
              "cc": {
                "mode": "none"
              },
              "to": {
                "mode": "none"
              },
              "bcc": {
                "mode": "none"
              },
              "threadId": {
                "mode": "prompt",
                "prompt": "Extract the thread ID from the email data: {{salesLeadEmail.output}}"
              },
              "attachments": {
                "mode": "none"
              },
              "replyContent": {
                "mode": "manual",
                "value": "{{responseAgent.output.structured.email_draft}}"
              }
            }
          }
        },
        "id": "53d00771-0fb0-4e79-afd8-2fa4d84de4f4",
        "position": {
          "x": 2240,
          "y": 5150
        }
      },
      {
        "type": "agent",
        "data": {
          "comment": "🤖 KI-AGENT: Personalisierte Antwort erstellen\n\nDas Herzstück des Workflows - analysiert alle Daten und erstellt eine maßgeschneiderte Antwort.\n\n✅ SETUP-SCHRITTE:\n1. Kein Setup erforderlich - verwendet Standard-KI-Modell\n2. Optional: Passen Sie den System-Prompt an Ihre Unternehmenssprache an\n\n🔧 FUNKTIONSWEISE:\nDer Agent erhält automatisch:\n- Die eingehende E-Mail\n- Kontaktdaten aus HubSpot\n- Bisherige Interaktionen\n- Deal-Informationen\n\nUnd erstellt:\n1. Einen vollständigen E-Mail-Draft (HTML-formatiert)\n2. Eine Zusammenfassung der Anfrage\n3. Eine Prioritätsbewertung (Hoch/Mittel/Niedrig)\n\n📤 OUTPUT (Strukturiert):\n- email_draft: Fertige E-Mail im HTML-Format\n- summary: Kurzzusammenfassung\n- priority: Hoch/Mittel/Niedrig\n\n💡 ANPASSUNGEN:\n- Ändern Sie den Prompt, um Ton und Stil anzupassen\n- Fügen Sie Unternehmens-spezifische Richtlinien hinzu",
          "executionId": null,
          "errorHandling": {
            "strategy": "stop"
          },
          "slug": "responseAgent",
          "assistantId": null,
          "mode": "create",
          "name": "Sales Response Generator",
          "prompt": {
            "mode": "manual",
            "value": "Du bist ein erfahrener Sales-Mitarbeiter, der personalisierte E-Mail-Antworten auf Sales-Lead-Anfragen erstellt.\n\nDeine Aufgabe:\n1. Analysiere die eingehende E-Mail vom potenziellen Kunden\n2. Berücksichtige alle verfügbaren CRM-Daten zum Kontakt (bisherige Interaktionen, Deal-Status, Notizen)\n3. Erstelle eine professionelle, personalisierte Antwort, die:\n   - Auf die spezifische Anfrage des Kunden eingeht\n   - Den Kontext aus bisherigen Interaktionen berücksichtigt\n   - Auf den aktuellen Deal-Status Bezug nimmt (falls vorhanden)\n   - Einen klaren nächsten Schritt vorschlägt\n   - Professionell und freundlich formuliert ist\n\nVerfügbare Daten:\n- E-Mail: {{salesLeadEmail.output}}\n- Kontaktdaten: {{findContact.output}}\n- Bisherige Interaktionen: {{getEngagement.output}}\n- Deal-Informationen: {{findDeals.output}}\n\nErstelle eine vollständige E-Mail-Antwort im HTML-Format mit angemessener Formatierung (fett, kursiv, Listen, Absätze)."
          },
          "attachmentIds": [],
          "output": "structured",
          "connectionOverrides": {},
          "outputSchema": [
            {
              "id": "192a31be-63a0-4008-bcca-9163ccd89bba",
              "name": "email_draft",
              "description": "Der vollständige E-Mail-Antwort-Draft im HTML-Format",
              "type": "string",
              "required": true
            },
            {
              "id": "2003beed-af69-45d9-a54f-b294cdfda0ac",
              "name": "summary",
              "description": "Kurze Zusammenfassung der Kundenanfrage und des vorgeschlagenen nächsten Schritts",
              "type": "string",
              "required": true
            },
            {
              "id": "0c45b7b8-db85-4147-8c92-b46cb8abfeca",
              "name": "priority",
              "description": "Priorität des Leads basierend auf Deal-Wert und Kontext",
              "type": "select",
              "required": true,
              "options": [
                "Hoch",
                "Mittel",
                "Niedrig"
              ]
            }
          ],
          "modelId": "c968689a-c0d9-49de-aa76-b10ed15ebb0e",
          "tools": [],
          "maxSteps": 25
        },
        "id": "e428df17-5480-4cd3-8104-4f6d035513f0",
        "position": {
          "x": 1680,
          "y": 4960
        }
      },
      {
        "type": "action",
        "data": {
          "comment": "📊 INTERAKTIONEN ABRUFEN\n\nLädt die Engagement-Historie des Kontakts aus HubSpot (E-Mails, Meetings, Anrufe, Notizen).\n\n✅ SETUP-SCHRITTE:\n1. HubSpot-Verbindung auswählen (dieselbe wie bei 'Kontakt suchen')\n2. Keine weiteren Anpassungen nötig\n\n🔧 KONFIGURATION:\n- Kontakt-ID wird automatisch aus dem vorherigen Schritt extrahiert\n- Liefert vollständige Interaktionshistorie\n\n📤 OUTPUT: Liste aller Aktivitäten mit dem Kontakt (Zeitstempel, Typ, Details)\n\n💡 NUTZEN: Diese Daten helfen der KI, den Kontext früherer Gespräche zu verstehen und passendere Antworten zu generieren.",
          "executionId": null,
          "errorHandling": {
            "strategy": "stop"
          },
          "slug": "getEngagement",
          "actionId": "2bffcc97-d20f-43a5-aa5c-8240e6e1eaed",
          "config": {
            "connectionId": null,
            "requiresConfirmation": false,
            "modelId": "c968689a-c0d9-49de-aa76-b10ed15ebb0e",
            "fields": {
              "id": {
                "mode": "prompt",
                "prompt": "Extract the contact ID from the contact search results: {{findContact.output}}"
              }
            }
          }
        },
        "id": "9605bdf4-30d1-49be-a1b8-d607ed9cd9a5",
        "position": {
          "x": 1120,
          "y": 5150
        }
      }
    ],
    "edges": [
      {
        "id": "dcdfd19f-ec3f-484f-b413-1fd89075708c",
        "source": "c7b7f743-7ea1-4996-9700-77f8e9f58978",
        "target": "54fa2cc7-e9b9-43f3-a9cf-6f4f17a92844",
        "animated": false,
        "sourceHandle": "output-success",
        "targetHandle": "input-default",
        "conditionId": null
      },
      {
        "id": "0e51aa29-fc03-4aec-bdaa-d80b4346701c",
        "source": "451f2683-0099-4a51-8a6d-d6201949f967",
        "target": "e428df17-5480-4cd3-8104-4f6d035513f0",
        "animated": false,
        "sourceHandle": "output-success",
        "targetHandle": "input-default",
        "conditionId": null
      },
      {
        "id": "8eb05254-fdc7-4473-af75-a23a86115bb0",
        "source": "54fa2cc7-e9b9-43f3-a9cf-6f4f17a92844",
        "target": "9605bdf4-30d1-49be-a1b8-d607ed9cd9a5",
        "animated": false,
        "sourceHandle": "output-success",
        "targetHandle": "input-default",
        "conditionId": null
      },
      {
        "id": "b1f4e2ea-0e5b-4c35-9590-3a9be1ffdfbf",
        "source": "54fa2cc7-e9b9-43f3-a9cf-6f4f17a92844",
        "target": "451f2683-0099-4a51-8a6d-d6201949f967",
        "animated": false,
        "sourceHandle": "output-success",
        "targetHandle": "input-default",
        "conditionId": null
      },
      {
        "id": "00618778-5535-4f00-b171-b2ce96f24141",
        "source": "9605bdf4-30d1-49be-a1b8-d607ed9cd9a5",
        "target": "e428df17-5480-4cd3-8104-4f6d035513f0",
        "animated": false,
        "sourceHandle": "output-success",
        "targetHandle": "input-default",
        "conditionId": null
      },
      {
        "id": "55fade10-1ee8-4801-ac51-a2555d2b436c",
        "source": "e428df17-5480-4cd3-8104-4f6d035513f0",
        "target": "53d00771-0fb0-4e79-afd8-2fa4d84de4f4",
        "animated": false,
        "sourceHandle": "output-success",
        "targetHandle": "input-default",
        "conditionId": null
      },
      {
        "id": "dc43d6be-dfb3-4ea3-a5ab-34948ed95ca1",
        "source": "e428df17-5480-4cd3-8104-4f6d035513f0",
        "target": "a7b6a069-c9df-4335-bdbe-a13b5c296155",
        "animated": false,
        "sourceHandle": "output-success",
        "targetHandle": "input-default",
        "conditionId": null
      }
    ]
  }
}