AutomationFlowsAI & RAG › Auto-categorize Gmail Emails with AI and Send Prioritized Slack Alerts

Auto-categorize Gmail Emails with AI and Send Prioritized Slack Alerts

ByMatt Chong | n8n Creator @mattxchong on n8n.io

Teams using Gmail and Slack who want to streamline email handling. Customer support, sales, and operations teams that want emails sorted by topic and priority automatically. Anyone tired of manually triaging customer emails. Stops important messages from slipping through the…

Event trigger★★★★☆ complexityAI-powered7 nodesGmail TriggerGmailAgentOpenAI ChatOutput Parser StructuredSlack
AI & RAG Trigger: Event Nodes: 7 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #7643 — 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 →

Download .json
{
  "name": "AI Auto-Route Emails and Send Slack Alerts",
  "nodes": [
    {
      "id": "cfcf1f18-7faa-408d-9cb6-a7eb7fab5886",
      "name": "Trigger on Unread Email",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        -368,
        224
      ],
      "parameters": {
        "filters": {
          "readStatus": "unread"
        },
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "96e9c067-b27e-437c-9ea7-16e46cf1f09d",
      "name": "Get Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        -144,
        224
      ],
      "parameters": {
        "simple": false,
        "options": {},
        "messageId": "={{ $json.id }}",
        "operation": "get"
      },
      "typeVersion": 2.1
    },
    {
      "id": "d7d471c3-65e2-43d6-8472-31d278171fd9",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        80,
        224
      ],
      "parameters": {
        "text": "=You are an email router. Read subject and body and output valid JSON with:\n- category: one of [sales_pre_purchase, support_technical, billing_refund, complaint_escalation]\n- from: {{$json.from?.value?.[0]?.address || $json.from?.email || ''}}\n- subject: {{$json.subject || $json.headers?.subject || $json.subject}}\n- priority: one of [low, normal, high, urgent]\n- summary: short one line summary\n- reason: short why you chose the category\n\nRules:\n- If the sender asks pre-purchase features, pricing, demos \u2192 sales_pre_purchase\n- If the sender reports bugs, errors, account access, how-to \u2192 support_technical\n- If the sender mentions charges, invoices, refunds \u2192 billing_refund\n- If the sender is angry, threatens to leave, mentions escalation or complaint \u2192 complaint_escalation\nOutput only minified JSON. No extra text.\n\nEmail Body:\n{{$json.textPlain || $json.text || ''}}\n",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "c906a662-dfe5-4bb7-ad61-5b472d4027bc",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        88,
        448
      ],
      "parameters": {
        "model": {
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "ce9714c6-1d15-470b-a805-1041a7a63571",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        216,
        448
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n  \"type\": \"object\",\n  \"properties\": {\n    \"category\": { \"type\": \"string\", \"enum\": [\"sales_pre_purchase\",\"support_technical\",\"billing_refund\",\"complaint_escalation\"] },\n    \"priority\": { \"type\": \"string\", \"enum\": [\"low\",\"normal\",\"high\",\"urgent\"] },\n    \"summary\": { \"type\": \"string\", \"maxLength\": 280 },\n    \"reason\": { \"type\": \"string\", \"maxLength\": 140 },\n    \"subject\": { \"type\": \"string\", \"maxLength\": 280 },\n    \"from\": { \"type\": \"string\", \"maxLength\": 140 }\n  },\n  \"required\": [\"category\",\"priority\",\"summary\",\"subject\",\"from\"],\n  \"additionalProperties\": false\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "360cf165-a32a-4aa8-8770-af244fe67995",
      "name": "Routing Map",
      "type": "n8n-nodes-base.set",
      "position": [
        432,
        224
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "name": "label",
              "type": "string",
              "value": "={{ $json.output.category === 'sales_pre_purchase' ? 'Sales' : $json.output.category === 'support_technical' ? 'Support' : $json.output.category === 'billing_refund' ? 'Billing' : 'Complaint' }}"
            },
            {
              "name": "slackChannel",
              "type": "string",
              "value": "={{ \n  $json.output.category === 'sales_pre_purchase' ? 'C09B7HS98GN' :\n  $json.output.category === 'support_technical' ? 'C09B5JV2G9Y' :\n  $json.output.category === 'billing_refund' ? 'C09BYN135T2' :\n  'C09B5JV2G9Y'\n}}"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "39e36a35-33f9-4f1b-a38d-cfffd4ba8127",
      "name": "Send Notification to Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        656,
        224
      ],
      "parameters": {
        "text": "=Priority: {{$json.output.priority}}\nFrom: {{ $json.output.from }}\nSummary: {{ $json.output.summary }}\nReason: {{ $json.output.reason }}",
        "user": {
          "value": "={{ $json.slackChannel }}"
        },
        "select": "user",
        "otherOptions": {
          "includeLinkToWorkflow": false
        },
        "authentication": "oAuth2"
      },
      "typeVersion": 2.3
    }
  ],
  "connections": {
    "AI Agent": {
      "main": [
        [
          {
            "node": "Routing Map",
            "type": "main",
            "index": 0
          }
        ]
      ],
      "ai_outputParser": [
        [
          {
            "node": "Structured Output Parser",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ],
      "ai_languageModel": [
        [
          {
            "node": "OpenAI Chat Model",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Get Email": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Routing Map": {
      "main": [
        [
          {
            "node": "Send Notification to Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger on Unread Email": {
      "main": [
        [
          {
            "node": "Get Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Teams using Gmail and Slack who want to streamline email handling. Customer support, sales, and operations teams that want emails sorted by topic and priority automatically. Anyone tired of manually triaging customer emails. Stops important messages from slipping through the…

Source: https://n8n.io/workflows/7643/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Streamline customer support with a real-time, AI-powered answer engine that detects incoming support emails, classifies intent, identifies the customer’s GEO region, and generates a tailored reply rea

Slack, Gmail Trigger, OpenAI Chat +5
AI & RAG

Monitors your AP inbox for incoming invoices, extracts structured data with AI, runs duplicate and vendor history checks against Supabase, then scores each invoice for fraud risk — routing suspicious

Gmail Trigger, Agent, OpenAI Chat +4
AI & RAG

Gmail users report spending significant time manually sorting email, so this tool helps alleviate that burden. Gmail Trigger monitors unread emails every 2 minutes Once an email arrives, the content i

OpenAI Chat, Output Parser Structured, Agent +4
AI & RAG

Email-Triage. Uses lmChatOpenAi, outputParserStructured, agent, toolWorkflow. Event-driven trigger; 27 nodes.

OpenAI Chat, Output Parser Structured, Agent +5
AI & RAG

[](https://youtu.be/nC2mSry3xFo)

Gmail Trigger, OpenAI Chat, Output Parser Structured +6