Intelligente Gmail-Labels: Klassifizierung von E-Mails nach Inhalt und Absicht mit OpenAI
Dies ist ein Support, AI-Bereich Automatisierungsworkflow mit 18 Nodes. Hauptsächlich werden Set, Gmail, Merge, SplitOut, Aggregate und andere Nodes verwendet, kombiniert mit KI-Technologie für intelligente Automatisierung. Automatische Klassifizierung von Gmail-E-Mails mit GPT-4-Inhaltsanalyse und -Tags
- •Google-Konto + Gmail API-Anmeldedaten
- •OpenAI API Key
Verwendete Nodes (18)
Kategorie
{
"id": "Yc9bgOEvpyO1En1Z",
"meta": {
"instanceId": "1af8a0dc0d2f537b7c08209af728c271b5a03806bdf309bedf99d668f2608ee6",
"templateCredsSetupCompleted": true
},
"name": "Intelligent Gmail Labeling: Categorize Emails by Content Intent Using OpenAI",
"tags": [],
"nodes": [
{
"id": "7697a77b-7dc8-40e7-b8e2-859c724ed6d5",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
2380,
40
],
"parameters": {
"width": 452.48413953150185,
"height": 347.0476323933831,
"content": "### Aggregate labels and update to message\nCreate array of label IDs and add to the desired email message in Gmail."
},
"typeVersion": 1
},
{
"id": "013c142d-eb86-4d62-bab3-9dc77fba7b3b",
"name": "Gmail Trigger",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
720,
200
],
"parameters": {
"simple": false,
"filters": {},
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"credentials": {
"gmailOAuth2": {
"id": "2pW13S2GyP5GCdoP",
"name": "Gmail account"
}
},
"typeVersion": 1.2
},
{
"id": "78cf0980-b4ec-4ed0-9b49-014e4d5d63d3",
"name": "Nachrichteninhalt abrufen",
"type": "n8n-nodes-base.gmail",
"position": [
980,
200
],
"webhookId": "b773894c-18c6-454d-9271-6de10be1b7c4",
"parameters": {
"simple": false,
"options": {},
"messageId": "={{ $json.id }}",
"operation": "get"
},
"credentials": {
"gmailOAuth2": {
"id": "2pW13S2GyP5GCdoP",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "1f07bb8a-0e12-47fd-bf4f-751befeea37c",
"name": "Labels für Nachricht zuweisen",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1240,
200
],
"parameters": {
"text": "={{ $('Gmail trigger').item.json.text }}",
"messages": {
"messageValues": [
{
"message": "=As an AI Assistant, your task is to categorize the message according to the following labels\n\nQuotation - email on discussing new opportunities to work with existing / new client on a new project\nProject progress - email on discussing and confirming specifications, schedule and progress of projects\nInquiry - email about product / service support\nNotification - email that doesn't require response\n\nOne email can have more than one label. Return only label names in JSON format, nothing else. Do not make things up."
}
]
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.5
},
{
"id": "c0f1e702-25b5-4887-b112-7d0d1c239ea1",
"name": "JSON Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1460,
420
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"properties\": {\n \"labels\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\",\n \"enum\": [\"Inquiry\", \"Quotation\", \"Project progress\", \"Notification\"]\n }\n }\n },\n \"required\": [\"labels\"]\n}"
},
"typeVersion": 1.2
},
{
"id": "979aad50-8e34-471e-9016-c412e470c81b",
"name": "Label-Werte setzen",
"type": "n8n-nodes-base.set",
"position": [
1620,
200
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "72d11a72-6693-447c-b7ca-4ba1a3579075",
"name": "labels",
"type": "array",
"value": "={{ $json.output.labels }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "48e80f97-1679-40a5-860d-124d32c82316",
"name": "Alle Labels abrufen",
"type": "n8n-nodes-base.gmail",
"position": [
1840,
80
],
"webhookId": "dec6f574-f47c-4b5d-86b9-2b0f6c957145",
"parameters": {
"resource": "label",
"returnAll": true
},
"credentials": {
"gmailOAuth2": {
"id": "2pW13S2GyP5GCdoP",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "e29e712a-7940-4ca3-9a82-525ac7d5f7bf",
"name": "Zugewiesene Labels aufteilen",
"type": "n8n-nodes-base.splitOut",
"position": [
1840,
280
],
"parameters": {
"options": {},
"fieldToSplitOut": "labels"
},
"typeVersion": 1
},
{
"id": "95886e13-3412-4c27-8510-873bbaced52b",
"name": "Entsprechende Labels zusammenführen",
"type": "n8n-nodes-base.merge",
"position": [
2180,
140
],
"parameters": {
"mode": "combine",
"options": {},
"advanced": true,
"mergeByFields": {
"values": [
{
"field1": "name",
"field2": "labels"
}
]
}
},
"typeVersion": 3.1
},
{
"id": "329cf5ff-7933-4c5e-bb63-cbb77689a194",
"name": "Label-IDs aggregieren",
"type": "n8n-nodes-base.aggregate",
"position": [
2440,
140
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"renameField": true,
"outputFieldName": "label_ids",
"fieldToAggregate": "id"
}
]
}
},
"typeVersion": 1
},
{
"id": "952aad99-6ae7-4639-8132-f51b1065468e",
"name": "Labels zu Nachricht hinzufügen",
"type": "n8n-nodes-base.gmail",
"position": [
2640,
140
],
"webhookId": "4f345fc9-2afd-478b-be3b-d3d28f0fbc82",
"parameters": {
"labelIds": "={{ $json.label_ids }}",
"messageId": "={{ $('Gmail trigger').item.json[\"id\"] }}",
"operation": "addLabels"
},
"credentials": {
"gmailOAuth2": {
"id": "2pW13S2GyP5GCdoP",
"name": "Gmail account"
}
},
"typeVersion": 2.1
},
{
"id": "11244a40-d6df-475b-b900-bf8d386077d6",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
20,
-140
],
"parameters": {
"color": 4,
"width": 580,
"height": 1041,
"content": "## Intelligent Gmail Labeling: Categorize Emails by Content Intent Using OpenAI\n\n## Who is this for?\n\nThis workflow is ideal for Gmail users and teams who receive a high volume of emails and want to streamline inbox management. It suits professionals seeking to organize messages automatically, including sales teams, project managers, support staff, and anyone who benefits from automated email categorization.\n\n## What problem is this workflow solving? / Use case\n\nManually labeling emails is time-consuming and can lead to inconsistent organization. This automated n8n workflow uses Gmail and OpenAI to analyze incoming messages and apply the appropriate labels, such as \"Quotation\", \"Inquiry\", \"Project progress\", and \"Notification\", based on content—improving productivity and ensuring important messages are prioritized.\n\n## What this workflow does\n\nThe workflow retrieves new Gmail messages, analyzes their content with OpenAI, and automatically assigns pre-defined Gmail labels that match the email’s intent. This ensures emails are sorted efficiently using AI-powered content analysis and Gmail’s labeling system.\n\n## Setup\n\n- Ensure Gmail labels (e.g., \"Quotation\", \"Inquiry\") are created in your Gmail account.\n- Connect your Gmail and OpenAI accounts as credentials in n8n.\n- Import the workflow into your n8n instance and update node configurations to match your Gmail label names.\n\n## How to customize this workflow to your needs\n\n- Edit or add Gmail labels both in your Gmail account and within the workflow logic.\n- Adjust the prompt or parameters sent to OpenAI to better match your categorization style.\n- Expand or refine the list of label categories to fit your team’s or business’s requirements.\n"
},
"typeVersion": 1
},
{
"id": "1eca85f0-bfa4-431e-90e2-0ffe25844bdd",
"name": "Sticky Note13",
"type": "n8n-nodes-base.stickyNote",
"position": [
660,
20
],
"parameters": {
"width": 238,
"height": 349,
"content": "### Gmail Trigger\nGet new incoming message from Gmail. \n\n⚠️ Set up the time (polling) interval based on your needs."
},
"typeVersion": 1
},
{
"id": "a5dd9b23-0fd8-42a8-a334-2a0640750c52",
"name": "Sticky Note14",
"type": "n8n-nodes-base.stickyNote",
"position": [
1400,
400
],
"parameters": {
"width": 241.53974014153226,
"height": 319.3323098457962,
"content": "###\n\n\n\n\n\n\n\n\n\n\n### JSON schema\nEdit JSON schema and label names according to your needs.\n\n⚠️ **Label names in system prompt and JSON schema should be the same.**"
},
"typeVersion": 1
},
{
"id": "c6a7af89-e307-4363-8d96-83c0f7c0e7b8",
"name": "Sticky Note15",
"type": "n8n-nodes-base.stickyNote",
"position": [
2120,
40
],
"parameters": {
"width": 226.14233872620645,
"height": 347.0476323933831,
"content": "### Merge labels\nCombine labels retrieved from Gmail account and assigned by AI together."
},
"typeVersion": 1
},
{
"id": "afb1a124-f880-4d6c-987e-dabf2c3fb882",
"name": "Sticky Note16",
"type": "n8n-nodes-base.stickyNote",
"position": [
920,
20
],
"parameters": {
"width": 238.4602598584674,
"height": 348.5873725349161,
"content": "### Get message content\nBased on Gmail message ID retrieve body content of the email and pass it to AI chain."
},
"typeVersion": 1
},
{
"id": "44b4c579-538f-45fe-9cde-627ac7364013",
"name": "Sticky Note17",
"type": "n8n-nodes-base.stickyNote",
"position": [
1180,
20
],
"parameters": {
"width": 378.57661273793565,
"height": 348.5873725349161,
"content": "### Assign labels\nLet the AI decide which labels suit the best content of the message.\n\n⚠️ **Remember to edit system prompt** - modify label names and instructions according to your needs."
},
"typeVersion": 1
},
{
"id": "e866b876-20a4-4a19-bd07-56c69eed82af",
"name": "OpenAI GPT-4 Based",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1220,
420
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4-turbo-preview",
"cachedResultName": "gpt-4-turbo-preview"
},
"options": {
"temperature": 0,
"responseFormat": "json_object"
}
},
"credentials": {
"openAiApi": {
"id": "8cWUJS0NExv35YHi",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "01528b99-a1ee-48df-b42f-c3717974161c",
"connections": {
"c0f1e702-25b5-4887-b112-7d0d1c239ea1": {
"ai_outputParser": [
[
{
"node": "1f07bb8a-0e12-47fd-bf4f-751befeea37c",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"013c142d-eb86-4d62-bab3-9dc77fba7b3b": {
"main": [
[
{
"node": "78cf0980-b4ec-4ed0-9b49-014e4d5d63d3",
"type": "main",
"index": 0
}
]
]
},
"48e80f97-1679-40a5-860d-124d32c82316": {
"main": [
[
{
"node": "95886e13-3412-4c27-8510-873bbaced52b",
"type": "main",
"index": 0
}
]
]
},
"979aad50-8e34-471e-9016-c412e470c81b": {
"main": [
[
{
"node": "e29e712a-7940-4ca3-9a82-525ac7d5f7bf",
"type": "main",
"index": 0
},
{
"node": "48e80f97-1679-40a5-860d-124d32c82316",
"type": "main",
"index": 0
}
]
]
},
"e866b876-20a4-4a19-bd07-56c69eed82af": {
"ai_languageModel": [
[
{
"node": "1f07bb8a-0e12-47fd-bf4f-751befeea37c",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"329cf5ff-7933-4c5e-bb63-cbb77689a194": {
"main": [
[
{
"node": "952aad99-6ae7-4639-8132-f51b1065468e",
"type": "main",
"index": 0
}
]
]
},
"78cf0980-b4ec-4ed0-9b49-014e4d5d63d3": {
"main": [
[
{
"node": "1f07bb8a-0e12-47fd-bf4f-751befeea37c",
"type": "main",
"index": 0
}
]
]
},
"1f07bb8a-0e12-47fd-bf4f-751befeea37c": {
"main": [
[
{
"node": "979aad50-8e34-471e-9016-c412e470c81b",
"type": "main",
"index": 0
}
]
]
},
"e29e712a-7940-4ca3-9a82-525ac7d5f7bf": {
"main": [
[
{
"node": "95886e13-3412-4c27-8510-873bbaced52b",
"type": "main",
"index": 1
}
]
]
},
"95886e13-3412-4c27-8510-873bbaced52b": {
"main": [
[
{
"node": "329cf5ff-7933-4c5e-bb63-cbb77689a194",
"type": "main",
"index": 0
}
]
]
}
}
}Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Experte - Support, Künstliche Intelligenz
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
Henry
@henryDiesen Workflow teilen