Files
Emailsorter/n8n/workflows/email-sorter-workflow.json
2026-02-03 23:27:25 +01:00

226 lines
5.8 KiB
JSON

{
"name": "MailFlow - Automatische E-Mail-Sortierung",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "email-webhook",
"responseMode": "onReceived",
"options": {}
},
"id": "webhook-trigger",
"name": "Email Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [250, 300],
"webhookId": "mailflow-webhook"
},
{
"parameters": {
"resource": "message",
"operation": "get",
"messageId": "={{ $json.emailId }}",
"options": {
"format": "metadata"
}
},
"id": "gmail-get-email",
"name": "Gmail: E-Mail abrufen",
"type": "n8n-nodes-base.gmail",
"typeVersion": 2,
"position": [450, 200],
"credentials": {
"gmailOAuth2": {
"id": "gmail-credentials",
"name": "Gmail OAuth2"
}
}
},
{
"parameters": {
"url": "https://api.mistral.ai/v1/chat/completions",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{\n \"model\": \"mistral-small-latest\",\n \"messages\": [\n {\n \"role\": \"system\",\n \"content\": \"Du bist ein E-Mail-Klassifizierungs-Assistent. Kategorisiere E-Mails in: vip, clients, invoices, newsletters, promos, social, security, shipping, review. Antworte NUR mit dem Kategorienamen.\"\n },\n {\n \"role\": \"user\",\n \"content\": \"Von: {{ $json.from }}\\nBetreff: {{ $json.subject }}\\nVorschau: {{ $json.snippet }}\"\n }\n ],\n \"temperature\": 0.1,\n \"max_tokens\": 50\n}",
"options": {}
},
"id": "mistral-classify",
"name": "Mistral AI: Klassifizieren",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4,
"position": [650, 200],
"credentials": {
"httpHeaderAuth": {
"id": "mistral-credentials",
"name": "Mistral API"
}
}
},
{
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.choices[0].message.content.trim() }}",
"operation": "contains",
"value2": "newsletter"
}
]
}
},
"id": "if-newsletter",
"name": "Ist Newsletter?",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [850, 200]
},
{
"parameters": {
"resource": "message",
"operation": "addLabels",
"messageId": "={{ $('Gmail: E-Mail abrufen').item.json.id }}",
"labelIds": ["MailFlow/Newsletter"]
},
"id": "gmail-label-newsletter",
"name": "Gmail: Newsletter Label",
"type": "n8n-nodes-base.gmail",
"typeVersion": 2,
"position": [1050, 100],
"credentials": {
"gmailOAuth2": {
"id": "gmail-credentials",
"name": "Gmail OAuth2"
}
}
},
{
"parameters": {
"resource": "message",
"operation": "addLabels",
"messageId": "={{ $('Gmail: E-Mail abrufen').item.json.id }}",
"labelIds": ["={{ 'MailFlow/' + $('Mistral AI: Klassifizieren').item.json.choices[0].message.content.trim() }}"]
},
"id": "gmail-label-other",
"name": "Gmail: Kategorie Label",
"type": "n8n-nodes-base.gmail",
"typeVersion": 2,
"position": [1050, 300],
"credentials": {
"gmailOAuth2": {
"id": "gmail-credentials",
"name": "Gmail OAuth2"
}
}
},
{
"parameters": {
"url": "={{ $env.MAILFLOW_API_URL }}/api/email/stats/update",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "category",
"value": "={{ $('OpenAI: Klassifizieren').item.json.message.content.trim() }}"
},
{
"name": "emailId",
"value": "={{ $('Gmail: E-Mail abrufen').item.json.id }}"
}
]
},
"options": {}
},
"id": "http-update-stats",
"name": "Statistiken aktualisieren",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4,
"position": [1250, 200]
}
],
"connections": {
"Email Webhook": {
"main": [
[
{
"node": "Gmail: E-Mail abrufen",
"type": "main",
"index": 0
}
]
]
},
"Gmail: E-Mail abrufen": {
"main": [
[
{
"node": "Mistral AI: Klassifizieren",
"type": "main",
"index": 0
}
]
]
},
"Mistral AI: Klassifizieren": {
"main": [
[
{
"node": "Ist Newsletter?",
"type": "main",
"index": 0
}
]
]
},
"Ist Newsletter?": {
"main": [
[
{
"node": "Gmail: Newsletter Label",
"type": "main",
"index": 0
}
],
[
{
"node": "Gmail: Kategorie Label",
"type": "main",
"index": 0
}
]
]
},
"Gmail: Newsletter Label": {
"main": [
[
{
"node": "Statistiken aktualisieren",
"type": "main",
"index": 0
}
]
]
},
"Gmail: Kategorie Label": {
"main": [
[
{
"node": "Statistiken aktualisieren",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"staticData": null,
"tags": ["email", "automation", "ai"],
"pinData": {}
}