I’m working with n8n and trying to insert data into Qdrant vector database. The problem is that I can’t figure out how to assign specific IDs to my Qdrant points through the n8n interface.
From what I understand, Qdrant should replace existing points when you insert new ones with the same ID. This would be perfect for my use case since I want to avoid creating duplicate entries when I run my workflow multiple times with the same documents.
I tried putting the ID value in the metadata section, but that doesn’t seem to work as the actual point ID. The system still creates new points each time instead of updating existing ones.
Has anyone managed to configure point IDs properly in n8n’s Qdrant integration? I really need this functionality to prevent my database from filling up with duplicate documents every time my automation runs.
Same issue here. The n8n Qdrant node’s pretty limited. I fixed it using the “additional fields” section - there’s a hidden option for point ID. Hit “add field” and look for “point identifier” or just “id.” You might have to scroll down in the dropdown.
Hit this same headache building a RAG system earlier this year. What finally worked: use the Code node before your Qdrant insert to restructure your data properly. Don’t fight the native node’s limitations - preprocess everything in JavaScript so the point structure matches exactly what Qdrant wants. Set up a simple hash function from your document content or metadata for consistent IDs. MD5 of document title + creation date works great. Then pass that structured data to either the HTTP node or native Qdrant node. This gave me reliable upserts without duplicates and way better control. The preprocessing adds maybe 30 seconds to setup but saves hours debugging weird ID behavior.
Hit this exact issue yesterday. My workflow was calling the wrong qdrant endpoint - you need upsert, not insert. Qdrant has separate endpoints for each operation and n8n defaults to insert, which completely ignores existing IDs.
Had this exact problem a few months ago building a document processing pipeline. The Qdrant node in n8n doesn’t show the point ID parameter by default - super annoying for such a basic feature. I switched to the HTTP Request node instead. Just hit Qdrant’s REST API directly at /collections/{collection_name}/points with a PUT request. Structure your request body like this: {“points”: [{“id”: “your_custom_id”, “vector”: […], “payload”: {…}}]}. You’ll get full control over point IDs and Qdrant will upsert properly instead of making duplicates. Takes a bit more setup but works perfectly.
Had this exact problem last year. The point ID field is hidden in n8n’s Qdrant node - it’s tucked away under “Additional Options” instead of being front and center. Hit “Add Option” in the node settings and you’ll see “Point ID” in the list. Enable it and map your document ID straight to it. Upsert works perfectly after that - same ID overwrites the existing point instead of making duplicates. Just make sure your IDs stay consistent between runs or you’ll still get dupes. I hash the document content for the point ID to keep everything unique.
Both solutions work, but there’s a cleaner way. I’ve hit this exact problem building content management workflows.
The real issue? n8n’s native integrations suck for complex database stuff. Skip the limited node options and messy HTTP requests - I just automated the whole Qdrant pipeline with Latenode instead.
Latenode gives you direct API control without the headache. You can configure point IDs, handle upserts properly, and set up automatic deduplication. Better error handling too, plus you can chain multiple database operations.
I built a similar workflow that processes documents, generates embeddings, and manages Qdrant points with custom IDs. Takes 10 minutes to set up and handles all the edge cases that break other automation tools.