AutomationFlowsAI & RAG › Automate Gmail Tasks with Gemini AI Assistant and Contact Management

Automate Gmail Tasks with Gemini AI Assistant and Contact Management

ByRakin Jakaria @rakinjakaria on n8n.io

Use cases are many: Automate Gmail tasks such as sending, replying, labeling, deleting, and fetching emails — all with AI assistance. Perfect for YouTubers managing viewer emails, sales teams handling inquiries, freelancers responding to client requests, or professionals keeping…

Chat trigger trigger★★★☆☆ complexityAI-powered12 nodesChat TriggerAgentGmail ToolGoogle Sheets ToolGoogle Gemini ChatMemory Buffer Window
AI & RAG Trigger: Chat trigger Nodes: 12 Complexity: ★★★☆☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #7902 — we link there as the canonical source.

This workflow follows the Agent → Chat Trigger 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
{
  "id": "dCoGIILwTYxSwiHV",
  "name": "Gmail Agent",
  "tags": [],
  "nodes": [
    {
      "id": "bd41a12c-009b-4812-9807-a68f75a09a81",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        752,
        288
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "a6cfb7de-5f06-437c-a509-9b45ebcfa14c",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1008,
        288
      ],
      "parameters": {
        "options": {
          "systemMessage": "=You are Rakin\u2019s smart Gmail assistant.\n\nInstructions:\n\nFor any Gmail-related task from Rakin, use the appropriate Gmail tool (Send, Reply, Label, Delete, Get Many).\n\nIf only a name is given (no email), fetch the email from Google Sheets.\n\nAuto-complete any missing details (links, answers, summaries) needed for emails or replies.\n\nApply relevant labels like:\n\nyoutube-viewers\nsales-inquiry\nmeeting-request\npotential-clients\ncollaboration-requests\n\nwhen appropriate.\n\nStay efficient, accurate, and helpful at all times."
        }
      },
      "typeVersion": 2
    },
    {
      "id": "2387aefe-f80c-4e94-b516-1afea31163e7",
      "name": "Send",
      "type": "n8n-nodes-base.gmailTool",
      "position": [
        912,
        496
      ],
      "parameters": {
        "sendTo": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('To', ``, 'string') }}",
        "message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
        "options": {
          "appendAttribution": false
        },
        "subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', ``, 'string') }}",
        "emailType": "text"
      },
      "typeVersion": 2.1
    },
    {
      "id": "90f756fd-d40d-4475-a02d-ddf9592d655b",
      "name": "Reply",
      "type": "n8n-nodes-base.gmailTool",
      "position": [
        1024,
        496
      ],
      "parameters": {
        "message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
        "options": {
          "appendAttribution": false
        },
        "emailType": "text",
        "messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message_ID', ``, 'string') }}",
        "operation": "reply"
      },
      "typeVersion": 2.1
    },
    {
      "id": "7eb3e8d2-cc51-403d-ae01-71078a207513",
      "name": "Label",
      "type": "n8n-nodes-base.gmailTool",
      "position": [
        1152,
        496
      ],
      "parameters": {
        "labelIds": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Label_Names_or_IDs', ``, 'string') }}",
        "messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message_ID', ``, 'string') }}",
        "operation": "addLabels"
      },
      "typeVersion": 2.1
    },
    {
      "id": "34450898-1c3b-4755-848d-93a5c3076d83",
      "name": "Delete",
      "type": "n8n-nodes-base.gmailTool",
      "position": [
        1264,
        496
      ],
      "parameters": {
        "messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message_ID', ``, 'string') }}",
        "operation": "delete"
      },
      "typeVersion": 2.1
    },
    {
      "id": "862846c3-3488-4932-a93d-69287299e971",
      "name": "Get Many",
      "type": "n8n-nodes-base.gmailTool",
      "position": [
        1392,
        496
      ],
      "parameters": {
        "simple": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Simplify', ``, 'boolean') }}",
        "filters": {},
        "options": {},
        "operation": "getAll",
        "returnAll": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Return_All', ``, 'boolean') }}"
      },
      "typeVersion": 2.1
    },
    {
      "id": "1e39bc28-629a-4902-9e92-ed3d43296ed5",
      "name": "Sheet",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        1504,
        496
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1UTOyNDNeRJj6nRuladtP61ljeZg6xXK3O1Kn3Dq7t_A/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1UTOyNDNeRJj6nRuladtP61ljeZg6xXK3O1Kn3Dq7t_A",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1UTOyNDNeRJj6nRuladtP61ljeZg6xXK3O1Kn3Dq7t_A/edit?usp=drivesdk",
          "cachedResultName": "Contact Details"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "f7320f18-2a7b-4c55-99eb-1e68ad348b51",
      "name": "Gemini",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        672,
        496
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "c8857e6d-f0da-4d54-a7b4-c57009ce65d9",
      "name": "Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        784,
        496
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "133b9714-bf54-440f-8e1b-79e5be3463f6",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -64,
        -304
      ],
      "parameters": {
        "color": 4,
        "width": 660,
        "height": 980,
        "content": "# \ud83d\udee0\ufe0f Setup Guide\n### \ud83d\udc64 Author: [Rakin Jakaria](https://www.youtube.com/@rakinjakaria)\n### \ud83d\udd0c Steps to Connect:\n1. **Gmail OAuth2 Setup**  \n   - Connect your Gmail account to n8n using OAuth2 authentication.\n   - Go to **Credentials** in n8n and create a new **Gmail OAuth2** credential.\n   - Follow the authentication flow to authorize n8n to access your Gmail account.\n   - Apply this credential to all Gmail nodes (Send, Reply, Label, Delete, Get Many).\n\n2. **Google Gemini API Key**  \n   - Visit [Google AI Studio](https://aistudio.google.com/) and generate your Gemini API key.\n   - Create a new **Google Gemini (PaLM) API** credential in n8n.\n   - Paste your API key into the **Gemini** language model node.\n\n3. **Google Sheets Integration**  \n   - Set up **Google Sheets OAuth2** credentials in n8n.\n   - Create or connect to your existing Google Sheets document for contact management.\n   - Update the **Sheet** node with your specific spreadsheet ID and sheet name.\n   - Ensure your sheet has columns for names and email addresses.\n\n4. **Chat Trigger Configuration**  \n   - The **Chat Trigger** node creates a webhook URL for your Gmail agent.\n   - Copy the webhook URL from the Chat Trigger node.\n   - Use this URL to interact with your Gmail agent via chat interface.\n\n5. **AI Agent System Prompt Customization**  \n   - Modify the system message in the **AI Agent** node to match your specific needs.\n   - Update the predefined labels (youtube-viewers, sales-inquiry, etc.) to your Gmail labels.\n   - Customize the assistant's name and behavior instructions.\n\n6. **Memory Configuration**  \n   - The **Memory** node stores conversation context.\n   - Adjust the buffer window size based on your chat length requirements.\n\n---\n\ud83d\udca1 **Pro Tips:**\n- Test each Gmail operation individually before running the full workflow.\n- Create Gmail labels beforehand for better email organization.\n- Monitor your Google API usage to avoid rate limits.\n\nNeed help? Check out Rakin's [YouTube Tutorials](https://www.youtube.com/@rakinjakaria) for detailed setup instructions."
      },
      "typeVersion": 1
    },
    {
      "id": "fc096be2-2970-4170-badd-e98cab6feb5d",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        656,
        -304
      ],
      "parameters": {
        "color": 4,
        "width": 480,
        "height": 448,
        "content": "## Start here: Step-by Step Youtube Tutorial :star:\n[![I Built an Auto Lead Finder AI Agent](https://img.youtube.com/vi/Qogyc2mPa80/sddefault.jpg)](https://youtu.be/Qogyc2mPa80?si=_TcQZjBdtLHy2mdz)"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "5d7c251c-1d3f-476e-9090-f101d95bdbea",
  "connections": {
    "Send": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Label": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Reply": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Sheet": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Delete": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Gemini": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Get Many": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "AI Agent",
            "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

Use cases are many: Automate Gmail tasks such as sending, replying, labeling, deleting, and fetching emails — all with AI assistance. Perfect for YouTubers managing viewer emails, sales teams handling inquiries, freelancers responding to client requests, or professionals keeping…

Source: https://n8n.io/workflows/7902/ — 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

Personal Assistant MCP server. Uses chatTrigger, lmChatGoogleGemini, memoryBufferWindow, mcpTrigger. Chat trigger; 20 nodes.

Chat Trigger, Google Gemini Chat, Memory Buffer Window +6
AI & RAG

Personal Assistant MCP server. Uses chatTrigger, lmChatGoogleGemini, memoryBufferWindow, mcpTrigger. Chat trigger; 20 nodes.

Chat Trigger, Google Gemini Chat, Memory Buffer Window +6
AI & RAG

Wouldn't it be cool to just tell your computer or phone to "schedule a meeting with Sarah next Tuesday at 3 PM" or "find John Doe's email address" and have it actually do it? That's the dream of a per

Chat Trigger, Google Gemini Chat, Memory Buffer Window +6
AI & RAG

Think Tool. Uses stickyNote, agent, googleCalendarTool, memoryBufferWindow. Chat trigger; 28 nodes.

Agent, Google Calendar Tool, Memory Buffer Window +8
AI & RAG

Overview Meet Maria, a sophisticated AI Booking Agent designed for Veterinary Clinics (but easily adaptable to any service business). This workflow transforms a simple chat interface into a full-scale

Chat Trigger, Google Calendar Tool, Memory Buffer Window +7