{
  "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
          }
        ]
      ]
    }
  }
}