This workflow corresponds to n8n.io template #9382 — we link there as the canonical source.
This workflow follows the Agent → OpenAI Embeddings 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 →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "113d6fd7-2850-4562-adad-d664ba8dc448",
"name": "Gmail Trigger",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
3104,
2080
],
"parameters": {
"simple": false,
"filters": {},
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "d1d4a3be-70bc-436b-a7b9-2ee00e426a55",
"name": "Gemini 2.5",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
3312,
2288
],
"parameters": {
"options": {}
},
"credentials": {
"googlePalmApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "dd551d6b-adb2-473b-8982-8ac9b3be46b3",
"name": "Gmail Reply",
"type": "n8n-nodes-base.gmail",
"position": [
3664,
2080
],
"parameters": {
"message": "={{ $json.output }}",
"options": {
"appendAttribution": false
},
"emailType": "text",
"messageId": "={{ $('Gmail Trigger').item.json.id }}",
"operation": "reply"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "32c51c6d-4ba8-45c4-b689-a7906d5a66b6",
"name": "Cohere Reranker",
"type": "@n8n/n8n-nodes-langchain.rerankerCohere",
"position": [
3744,
2448
],
"parameters": {},
"credentials": {
"cohereApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "5a55a56f-07f0-4da9-b333-be81d39c49c7",
"name": "Pinecone Retriever",
"type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
"position": [
3568,
2288
],
"parameters": {
"mode": "retrieve-as-tool",
"topK": 10,
"options": {},
"useReranker": true,
"pineconeIndex": {
"__rl": true,
"mode": "list",
"value": "agency-info",
"cachedResultName": "agency-info"
},
"toolDescription": "Info About <agency> services, owner and general FAQ"
},
"credentials": {
"pineconeApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "fd1413ab-433f-43f0-9dbf-6726c62fac44",
"name": "OpenAI Embeddings",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
3568,
2448
],
"parameters": {
"model": "text-embedding-3-large",
"options": {
"dimensions": 1024
}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "b587ef62-ec9c-4727-ac16-6e5b2862fe78",
"name": "Email Support Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
3312,
2080
],
"parameters": {
"text": "={{ $json.text }}",
"options": {
"systemMessage": "You are an email support agent for the agency. Use the pinecone tool to access its knowledge base."
},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "11ccc8a7-11fb-4bbc-8593-7d203de1614e",
"name": "Postgres Memory",
"type": "@n8n/n8n-nodes-langchain.memoryPostgresChat",
"position": [
3408,
2384
],
"parameters": {
"tableName": "email_support_agent_",
"sessionKey": "={{ $json.id }}",
"sessionIdType": "customKey"
},
"credentials": {
"postgres": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "e2482901-3f58-4adb-817d-cbd48f777f7b",
"name": "Note: Pinecone",
"type": "n8n-nodes-base.stickyNote",
"position": [
3856,
2128
],
"parameters": {
"color": 2,
"width": 350,
"height": 240,
"content": "## \ud83d\uddc4\ufe0f Node: Pinecone Retriever\n\n**Purpose:** RAG tool retrieves top 10 docs from 'agency-info' index.\n\n**Key Settings:**\n- Mode: retrieve-as-tool\n- Embeddings: OpenAI text-embedding-3-large (1024 dims)\n- Reranker: Cohere enabled\n\n**Note:** Pre-populate index with agency knowledge base."
},
"typeVersion": 1
},
{
"id": "95398a05-9d35-4913-83ab-62bb9113594b",
"name": "Note: Cohere",
"type": "n8n-nodes-base.stickyNote",
"position": [
3472,
2592
],
"parameters": {
"color": 3,
"width": 398,
"height": 244,
"content": "## \ud83d\udd04 Node: Cohere Reranker\n\n**Purpose:** Semantically reorders Pinecone results for better relevance.\n\n**Key Settings:**\n- Connected to vector store\n- Improves RAG accuracy\n\n**Note:** Uses Cohere API; monitor token usage."
},
"typeVersion": 1
},
{
"id": "f578bcf8-4019-4c0e-abe3-78dc5b85c026",
"name": "Note: Agent",
"type": "n8n-nodes-base.stickyNote",
"position": [
3088,
1792
],
"parameters": {
"color": 5,
"width": 398,
"height": 252,
"content": "## \ud83e\udd16 Node: Email Support Agent\n\n**Purpose:** AI agent processes email with tools/memory.\n\n**Key Settings:**\n- User Prompt: Email text\n- LLM: Gemini 2.5\n- Memory: Postgres per email ID\n\n**Note:** Outputs reply text for Gmail."
},
"typeVersion": 1
},
{
"id": "ab002e7f-180b-439d-a544-a9daae2d68c5",
"name": "Overview Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
2256,
1712
],
"parameters": {
"color": 4,
"width": 728,
"height": 1480,
"content": "# AI Email Support Agent with RAG & Cohere Reranking\n\n## \ud83d\udccb What This Template Does\nTriggers on new Gmail emails, uses a LangChain agent with Postgres memory to retrieve from Pinecone (RAG via OpenAI embeddings), reranks with Cohere for relevance, generates replies using Gemini 2.5, and auto-responds.\n\n## \ud83d\udd27 Prerequisites\n- n8n instance with LangChain nodes\n- Gmail, OpenAI, Cohere, Gemini, Pinecone, Postgres accounts\n\n## \ud83d\udd11 Required Credentials\n\n### Gmail OAuth2\n1. Enable Gmail API in Google Cloud\n2. Create OAuth2 credential in n8n with scopes: https://www.googleapis.com/auth/gmail.readonly, https://www.googleapis.com/auth/gmail.send\n\n### OpenAI API\n1. Get API key from platform.openai.com\n2. Add as OpenAI credential\n\n### Cohere API\n1. Sign up at cohere.com\n2. Copy API key to n8n Cohere credential\n\n### Google Gemini API\n1. Generate key at https://aistudio.google.com/\n2. Add as Google PaLM credential\n\n### Pinecone API\n1. Create index \"agency-info\" (dimension 1024)\n2. Add API key to n8n Pinecone credential\n\n### Postgres\n1. Set up database (e.g., Neon/Supabase)\n2. Add connection details to n8n Postgres credential\n\n## \u2699\ufe0f Configuration Steps\n1. Import JSON into n8n\n2. Assign all credentials\n3. Populate Pinecone with agency docs (use separate upsert workflow)\n4. Set tableName in Memory if needed\n5. Activate and test with a sample email\n\n## \ud83c\udfaf Use Cases\n- Automate agency support for FAQs/services\n- Handle client inquiries with context-aware replies\n- Scale email responses without human intervention\n\n## \u26a0\ufe0f Troubleshooting\n- No trigger: Check Gmail scopes/polling\n- Retrieval empty: Verify Pinecone index/docs/dimensions\n- Rerank fails: Ensure Cohere key valid\n- Memory issues: Confirm Postgres connection/sessionKey"
},
"typeVersion": 1
}
],
"connections": {
"Gemini 2.5": {
"ai_languageModel": [
[
{
"node": "Email Support Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Gmail Trigger": {
"main": [
[
{
"node": "Email Support Agent",
"type": "main",
"index": 0
}
]
]
},
"Cohere Reranker": {
"ai_reranker": [
[
{
"node": "Pinecone Retriever",
"type": "ai_reranker",
"index": 0
}
]
]
},
"Postgres Memory": {
"ai_memory": [
[
{
"node": "Email Support Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"OpenAI Embeddings": {
"ai_embedding": [
[
{
"node": "Pinecone Retriever",
"type": "ai_embedding",
"index": 0
}
]
]
},
"Pinecone Retriever": {
"ai_tool": [
[
{
"node": "Email Support Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Email Support Agent": {
"main": [
[
{
"node": "Gmail Reply",
"type": "main",
"index": 0
}
]
]
}
}
}
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.
cohereApigmailOAuth2googlePalmApiopenAiApipineconeApipostgres
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Transform your inbox into an intelligent support system: automatically detect new emails, retrieve relevant knowledge from Pinecone, rerank with Cohere for precision, generate contextual replies using Gemini AI, and respond—all while maintaining conversation history.
Source: https://n8n.io/workflows/9382/ — 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.
Unlock unparalleled efficiency and elevate customer satisfaction with our AI-Powered Customer Support: Email, Knowledge Base & Human Escalation Automation template. This sophisticated n8n workflow is
This workflow turns your Gmail inbox into an AI-powered customer support assistant using Google Gemini, OpenAI embeddings, and Pinecone vector search. It automatically classifies incoming emails, retr
Your AI workforce is ready. Are you?
This n8n template automatically classifies incoming emails (Sales, Support, Internal, Finance, Promotions) and routes them to a dedicated OpenAI LLM Agent for processing. Depending on the category, th
Unleash the full potential of your HighLevel CRM by adding an intelligent GPT-5 Agent that does more than just follow commands — it understands context, retrieves the right data, and executes actions