Loading...
Loading...
Build n8n workflows using the Pinecone Assistant node or Pinecone Vector Store node. Use when building RAG pipelines, chat-with-docs workflows, configuring Pinecone nodes in n8n, troubleshooting Pinecone n8n nodes, or asking about best practices for Pinecone in n8n.
npx skill4agent add pinecone-io/skills pinecone-n8n@pinecone-database/n8n-nodes-pinecone-assistant@n8n/n8n-nodes-langchain.vectorStorePinecone@pinecone-database/n8n-nodes-pinecone-assistant.pineconeAssistant@pinecone-database/n8n-nodes-pinecone-assistant.pineconeAssistantToolManual Trigger → Set file URLs → Split Out → HTTP Request (download) → Pinecone Assistant (uploadFile)Chat Trigger → AI Agent ← Pinecone Assistant Tool (connected as ai_tool)
← OpenAI Chat Model (connected as ai_languageModel)namehost{"name": "your-assistant-name", "host": "https://your-assistant-host.pinecone.io"}https://<region>-data.<subdomain>.pinecone.ioadditionalFields{"sourceTag": "n8n:n8n_nodes_pinecone_assistant:pinecone_n8n_skill"}ai_toolmainpineconeApiadditionalFields.metadata.metadataValues{"key": "...", "value": "..."}externalFileId"additionalFields": {
"metadata": {"metadataValues": [{"key": "department", "value": "legal"}]}
}additionalFields.metadataFilter.metadataValues{key, value}additionalFields.advancedMetadataFilter$or$ne$in"additionalFields": {
"metadataFilter": {"metadataValues": [{"key": "department", "value": "legal"}]}
}additionalFields.multimodalFile: trueuploadFilen8n-assistantn8n-assistant-1n8n-assistant-2gpt-5-mini[ASSISTANT_NAME][ASSISTANT_HOST]https://your-assistant-host.pinecone.io[USER_FILE_URLS_ARRAY]["https://example.com/doc.pdf"][USER_MODEL]gpt-5-mini[USER_TOPIC]{
"nodes": [
{
"parameters": {
"options": {
"systemMessage": "You are a helpful assistant. Use the Pinecone Assistant Tool to retrieve data about [USER_TOPIC]. Include the file name and file url in citations wherever referenced in output."
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 2.2,
"position": [2208, 784],
"id": "e4c65881-120c-4a7c-854b-138611c8dfa3",
"name": "AI Agent"
},
{
"parameters": {
"model": {"__rl": true, "mode": "list", "value": "[USER_MODEL]"},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.2,
"position": [2144, 1008],
"id": "b3ea858d-b62d-4022-8241-8872e403839a",
"name": "OpenAI Chat Model"
},
{
"parameters": {
"content": "## 1. Upload files to Pinecone Assistant",
"height": 384,
"width": 1104,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"position": [1616, 288],
"typeVersion": 1,
"id": "9cfcdb71-2986-47a3-8f03-250fcab1048d",
"name": "Sticky Note1"
},
{
"parameters": {
"content": "## 2. Chat with your docs",
"height": 512,
"width": 1104,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"position": [1616, 688],
"typeVersion": 1,
"id": "d7f2f4b8-2e45-4902-8949-202b8b2c699b",
"name": "Sticky Note2"
},
{
"parameters": {"options": {}},
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"typeVersion": 1.3,
"position": [1840, 784],
"id": "4d2a6aa1-ca4d-4165-a635-7ef53084636b",
"name": "Chat input",
"webhookId": "4672d1f8-d2bb-4059-8761-7aa5792814c0"
},
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [1760, 432],
"id": "3e9529b4-d0ae-4ea8-9d27-c96e7cbd6ad9",
"name": "When clicking 'Execute workflow'"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "d0e724df-685f-4661-b2ec-3cdd3c2ba0f1",
"name": "urls",
"value": "[USER_FILE_URLS_ARRAY]",
"type": "array"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [1920, 432],
"id": "6b409421-2270-497e-a7fd-b382d192314c",
"name": "Set file urls"
},
{
"parameters": {"fieldToSplitOut": "urls", "options": {}},
"type": "n8n-nodes-base.splitOut",
"typeVersion": 1,
"position": [2080, 432],
"id": "e73f6f2c-4d20-48cb-b132-551ff9c3dd61",
"name": "Split to list"
},
{
"parameters": {
"url": "={{ $json.urls }}",
"options": {"response": {"response": {"responseFormat": "file"}}}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [2240, 432],
"id": "a58f8e1c-943b-4a24-8746-477ed9912ad4",
"name": "Download file"
},
{
"parameters": {
"resource": "file",
"operation": "uploadFile",
"assistantData": "{\"name\":\"[ASSISTANT_NAME]\",\"host\":\"https://[ASSISTANT_HOST]\"}",
"externalFileId": "={{ $('Split to list').item.json.urls }}",
"additionalFields": {"sourceTag": "n8n:n8n_nodes_pinecone_assistant:pinecone_n8n_skill"}
},
"type": "@pinecone-database/n8n-nodes-pinecone-assistant.pineconeAssistant",
"typeVersion": 1.2,
"position": [2416, 432],
"id": "196122df-d2b2-43e4-9f8d-710aedb595a6",
"name": "Upload file to Assistant"
},
{
"parameters": {
"assistantData": "{\"name\":\"[ASSISTANT_NAME]\",\"host\":\"https://[ASSISTANT_HOST]\"}",
"additionalFields": {"sourceTag": "n8n:n8n_nodes_pinecone_assistant:pinecone_n8n_skill"}
},
"type": "@pinecone-database/n8n-nodes-pinecone-assistant.pineconeAssistantTool",
"typeVersion": 1.2,
"position": [2368, 992],
"id": "c3ba53e9-511d-47e7-b7fb-38bb093d279f",
"name": "Get context from Assistant"
}
],
"connections": {
"OpenAI Chat Model": {
"ai_languageModel": [[{"node": "AI Agent", "type": "ai_languageModel", "index": 0}]]
},
"Chat input": {
"main": [[{"node": "AI Agent", "type": "main", "index": 0}]]
},
"When clicking 'Execute workflow'": {
"main": [[{"node": "Set file urls", "type": "main", "index": 0}]]
},
"Set file urls": {
"main": [[{"node": "Split to list", "type": "main", "index": 0}]]
},
"Split to list": {
"main": [[{"node": "Download file", "type": "main", "index": 0}]]
},
"Download file": {
"main": [[{"node": "Upload file to Assistant", "type": "main", "index": 0}]]
},
"Get context from Assistant": {
"ai_tool": [[{"node": "AI Agent", "type": "ai_tool", "index": 0}]]
}
},
"pinData": {},
"meta": {"templateCredsSetupCompleted": false}
}| Scenario | Operation to use |
|---|---|
| File is guaranteed to be new (never ingested before) | |
| File may already exist in the assistant (re-ingestion, scheduled refresh) | |
updateFileexternalFileIduploadFileupdateFileupdateFileuploadFileassistantDataexternalFileIdinputDataFieldNameadditionalFieldsmetadatamultimodalFilesourceTag{
"parameters": {
"resource": "file",
"operation": "updateFile",
"assistantData": "{\"name\":\"[ASSISTANT_NAME]\",\"host\":\"https://[ASSISTANT_HOST]\"}",
"externalFileId": "={{ $('Split to list').item.json.urls }}",
"additionalFields": {"sourceTag": "n8n:n8n_nodes_pinecone_assistant:pinecone_n8n_skill"}
},
"type": "@pinecone-database/n8n-nodes-pinecone-assistant.pineconeAssistant",
"typeVersion": 1.2
}resource: "file", operation: "listFiles"{
"parameters": {
"resource": "file",
"operation": "listFiles",
"assistantData": "{\"name\":\"[ASSISTANT_NAME]\",\"host\":\"https://[ASSISTANT_HOST]\"}",
"additionalFields": {
"sourceTag": "n8n:n8n_nodes_pinecone_assistant:pinecone_n8n_skill",
"metadataFilter": {
"metadataValues": [{"key": "department", "value": "legal"}]
}
}
},
"type": "@pinecone-database/n8n-nodes-pinecone-assistant.pineconeAssistant",
"typeVersion": 1.2
}advancedMetadataFiltermetadataFilter"additionalFields": {
"advancedMetadataFilter": "{\"department\": {\"$in\": [\"legal\", \"finance\"]}}"
}resource: "contextSnippet", operation: "getContextSnippets"{
"parameters": {
"resource": "contextSnippet",
"operation": "getContextSnippets",
"assistantData": "{\"name\":\"[ASSISTANT_NAME]\",\"host\":\"https://[ASSISTANT_HOST]\"}",
"query": "={{ $json.chatInput }}",
"additionalFields": {
"sourceTag": "n8n:n8n_nodes_pinecone_assistant:pinecone_n8n_skill",
"includeMultimodalContext": true,
"includeBinaryContent": true,
"topK": 16,
"snippetSize": 2048
}
},
"type": "@pinecone-database/n8n-nodes-pinecone-assistant.pineconeAssistant",
"typeVersion": 1.2
}metadataFilteradvancedMetadataFiltergetContextSnippetsincludeBinaryContentincludeMultimodalContexttrue@n8n/n8n-nodes-langchain.vectorStorePineconevectorStorePineconeManual Trigger → Set file URLs → Split Out → HTTP Request (download)
→ Pinecone Vector Store (insert mode)
↑ Default Data Loader ← Recursive Character Text Splitter
↑ Embeddings OpenAIChat Trigger → AI Agent ← Pinecone Vector Store (retrieve-as-tool mode)
↑ Embeddings OpenAI (same model as insert)
← OpenAI Chat ModelvectorStorePineconeinsertretrieve-as-toolai_embedding@n8n/n8n-nodes-langchain.embeddingsOpenAi@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter@n8n/n8n-nodes-langchain.documentDefaultDataLoaderdataType: binarytextSplittingMode: customexternal_file_url={{ $json.urls }}pineconeApipineconeIndexn8n-indexn8n-index-1n8n-index-2gpt-5-minitext-embedding-3-small[INDEX_NAME][USER_FILE_URLS_ARRAY]["https://example.com/doc.pdf"][USER_MODEL]gpt-5-mini[USER_TOPIC][USER_TOOL_DESCRIPTION]{
"nodes": [
{
"parameters": {
"mode": "insert",
"pineconeIndex": {
"__rl": true,
"value": "[INDEX_NAME]",
"mode": "list",
"cachedResultName": "[INDEX_NAME]"
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
"typeVersion": 1.3,
"position": [224, 0],
"id": "163c0a37-427c-4da7-a194-203ac216c88e",
"name": "Pinecone Vector Store"
},
{
"parameters": {
"options": {"dimensions": 1536}
},
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"typeVersion": 1.2,
"position": [336, 608],
"id": "a034bcb9-d813-4fd0-a68a-426c1f2b2aba",
"name": "Embeddings OpenAI"
},
{
"parameters": {"options": {}},
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"typeVersion": 1.3,
"position": [-512, 896],
"id": "56182cf7-2bda-4513-a2f9-18fb70c718ec",
"name": "When chat message received",
"webhookId": "30328376-a9e3-4f11-b1eb-2bbaadbea688"
},
{
"parameters": {
"options": {
"systemMessage": "You are a helpful assistant. Only use the Pinecone Vector Store Tool to retrieve data about [USER_TOPIC]. Include the file name and file url in citations wherever referenced in output."
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 2.2,
"position": [-336, 896],
"id": "36bb8361-edfd-47ff-aaf1-48f3c31fb1f7",
"name": "AI Agent"
},
{
"parameters": {
"model": {
"__rl": true,
"value": "[USER_MODEL]",
"mode": "list",
"cachedResultName": "[USER_MODEL]"
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.2,
"position": [-336, 1200],
"id": "22d00f25-44eb-40c1-8dae-b757e4b66690",
"name": "OpenAI Chat Model"
},
{
"parameters": {
"mode": "retrieve-as-tool",
"toolDescription": "[USER_TOOL_DESCRIPTION]",
"pineconeIndex": {
"__rl": true,
"value": "[INDEX_NAME]",
"mode": "list",
"cachedResultName": "[INDEX_NAME]"
},
"topK": 20,
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
"typeVersion": 1.3,
"position": [-16, 1104],
"id": "15c599b7-93bb-44b7-b95c-190200de2a20",
"name": "Pinecone Vector Store Tool"
},
{
"parameters": {
"content": "## 1. Process new files, embed, and upsert to Pinecone index",
"height": 576,
"width": 1744,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"position": [-608, -80],
"typeVersion": 1,
"id": "18f22d77-fb10-4fa7-b942-2fafd7ca30c3",
"name": "Sticky Note"
},
{
"parameters": {
"content": "## 2. Chat with your docs",
"height": 640,
"width": 1744,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"position": [-608, 784],
"typeVersion": 1,
"id": "7b7be380-821c-4012-8f1a-1606527d2544",
"name": "Sticky Note1"
},
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [-512, 0],
"id": "a0a3b917-765b-445e-9866-d3fc651ef6a8",
"name": "When clicking 'Execute workflow'"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "d0e724df-685f-4661-b2ec-3cdd3c2ba0f1",
"name": "urls",
"value": "[USER_FILE_URLS_ARRAY]",
"type": "array"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [-352, 0],
"id": "651439de-5525-4d0a-b055-1d722e81c0aa",
"name": "Set file urls"
},
{
"parameters": {"fieldToSplitOut": "urls", "options": {}},
"type": "n8n-nodes-base.splitOut",
"typeVersion": 1,
"position": [-192, 0],
"id": "8878265e-9e6f-4d9a-b533-53100205eb38",
"name": "Split to list"
},
{
"parameters": {
"chunkSize": 3000,
"chunkOverlap": 500,
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
"typeVersion": 1,
"position": [416, 352],
"id": "347ba65b-9fad-4b92-a90f-6690df8e2a7e",
"name": "Recursive Character Text Splitter"
},
{
"parameters": {
"url": "={{ $json.urls }}",
"options": {"response": {"response": {"responseFormat": "file"}}}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [-32, 0],
"id": "edf963af-18ee-4605-9b1e-49118c56b52d",
"name": "Download file"
},
{
"parameters": {
"dataType": "binary",
"textSplittingMode": "custom",
"options": {
"metadata": {
"metadataValues": [
{"name": "external_file_url", "value": "={{ $json.urls }}"}
]
}
}
},
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"typeVersion": 1.1,
"position": [336, 192],
"id": "e9b99301-3af1-4d19-ab78-3fd0e8946fd1",
"name": "Default data loader"
}
],
"connections": {
"Embeddings OpenAI": {
"ai_embedding": [[
{"node": "Pinecone Vector Store", "type": "ai_embedding", "index": 0},
{"node": "Pinecone Vector Store Tool", "type": "ai_embedding", "index": 0}
]]
},
"When chat message received": {
"main": [[{"node": "AI Agent", "type": "main", "index": 0}]]
},
"OpenAI Chat Model": {
"ai_languageModel": [[{"node": "AI Agent", "type": "ai_languageModel", "index": 0}]]
},
"Pinecone Vector Store Tool": {
"ai_tool": [[{"node": "AI Agent", "type": "ai_tool", "index": 0}]]
},
"When clicking 'Execute workflow'": {
"main": [[{"node": "Set file urls", "type": "main", "index": 0}]]
},
"Set file urls": {
"main": [[{"node": "Split to list", "type": "main", "index": 0}]]
},
"Split to list": {
"main": [[{"node": "Download file", "type": "main", "index": 0}]]
},
"Recursive Character Text Splitter": {
"ai_textSplitter": [[{"node": "Default data loader", "type": "ai_textSplitter", "index": 0}]]
},
"Download file": {
"main": [[{"node": "Pinecone Vector Store", "type": "main", "index": 0}]]
},
"Default data loader": {
"ai_document": [[{"node": "Pinecone Vector Store", "type": "ai_document", "index": 0}]]
}
},
"pinData": {},
"meta": {"templateCredsSetupCompleted": false}
}| Error / Symptom | Cause | Fix |
|---|---|---|
| "Assistant not found" | | Create the assistant in the Pinecone Console first, then match the name exactly |
| "Invalid credentials" | Pinecone API key not set or wrong credential on the node | Re-select the |
| "Dimension mismatch" | Embedding model dimensions don't match the index | Index and embeddings node must use the same dimensions (e.g., 1536 for text-embedding-3-small) |
| Tool never called by Agent | | Make the description specific: what data is in the store, what questions it can answer |
| No results returned | Ingestion didn't run, or topK too low | Run Phase 1 first; try increasing topK to 20+ |
| HTTP node calling Pinecone API | Wrong pattern | Replace with |
assistantDatanamehostsourceTagadditionalFieldsexternal_file_urllistFilesgetContextSnippetsmultimodalFile: trueuploadFileincludeMultimodalContext: trueincludeBinaryContent: truegetContextSnippets