diff --git a/n8n-workflows/workflow-a-mail-processing.json b/n8n-workflows/workflow-a-mail-processing.json index 6ed7f1d..127f4e1 100644 --- a/n8n-workflows/workflow-a-mail-processing.json +++ b/n8n-workflows/workflow-a-mail-processing.json @@ -129,11 +129,9 @@ "headers": { "Content-Type": "application/json" }, - "body": { - "RAW_JSON": true, - "parameters": "={{ JSON.stringify({\n \"collection_name\": \"knowledge_base_embeddings\",\n \"search_params\": {\n \"metric_type\": \"L2\",\n \"params\": {\n \"nprobe\": 10\n }\n },\n \"annnSearch\": {\n \"field\": \"embedding\",\n \"limit\": 3,\n \"metric_type\": \"L2\"\n },\n \"output_fields\": [\"title\", \"content\", \"category\", \"solution_type\", \"created_at\"]\n}) }}" - } - } + "sendBody": true, + "specifyBody": "json", + "jsonBody": "={\"collection_name\":\"knowledge_base_embeddings\",\"search_params\":{\"metric_type\":\"L2\",\"params\":{\"nprobe\":10}},\"annnSearch\":{\"field\":\"embedding\",\"limit\":3,\"metric_type\":\"L2\"},\"output_fields\":[\"title\",\"content\",\"category\",\"solution_type\",\"created_at\"]}" } }, { @@ -152,11 +150,9 @@ "headers": { "Content-Type": "application/json" }, - "body": { - "RAW_JSON": true, - "parameters": "={{ JSON.stringify({\n \"model\": \"gpt-3.5-turbo\",\n \"messages\": [\n {\n \"role\": \"system\",\n \"content\": \"Du bist ein IT-Support-Assistent. Analysiere das folgende Support-Ticket und:\\n1. Verstehe das Problem\\n2. Schaue in der Wissensdatenbank nach ähnlichen Problemen\\n3. Gib einen strukturierten Vorschlag zurück als JSON\\n\\nDie Lösung kann sein:\\n- BARAMUNDI_JOB: Ein automatisierter Job im Baramundi System\\n- AUTOMATISCHE_ANTWORT: Eine automatische Antwort an den Kunden\\n- ESKALATION: Manuelle Eskalation erforderlich\"\n },\n {\n \"role\": \"user\",\n \"content\": \"Ticket ID: {{$json.ticket_id}}\\nSubjekt: {{$json.subject}}\\nProblem: {{$json.problem_text}}\\n\\nÄhnliche KB-Einträge (Top 3):\\n\" + ($json.kb_results || []).slice(0, 3).map((r, i) => `${i+1}. ${r.title}\\n${r.content}`).join('\\n\\n') + \"\\n\\nGib deine Analyse als JSON zurück mit folgendem Format:\\n{\\\"kategorie\\\": \\\"Hardware|Software|Account|Netzwerk|Sonstiges\\\", \\\"problem_verstanden\\\": \\\"Kurze Zusammenfassung\\\", \\\"lösung_typ\\\": \\\"BARAMUNDI_JOB|AUTOMATISCHE_ANTWORT|ESKALATION\\\", \\\"baramundi_job\\\": {\\\"name\\\": \\\"Job-Name\\\", \\\"parameter\\\": {}}, \\\"antwort_text\\\": \\\"Kundenfreundliche Antwort\\\", \\\"vertrauen\\\": 0.75, \\\"begründung\\\": \\\"Warum diese Lösung?\\\"}\"\n }\n ],\n \"temperature\": 0.7,\n \"max_tokens\": 1000\n}) }}" - } - } + "sendBody": true, + "specifyBody": "json", + "jsonBody": "={\"model\":\"gpt-3.5-turbo\",\"messages\":[{\"role\":\"system\",\"content\":\"Du bist ein IT-Support-Assistent. Analysiere das folgende Support-Ticket und: 1. Verstehe das Problem 2. Schaue in der Wissensdatenbank nach ähnlichen Problemen 3. Gib einen strukturierten Vorschlag zurück als JSON. Die Lösung kann sein: BARAMUNDI_JOB (Ein automatisierter Job im Baramundi System), AUTOMATISCHE_ANTWORT (Eine automatische Antwort an den Kunden), ESKALATION (Manuelle Eskalation erforderlich)\"},{\"role\":\"user\",\"content\":\"Ticket ID: ={{$json.ticket_id}} Subjekt: ={{$json.subject}} Problem: ={{$json.problem_text}} Gib deine Analyse als JSON zurück mit kategorie, problem_verstanden, lösung_typ, baramundi_job, antwort_text, vertrauen (0.0-1.0), und begründung.\"}],\"temperature\":0.7,\"max_tokens\":1000}" } }, { @@ -179,7 +175,7 @@ }, { "name": "ai_response", - "value": "={{ JSON.parse($json.ai_response_raw.match(/\\{[^{}]*(?:\\{[^{}]*\\}[^{}]*)*\\}/)[0]) }}", + "value": "={{ JSON.parse($json.ai_response_raw) }}", "type": "object" } ] @@ -227,16 +223,14 @@ ], "parameters": { "authentication": "predefinedCredentialType", - "url": "https://ekshelpdesk.fft-it.de/api/v1/conversations/{{ $json.ticket_id }}", + "url": "=https://ekshelpdesk.fft-it.de/api/v1/conversations/{{ $json.ticket_id }}", "method": "PUT", "headers": { "Content-Type": "application/json" }, - "body": { - "RAW_JSON": true, - "parameters": "={{ JSON.stringify({\n \"custom_fields\": {\n \"AI_SUGGESTION\": $json.ai_response.antwort_text,\n \"AI_SUGGESTION_STATUS\": \"PENDING\",\n \"PROCESSED_BY_AI\": true,\n \"AI_CATEGORY\": $json.ai_response.kategorie,\n \"AI_CONFIDENCE\": $json.ai_response.vertrauen,\n \"AI_SOLUTION_TYPE\": $json.ai_response.lösung_typ,\n \"AI_REASONING\": $json.ai_response.begründung\n }\n}) }}" - } - } + "sendBody": true, + "specifyBody": "json", + "jsonBody": "={\"custom_fields\":{\"AI_SUGGESTION\":={{$json.ai_response.antwort_text}},\"AI_SUGGESTION_STATUS\":\"PENDING\",\"PROCESSED_BY_AI\":true,\"AI_CATEGORY\":={{$json.ai_response.kategorie}},\"AI_CONFIDENCE\":={{$json.ai_response.vertrauen}},\"AI_SOLUTION_TYPE\":={{$json.ai_response.lösung_typ}},\"AI_REASONING\":={{$json.ai_response.begründung}}}}" }, "credentials": { "httpBasicAuth": "Freescout API"