This workflow corresponds to n8n.io template #3772 — we link there as the canonical source.
This workflow follows the Agent → Gmail recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "m8gr0YZgCx5Qrsia",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "(G) - Email Classification",
"tags": [],
"nodes": [
{
"id": "0226578d-4741-42f2-8a7b-c750f75be78d",
"name": "Gmail Trigger",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
0,
0
],
"parameters": {
"simple": false,
"filters": {},
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "48d0ee27-d4d6-4db4-843c-d9c18b934945",
"name": "Google Gemini Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
220,
320
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.0-flash-001"
},
"credentials": {
"googlePalmApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "d7e8bed4-cadc-41e3-b793-cc8affb177cc",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"disabled": true,
"position": [
1420,
60
],
"parameters": {
"text": "=Here's the email context: {{ $('Classification Agent').item.json.text }}",
"options": {
"systemMessage": "You are my personal assistant for Kajonkietsuksa School.\nYour role is to help me with any work-related tasks.\nOne of your main responsibilities is to write professional and polite reply emails whenever I receive an email in my inbox. Act as me, don't include something like \"here's a potential reply email or other\"\n\nWhen writing a reply email:\n\nStart by acknowledging the sender's message.\n\nAnswer their questions or address their requests clearly and directly.\n\nMaintain a polite, professional, and helpful tone.\n\nKeep the language simple and easy to understand.\n\nIf additional action is required from me, mention that I will get back to them soon.\n\nAlways end the email with a courteous closing line, such as \"Thank you\" or \"Best regards.\"\n\nKeep your writing style consistent with a warm yet formal communication style that reflects the reputation of Kajonkietsuksa School.\n\n"
},
"promptType": "define"
},
"typeVersion": 1.8
},
{
"id": "3b5cabb7-346f-4b69-b3f4-c61e78e2d8c7",
"name": "Groq Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatGroq",
"disabled": true,
"position": [
1440,
180
],
"parameters": {
"model": "meta-llama/llama-4-scout-17b-16e-instruct",
"options": {}
},
"credentials": {
"groqApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "43984fb2-7a26-4e13-95ee-c29f0d9f2f24",
"name": "Gmail3",
"type": "n8n-nodes-base.gmail",
"disabled": true,
"position": [
1780,
60
],
"parameters": {
"message": "={{ $json.output }}",
"options": {},
"subject": "=Re: {{ $('Gmail Trigger').item.json.headers.subject }}",
"resource": "draft"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "c269ec5e-f882-4458-ab52-46b719731309",
"name": "Classification Agent",
"type": "@n8n/n8n-nodes-langchain.textClassifier",
"position": [
240,
0
],
"parameters": {
"options": {
"systemPromptTemplate": "Please classify the text provided by the user into one of the following categories: {categories}, and use the provided formatting instructions below. Don't explain, and only output the json."
},
"inputText": "={{ $json.text || $json.html }}",
"categories": {
"categories": [
{
"category": "High Priority",
"description": "Emails requiring immediate attention or action, typically from key stakeholders, clients, or decision-makers. These emails often contain time-sensitive requests, deadlines, or escalated issues. Keywords: urgent, ASAP, immediate, deadline, action required, high priority"
},
{
"category": "KS Work Related",
"description": "Anything related to my school or education. Keyword: Kajonkietsuksa School, Kajonkietsuksa, School"
},
{
"category": "Promotion",
"description": "Anything related to updating on promotions. Keywords: newsletter, promotion, offer, sale, campaign, marketing, launch"
},
{
"category": "Other",
"description": "If you don't know what category is this email."
}
]
}
},
"typeVersion": 1
},
{
"id": "17be38df-c225-4d19-81ec-e205ff4b9f3c",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
60,
260
],
"parameters": {
"color": 4,
"width": 300,
"height": 80,
"content": "### 2) Change to your desire LLMs"
},
"typeVersion": 1
},
{
"id": "3e8ac267-c2ac-49cb-ad53-536510faa1a4",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
-60
],
"parameters": {
"color": 4,
"content": "### 1) Change to your gmail's credential"
},
"typeVersion": 1
},
{
"id": "f5e2c92d-3335-4ed0-915e-f7edeb0b5a92",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
220,
-380
],
"parameters": {
"color": 4,
"width": 340,
"content": "### 3) Login to your gmail inbox\n* Create a label with \"+\" icon\n* Change the color of your choice"
},
"typeVersion": 1
},
{
"id": "4a8a7424-f9dd-42b1-b803-5d0dbe076956",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
220,
-160
],
"parameters": {
"color": 4,
"width": 320,
"content": "### 4) Agent instruction\n* Input the category name that you just created in gmail.\n* Description = Tell agent about how should it classify your email. Keywords can be useful to let your agent classify the email context."
},
"typeVersion": 1
},
{
"id": "24c7ef4e-7a68-4240-980b-02b994300084",
"name": "Add Label Promotion",
"type": "n8n-nodes-base.gmail",
"position": [
700,
200
],
"parameters": {
"labelIds": [
"Label_4917715854276709190"
],
"messageId": "={{ $json.id }}",
"operation": "addLabels"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "759f8cbe-4674-49e5-a52b-2acf208ffb22",
"name": "Add Label (KS Work Related)",
"type": "n8n-nodes-base.gmail",
"position": [
700,
0
],
"parameters": {
"labelIds": [
"Label_4956837555783205638"
],
"messageId": "={{ $json.id }}",
"operation": "addLabels"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "d07fe962-16c0-401a-b194-5ce7e6ad9746",
"name": "Add Label (High Priority)",
"type": "n8n-nodes-base.gmail",
"position": [
700,
-200
],
"parameters": {
"labelIds": [
"Label_3750994713301985229"
],
"messageId": "={{ $json.id }}",
"operation": "addLabels"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "7d0c9bd5-6150-4afa-9344-8bb3c1a6b01c",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
660,
-320
],
"parameters": {
"color": 4,
"width": 320,
"content": "### 5) Add Label Nodes\n* In this option \"Label Names or IDs\" -> Select the category to match with the Classification Agent Node."
},
"typeVersion": 1
},
{
"id": "d57ecacb-a479-4bf7-b9b4-b9e14e30dcd7",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
980,
60
],
"parameters": {
"color": 4,
"width": 220,
"content": "### 6) Add-on\n* You can add more category of your choice!"
},
"typeVersion": 1
}
],
"active": true,
"settings": {
"executionOrder": "v1"
},
"versionId": "c94df4ec-be75-449f-82fa-4e1f8878104a",
"connections": {
"AI Agent": {
"main": [
[
{
"node": "Gmail3",
"type": "main",
"index": 0
}
]
]
},
"Gmail Trigger": {
"main": [
[
{
"node": "Classification Agent",
"type": "main",
"index": 0
}
]
]
},
"Groq Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Classification Agent": {
"main": [
[
{
"node": "Add Label (High Priority)",
"type": "main",
"index": 0
}
],
[
{
"node": "Add Label (KS Work Related)",
"type": "main",
"index": 0
}
],
[
{
"node": "Add Label Promotion",
"type": "main",
"index": 0
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "Classification Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Add Label (KS Work Related)": {
"main": [
[]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
gmailOAuth2googlePalmApigroqApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Quickly organize your inbox with AI! This simple workflow automatically classifies incoming emails into different categories — like High Priority, Work Related, or Promotions — and applies Gmail labels accordingly. Setup takes less than 2 minutes, and it runs 24/7, helping you…
Source: https://n8n.io/workflows/3772/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
(G) - Email Classification. Uses gmailTrigger, lmChatGoogleGemini, agent, lmChatGroq. Event-driven trigger; 15 nodes.
ITfest. Uses telegramTrigger, telegram, textClassifier, agent. Event-driven trigger; 70 nodes.
Use cases are many: Manage your Gmail inbox, schedule calendar events, and handle contact details — all from one central AI-powered assistant. Perfect for freelancers managing clients, agency owners w
This template and YouTube video goes over 5 different implementations of evaluations within n8n. Categorization Correctness Tools used String similarity Helpfulness
Turn a simple email workflow into a LinkedIn content machine. Generate post ideas, draft full posts, and auto-publish to LinkedIn all controlled by replying to emails.