{
  "schema": "ldwf",
  "version": 1,
  "name": "IT-Helpdesk Ticketbearbeitung",
  "meta": {
    "exportedAt": "2025-11-16T16:59:34.967Z",
    "exporter": "client"
  },
  "graph": {
    "nodes": [
      {
        "type": "trigger",
        "data": {
          "comment": "📥 WEBHOOK-TRIGGER FÜR NEUE IT-TICKETS\n\n🎯 Beschreibung:\nDieser Webhook empfängt neue IT-Support-Tickets von Ihrem Ticket-System und startet den Automatisierungs-Workflow.\n\n⚙️ Setup:\n1. Kopieren Sie die Webhook-URL aus dem rechten Panel\n2. Konfigurieren Sie Ihr Ticket-System, um bei neuen Tickets einen POST-Request an diese URL zu senden\n3. Optional: Setzen Sie ein Secret für zusätzliche Sicherheit\n\n📊 Erwartete Daten:\nDas Ticket-System sollte JSON-Daten senden mit mindestens:\n- Ticket-ID\n- Beschreibung/Problem\n- Optional: Priorität, Ersteller, Zeitstempel\n\n🔧 Personalisierung:\n- Fügen Sie ein Secret hinzu für authentifizierte Webhooks\n- Passen Sie die erwartete Datenstruktur an Ihr Ticket-System an",
          "executionId": null,
          "errorHandling": {
            "strategy": "stop"
          },
          "slug": "newTicket",
          "name": "Neues IT-Ticket",
          "kind": "webhook"
        },
        "id": "bafd52f8-ccfa-4d59-8eed-1bbe31993689",
        "position": {
          "x": 20,
          "y": 11230
        }
      },
      {
        "type": "agent",
        "data": {
          "comment": "🤖 KI-AGENT: TICKET-KATEGORISIERUNG\n\n🎯 Beschreibung:\nAnalysiert die Ticket-Beschreibung mit KI und kategorisiert das Problem automatisch in eine von vier Kategorien. Bestimmt auch das zuständige Team und erstellt eine prägnante Zusammenfassung.\n\n⚙️ Setup:\n- Funktioniert sofort ohne weitere Konfiguration\n- Nutzt das Standard-LLM-Modell für die Analyse\n\n📊 Ausgabe:\n- category: Hardware | Software | Netzwerk | Zugang\n- team: Name des zuständigen Teams\n- summary: Kurze Problemzusammenfassung\n\n🔧 Personalisierung:\n- KATEGORIEN: Passen Sie die 4 Optionen in 'outputSchema' an Ihre IT-Struktur an (z.B. Cloud, Datenbank, Security)\n- TEAM-ZUORDNUNG: Ergänzen Sie im Prompt Ihre Team-Namen und Zuständigkeiten\n- PROMPT: Fügen Sie spezifische Anweisungen hinzu, z.B. Berücksichtigung von Priorität oder SLA\n- MODELL: Wählen Sie ein anderes LLM-Modell für bessere/schnellere Ergebnisse",
          "executionId": null,
          "errorHandling": {
            "strategy": "stop"
          },
          "slug": "ticketKategorisierung",
          "assistantId": null,
          "mode": "create",
          "name": "Ticket-Kategorisierung",
          "prompt": {
            "mode": "manual",
            "value": "Analysiere die folgende IT-Support-Ticket-Beschreibung und kategorisiere das Problem.\n\nTicket-Daten: {{newTicket.output}}\n\nBestimme die passende Kategorie und das zuständige Team basierend auf der Problembeschreibung."
          },
          "attachmentIds": [],
          "output": "structured",
          "connectionOverrides": {},
          "outputSchema": [
            {
              "id": "aa514bb6-a2ed-4cad-863d-2a02701876c3",
              "name": "category",
              "description": "Die Problemkategorie",
              "type": "select",
              "required": true,
              "options": [
                "Hardware",
                "Software",
                "Netzwerk",
                "Zugang"
              ]
            },
            {
              "id": "66106e4c-a299-43f8-b5a3-19f2901c4bf4",
              "name": "team",
              "description": "Das zuständige Team",
              "type": "string",
              "required": true
            },
            {
              "id": "a58d94ba-2100-4cf7-93fc-6537e2796993",
              "name": "summary",
              "description": "Kurze Zusammenfassung des Problems",
              "type": "string",
              "required": true
            }
          ],
          "modelId": "c968689a-c0d9-49de-aa76-b10ed15ebb0e",
          "tools": [],
          "maxSteps": 25
        },
        "id": "e4e28819-f30e-42d5-ac68-5555f9858149",
        "position": {
          "x": 560,
          "y": 11230
        }
      },
      {
        "type": "file_search",
        "data": {
          "comment": "📚 KNOWLEDGE BASE SUCHE\n\n🎯 Beschreibung:\nDurchsucht Ihre Knowledge Base nach ähnlichen gelösten Tickets und relevanten Lösungsansätzen. Nutzt die Problemzusammenfassung und Kategorie für präzise Suchergebnisse.\n\n⚙️ Setup:\n⚠️ WICHTIG: Wählen Sie einen Knowledge Folder aus!\n1. Klicken Sie auf diesen Block\n2. Wählen Sie im rechten Panel den Ordner mit gelösten Tickets\n3. Stellen Sie sicher, dass Ihre Knowledge Base regelmäßig aktualisiert wird\n\n📊 Ausgabe:\n- Bis zu 10 relevante Dokumenten-Chunks\n- Jeder mit: Text, Dateiname, URL, Relevanz-Ranking\n\n🔧 Personalisierung:\n- MAX RESULTS: Ändern Sie 'maxResults' (1-50) je nach Bedarf - mehr Ergebnisse = mehr Kontext, aber längere Verarbeitung\n- SUCHSTRATEGIE: Passen Sie den Prompt an, um nach spezifischen Schlüsselwörtern zu suchen\n- KNOWLEDGE FOLDER: Nutzen Sie mehrere Folder für verschiedene Kategorien (erfordert Workflow-Anpassung mit Conditions)",
          "executionId": null,
          "errorHandling": {
            "strategy": "stop"
          },
          "name": "Knowledge Base Suche",
          "slug": "kbSuche",
          "modelId": "c968689a-c0d9-49de-aa76-b10ed15ebb0e",
          "knowledgeFolderId": null,
          "query": {
            "mode": "prompt",
            "value": null,
            "prompt": "Suche nach gelösten Tickets mit ähnlichen Problemen wie: {{ticketKategorisierung.output.structured.summary}}\nKategorie: {{ticketKategorisierung.output.structured.category}}"
          },
          "maxResults": 10
        },
        "id": "e556d619-501e-4dd0-956c-dce826cd62ba",
        "position": {
          "x": 1120,
          "y": 11230
        }
      },
      {
        "type": "agent",
        "data": {
          "comment": "🤖 KI-AGENT: LÖSUNGSVORSCHLÄGE GENERIEREN\n\n🎯 Beschreibung:\nErstellt auf Basis der gefundenen ähnlichen Tickets konkrete, strukturierte Lösungsvorschläge. Bewertet auch die Zuverlässigkeit der Vorschläge basierend auf der Anzahl und Qualität der gefundenen Referenzen.\n\n⚙️ Setup:\n- Funktioniert automatisch nach Knowledge Base Suche\n- Nutzt das Standard-LLM-Modell für die Generierung\n\n📊 Ausgabe:\n- suggestions: Formatierte Liste mit konkreten Lösungsschritten\n- confidence: hoch | mittel | niedrig (Zuverlässigkeitsbewertung)\n- related_tickets: Anzahl gefundener ähnlicher Fälle\n\n🔧 Personalisierung:\n- PROMPT: Fügen Sie firmenspezifische Richtlinien hinzu (z.B. \"Immer zuerst Neustart vorschlagen\")\n- TONFALL: Passen Sie den Stil an (formell/informell, technisch/verständlich)\n- OUTPUT-FELDER: Ergänzen Sie weitere Felder wie 'estimated_time', 'required_tools', 'escalation_needed'\n- MODELL: Nutzen Sie ein fortgeschrittenes Modell für komplexere Analysen",
          "executionId": null,
          "errorHandling": {
            "strategy": "stop"
          },
          "slug": "loesungsvorschlaege",
          "assistantId": null,
          "mode": "create",
          "name": "Lösungsvorschläge",
          "prompt": {
            "mode": "manual",
            "value": "Basierend auf den gefundenen ähnlichen Tickets aus der Knowledge Base, erstelle strukturierte Lösungsvorschläge für das aktuelle IT-Support-Ticket.\n\nAktuelles Ticket:\n- Kategorie: {{ticketKategorisierung.output.structured.category}}\n- Problem: {{ticketKategorisierung.output.structured.summary}}\n- Ticket-Details: {{newTicket.output}}\n\nGefundene ähnliche Tickets und Lösungen:\n{{kbSuche.output}}\n\nErstelle konkrete, umsetzbare Lösungsvorschläge basierend auf den erfolgreichen Lösungen aus der Vergangenheit."
          },
          "attachmentIds": [],
          "output": "structured",
          "connectionOverrides": {},
          "outputSchema": [
            {
              "id": "6b31a9d7-bcff-44a0-a83e-14acb9f34f07",
              "name": "suggestions",
              "description": "Liste der Lösungsvorschläge",
              "type": "string",
              "required": true
            },
            {
              "id": "630ef8f9-3fd0-4c86-b741-ac092a796d16",
              "name": "confidence",
              "description": "Konfidenz der Vorschläge (hoch/mittel/niedrig)",
              "type": "select",
              "required": true,
              "options": [
                "hoch",
                "mittel",
                "niedrig"
              ]
            },
            {
              "id": "689be637-6fad-4851-8757-3f1ffcf7e4b7",
              "name": "related_tickets",
              "description": "Anzahl ähnlicher Tickets gefunden",
              "type": "number",
              "required": true
            }
          ],
          "modelId": "c968689a-c0d9-49de-aa76-b10ed15ebb0e",
          "tools": [],
          "maxSteps": 25
        },
        "id": "17ef265e-a6eb-4faf-ae67-622ca588cd4b",
        "position": {
          "x": 1680,
          "y": 11230
        }
      },
      {
        "type": "code",
        "data": {
          "comment": "📝 CODE: TICKET-UPDATE VORBEREITEN\n\n🎯 Beschreibung:\nBereitet alle Daten für das Ticket-Update vor. Formatiert einen professionellen Kommentar mit allen Analyse-Ergebnissen und strukturiert die Daten für die Rückgabe an Ihr Ticket-System.\n\n⚙️ Setup:\n- Funktioniert automatisch, keine Konfiguration nötig\n- Gibt strukturierte Daten zurück, die Sie weiterverarbeiten können\n\n📊 Ausgabe:\n- category: Ermittelte Problemkategorie\n- assignedTeam: Zuständiges Team\n- comment: Formatierter Kommentar-Text (mit Emojis)\n- confidence: Zuverlässigkeit der Vorschläge\n- ticketId: ID des ursprünglichen Tickets\n\n🔧 Personalisierung:\n- KOMMENTAR-FORMAT: Ändern Sie den Text-Template im Code (Zeile 9-17)\n- EMOJIS: Entfernen oder ändern Sie die Emojis je nach Unternehmenskultur\n- ZUSÄTZLICHE FELDER: Fügen Sie weitere Daten hinzu (z.B. Zeitstempel, SLA-Info)\n- NÄCHSTER SCHRITT: Ergänzen Sie eine Action, um den Kommentar tatsächlich ins Ticket-System zu schreiben (z.B. via API oder Integration)",
          "executionId": null,
          "errorHandling": {
            "strategy": "stop"
          },
          "name": "Ticket aktualisieren",
          "slug": "ticketUpdate",
          "language": "javascript",
          "code": "// Bereite die Daten für das Ticket-Update vor\nconst category = ticketKategorisierung.output.structured.category;\nconst team = ticketKategorisierung.output.structured.team;\nconst suggestions = loesungsvorschlaege.output.structured.suggestions;\nconst confidence = loesungsvorschlaege.output.structured.confidence;\n\n// Erstelle den Kommentar-Text\nconst comment = `🤖 Automatische Analyse:\n\n🎯 Kategorie: ${category}\n👥 Zugewiesenes Team: ${team}\n\n💡 Lösungsvorschläge (Konfidenz: ${confidence}):\n${suggestions}\n\n---\nDieser Kommentar wurde automatisch generiert.`;\n\n// Rückgabe der strukturierten Daten für weitere Verarbeitung\nreturn {\n  category: category,\n  assignedTeam: team,\n  comment: comment,\n  confidence: confidence,\n  ticketId: newTicket.output.id || newTicket.output.ticketId || 'N/A'\n};"
        },
        "id": "914c077f-b0d5-4e78-8201-8a83d0e733e8",
        "position": {
          "x": 2240,
          "y": 11230
        }
      }
    ],
    "edges": [
      {
        "id": "22152062-7b58-4d3b-bb6b-37eb13ebbcbc",
        "source": "bafd52f8-ccfa-4d59-8eed-1bbe31993689",
        "target": "e4e28819-f30e-42d5-ac68-5555f9858149",
        "animated": false,
        "sourceHandle": "output-success",
        "targetHandle": "input-default",
        "conditionId": null
      },
      {
        "id": "f400793f-fd0a-4854-b002-932e1e5b8dc4",
        "source": "e4e28819-f30e-42d5-ac68-5555f9858149",
        "target": "e556d619-501e-4dd0-956c-dce826cd62ba",
        "animated": false,
        "sourceHandle": "output-success",
        "targetHandle": "input-default",
        "conditionId": null
      },
      {
        "id": "99ded608-ef50-476c-aa12-b571414211d6",
        "source": "17ef265e-a6eb-4faf-ae67-622ca588cd4b",
        "target": "914c077f-b0d5-4e78-8201-8a83d0e733e8",
        "animated": false,
        "sourceHandle": "output-success",
        "targetHandle": "input-default",
        "conditionId": null
      },
      {
        "id": "a83751bb-9179-423c-9f70-a1b70b521658",
        "source": "e556d619-501e-4dd0-956c-dce826cd62ba",
        "target": "17ef265e-a6eb-4faf-ae67-622ca588cd4b",
        "animated": false,
        "sourceHandle": "output-success",
        "targetHandle": "input-default",
        "conditionId": null
      }
    ]
  }
}