{"id":"As8TxF3PjyXygc0o","meta":{"instanceId":"workflow-729f2d51","versionId":"1.0.0","createdAt":"2025-09-29T07:07:43.196593","updatedAt":"2025-09-29T07:07:43.196603","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"name":"🧹 Archive (delete) duplicate items from a Notion database","nodes":[{"id":"b758ce01-7f5e-4bdc-a4c3-6c00d6bc022a","name":"Every day","type":"n8n-nodes-base.scheduleTrigger","position":[-180,660],"parameters":{"rule":{"interval":[{}]}},"typeVersion":1.2,"notes":"This scheduleTrigger node performs automated tasks as part of the workflow."},{"id":"1ca45ba5-4635-4710-9807-26f22d535059","name":"Get pages from database","type":"n8n-nodes-base.notion","position":[60,560],"parameters":{"options":{},"resource":"databasePage","operation":"getAll","returnAll":true,"databaseId":{"__rl":true,"mode":"list","value":""}},"typeVersion":2.2,"notes":"This notion node performs automated tasks as part of the workflow."},{"id":"ef8c8cfa-12fb-4fb9-8552-09f69f1f358d","name":"Aggregate all items","type":"n8n-nodes-base.aggregate","position":[500,560],"parameters":{"options":{},"aggregate":"aggregateAllItemData","destinationFieldName":"pages"},"typeVersion":1,"notes":"This aggregate node performs automated tasks as part of the workflow."},{"id":"f1c3c0ad-f904-4d63-a131-0b045a21ce04","name":"Format items properly","type":"n8n-nodes-base.set","position":[280,560],"parameters":{"options":{},"assignments":{"assignments":[{"id":"309a1e9b-f3e9-41a0-aadb-aa74bc993fe9","name":"id","type":"string","value":"={{ $json.id }}"},{"id":"ad6e8fa9-9872-456d-971f-3cef940b7d8a","name":"property_to_check","type":"string","value":"=\"SET YOUR PROPERTY HERE\""}]}},"typeVersion":3.4,"notes":"This set node performs automated tasks as part of the workflow."},{"id":"5d39d3b7-604d-4aca-bf9a-3bb09bddad66","name":"Filter duplicates","type":"n8n-nodes-base.code","position":[720,560],"parameters":{"jsCode":"const inputData = $input.first().json.pages;\n\nconst seen = new Set();\nconst duplicates = new Map();\n\ninputData.forEach(item => {\n  const propertyValue = item.property_to_check;\n  if (seen.has(propertyValue)) {\n    duplicates.set(propertyValue, item);\n  } else {\n    seen.add(propertyValue);\n  }\n});\n\nconst output = Array.from(duplicates.values()).map(item => ({ json: item }));\n\nreturn output;"},"typeVersion":2,"notes":"This code node performs automated tasks as part of the workflow."},{"id":"55a8f0eb-702b-4056-a28c-96a7ade7c2cd","name":"Archive pages","type":"n8n-nodes-base.notion","position":[920,560],"parameters":{"pageId":{"__rl":true,"mode":"id","value":"={{ $json.id }}"},"operation":"archive"},"typeVersion":2.2,"notes":"This notion node performs automated tasks as part of the workflow."},{"id":"2c9655ea-401c-410b-a4b1-b001ae6dbe4b","name":"When a page is added to the database","type":"n8n-nodes-base.notionTrigger","position":[-180,460],"parameters":{"pollTimes":{"item":[{"mode":"everyMinute"}]},"databaseId":{"__rl":true,"mode":"list","value":""}},"typeVersion":1,"notes":"This notionTrigger node performs automated tasks as part of the workflow."},{"id":"672b647c-d009-45c3-b69e-6dfe85992e15","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[0,0],"parameters":{"width":860,"height":460,"content":"## 🧹 Archive (delete) extra duplicate items from Notion database\n### ABOUT THIS WORKFLOW\nThis n8n workflow automatically gets duplicate database pages based on a property and \"archives\" them (equivalent to deleting them), leaving just one copy.\n\n### SETUP\n1. Create a Notion credential.\n2. Add it to the Notion nodes, selecting the appropriate database.\n3. In the \"Set\" node (\"Format items properly\"), specify a reference to the property you want to check for duplicates and assign it to the field \"property_to_check\". I recommend using the n8n property drag-and-drop feature.\n4. Enjoy!\n\n### ABOUT THE TRIGGERS\nThis workflow offers two possible triggers by default:\n- Run every time a page is added to the database.\n- Run every day.\n\n\nYou can enable, disable, or modify these triggers as you like."},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"83881bd3-60e3-40be-a469-0b7acb21d2be","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-240,400],"parameters":{"color":5,"width":220,"height":420,"content":"## TRIGGERS"},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"cd4b8717-19ae-42d6-ac87-bbdd071dd774","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[0,480],"parameters":{"color":6,"width":860,"height":340,"content":"## GET DUPLICATE PAGES"},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"087fb844-2241-4ed9-976d-9bdc7ccd8aa5","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[880,400],"parameters":{"color":3,"width":180,"height":420,"content":"## ARCHIVE (DELETE)"},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"error-1f4fd762","name":"Error Handler","type":"n8n-nodes-base.stopAndError","typeVersion":1,"position":[1000,400],"parameters":{"message":"Workflow execution error","options":{}}}],"active":false,"settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3,"retryDelay":1000},"versionId":"fdd2e5ad-4ff5-4432-a5f9-ebbeb1a1a6cb","connections":{},"description":"Automated workflow: 🧹 Archive (delete) duplicate items from a Notion database. This workflow integrates 7 different services: notionTrigger, stickyNote, code, scheduleTrigger, set. It contains 11 nodes and follows best practices for error handling and security.","notes":"Excellent quality workflow: 🧹 Archive (delete) duplicate items from a Notion database. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}