🎫 Smart Gmail auto-labeler with Gemini AI & sender history

142 views · 🎫 Ticket Management & Triage

Description

n8n Gmail AI Auto-Labeler

> An intelligent n8n workflow that automatically classifies and labels Gmail emails using Google Gemini AI, keeping your inbox organized with zero manual effort.

This workflow uses AI-powered classification to analyze email content, learn from sender patterns, and automatically apply appropriate labels while archiving processed emails.


How It Works

  1. Trigger: The workflow runs automatically every minute to check for new unread emails (or manually for bulk processing).
  2. Check for Existing Labels: Before processing, it verifies if the email already has an AI-assigned label to avoid duplicate processing.
  3. AI Classification: If unlabeled, the AI agent analyzes the email using:
    • Sender History Tool - Fetches up to 10 previous emails from the same sender to identify patterns
    • 80% Majority Rule - If 80%+ of sender’s past emails have the same label, strongly prefers that category
    • Label Examples Tool - When uncertain, compares the email with existing examples from suspected categories
  4. Smart Decision: The AI returns a structured JSON response:
    {
      "label": "Category Name"
    }
    Or "None" if no category fits.
  5. Apply & Archive:
    • Label Applied → The workflow adds the appropriate Gmail label to the thread.
    • Auto-Archive → Removes the email from INBOX (archives it) to maintain zero-inbox.
  6. Loop: Processes the next email in the batch, ensuring all new emails are classified.

Requirements


How to Use

  1. Import the Workflow:

    • Copy the provided JSON file.
    • In your n8n instance → click Import Workflow → select the JSON file.
  2. Create Gmail Labels:

    • Open Gmail → Settings → Labels → Create new labels.
    • Use the exact names listed above (case-sensitive).
  3. Get Your Label IDs:

    • In the workflow, click “When clicking ‘Execute workflow’” manual trigger.
    • Execute the “Get Labels Info” node only.
    • Copy each label’s ID (format: Label_1234567890123456789).
  4. Update Code Nodes with Your Label IDs:

    Node 1: “Check Label Existence”

    const labelMap = {
      "Label_YOUR_ID_HERE": "Meetings",
      "Label_YOUR_ID_HERE": "Inquiries",
      "Label_YOUR_ID_HERE": "Notify / Verify",
      "Label_YOUR_ID_HERE": "Expenses",
      "Label_YOUR_ID_HERE": "Orders / Deliveries",
      "Label_YOUR_ID_HERE": "Trash Likely"
    };

    Node 2: “Convert Label to Label ID”

    const labelToId = {
      "Meetings": "Label_YOUR_ID_HERE",
      "Inquiries": "Label_YOUR_ID_HERE",
      "Notify / Verify": "Label_YOUR_ID_HERE",
      "Expenses": "Label_YOUR_ID_HERE",
      "Orders / Deliveries": "Label_YOUR_ID_HERE",
      "Trash Likely": "Label_YOUR_ID_HERE"
    };
  5. Set Up Credentials:

    • Gmail OAuth2 → Authorize your Gmail account in n8n.
    • Google Gemini API → Add your API key in n8n credentials.
  6. Test the Workflow:

    • Send yourself test emails with clear content (e.g., invoice, meeting invite).
    • Use the manual trigger to process them.
    • Verify labels are applied correctly.
  7. Activate for Auto Mode:

    • Toggle the workflow to Active.
    • New unread emails will be processed automatically every minute.

Notes


Example Behavior


Label Categories

LabelDescription
MeetingsCalendar invites, Zoom/Meet links, appointments, scheduled events
ExpensesBills, invoices, receipts, payment reminders, subscription renewals
IncomePayments received, payouts, deposits, earnings notifications
Notify / VerifyVerification codes, login alerts, 2FA codes, account notifications
Orders / DeliveriesOrder confirmations, shipping updates, tracking numbers, deliveries
InquiriesBusiness outreach, sales proposals, partnerships, cold emails
Trash LikelySpam, newsletters, promotions, marketing blasts, ads

> If no category fits clearly, the email returns "None" and remains in the inbox.


Customization


Author: Muhammad Anas Farooq

🔗 Nodes Used

Gmail, Gmail Trigger, AI Agent, Structured Output Parser, Google Gemini Chat Model

📥 Import

Download workflow.json and import into n8n: Workflow menu → Import from File

📖 Importing guide · 🔑 Credential setup