Gmail Assistant with Full Gmail history RAG using OpenAI

Go to Workflow
79 views
Built by Zain Ali Zain Ali
Created on June 05, 2026

Description

đź§  RAG with Full Gmail history + Real time email updates in RAG using OpenAI & Qdrant

> Summary:
> This workflow listens for new Gmail messages, extracts and cleans email content, generates embeddings via OpenAI, stores them in a Qdrant vector database, and then enables a Retrieval‑Augmented‑Generation (RAG) agent to answer user queries against those stored emails. It’s designed for teams or bots that need conversational access to past emails.

🧑‍🤝‍🧑 Who’s it for
Support teams** who want to surface past customer emails in chatbots or help‑desk portals
Sales ops** that need AI‑powered summaries and quick lookup of email histories
Developers** building RAG agents over email archives

⚙️ How it works / What it does
Trigger
Gmail Trigger polls every minute for new messages.
Fetch & Clean
Get Mail Data pulls full message metadata and body.
Code node normalizes the body (removes line breaks, collapses spaces).
Embed & Store
Embeddings OpenAI node computes vector embeddings.
Qdrant Vector Store inserts embeddings + metadata into the emails_history collection.
Batch Processing
SplitInBatches handles large inbox loads in chunks of 50.
RAG Interaction
When chat message received → RAG Agent → uses Qdrant Email Vector Store as a tool to retrieve relevant email snippets before responding.
Memory
Simple Memory buffer ensures the agent retains recent context.

🛠️ How to set up
n8n Instance
Deploy n8n (self‑hosted or via Coolify/Docker).
Credentials
Create an OAuth2 credential in n8n for Gmail (with Gmail API scopes).
Add your OpenAI API key in n8n credentials.
Qdrant
Stand up a Qdrant instance (self‑hosted or Qdrant Cloud).
Note your host, port, and API key (if any).
Import Workflow
In n8n, go to Workflows → Import → paste the JSON you provided.
Ensure each credential reference (Gmail & OpenAI) matches your n8n credential IDs.
Test
Click Execute Workflow or send a test email to your Gmail.
Monitor n8n logs: you should see new points in Qdrant and RAG responses.

đź“‹ Requirements
n8n** (Self-hosted or Cloud)
Gmail API** enabled on a Google Cloud project
OpenAI API** access (with Embedding & Chat endpoints)
Qdrant** (hosted or cloud) with a collection named emails_history

🎨 How to customize the workflow
Change Collection Name**
Update the qdrantCollection.value in all Qdrant nodes if you prefer a different collection.
Adjust Polling Frequency**
In the Gmail Trigger node, switch from everyMinute to everyFiveMinutes or a webhook‑style trigger.
Metadata Tags**
In Enhanced Default Data Loader, tweak the metadataValues to tag by folder, label, or sender domain.
Batch Size**
In SplitInBatches, change batchSize to suit your inbox volume.
RAG Agent Prompt**
Customize the systemMessage in the RAG Agent node to set the assistant’s tone, instruct on date handling, or add additional tools.
Additional Tools**
Chain other n8n nodes (e.g., Slack, Discord) after the RAG Agent to broadcast AI answers to team channels.

Nodes Used (9)

AI Agent
@n8n/n8n-nodes-langchain.agent
Character Text Splitter
@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter
Code
n8n-nodes-base.code
Default Data Loader
@n8n/n8n-nodes-langchain.documentDefaultDataLoader
Embeddings OpenAI
@n8n/n8n-nodes-langchain.embeddingsOpenAi
Gmail
n8n-nodes-base.gmail
OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi
Qdrant Vector Store
@n8n/n8n-nodes-langchain.vectorStoreQdrant
Simple Memory
@n8n/n8n-nodes-langchain.memoryBufferWindow