Workflow: Code Schedule Export

Workflow Details

Download Workflow
{
    "id": "As8TxF3PjyXygc0o",
    "meta": {
        "instanceId": "a059b3dfdab56aa587cc6a2c8635f6f2700cf0c7064dbfb5981c26f7ad9eab88"
    },
    "name": "\ud83e\uddf9 Archive (delete) duplicate items from a Notion database",
    "tags": [],
    "nodes": [
        {
            "id": "b758ce01-7f5e-4bdc-a4c3-6c00d6bc022a",
            "name": "Every day",
            "type": "n8n-nodes-base.scheduleTrigger",
            "position": [
                -180,
                660
            ],
            "parameters": {
                "rule": {
                    "interval": [
                        []
                    ]
                }
            },
            "typeVersion": 1.1999999999999999555910790149937383830547332763671875
        },
        {
            "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.20000000000000017763568394002504646778106689453125
        },
        {
            "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
        },
        {
            "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.399999999999999911182158029987476766109466552734375
        },
        {
            "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
        },
        {
            "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.20000000000000017763568394002504646778106689453125
        },
        {
            "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
        },
        {
            "id": "672b647c-d009-45c3-b69e-6dfe85992e15",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                0,
                0
            ],
            "parameters": {
                "width": 860,
                "height": 460,
                "content": "## \ud83e\uddf9 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
        },
        {
            "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
        },
        {
            "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
        },
        {
            "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
        }
    ],
    "active": false,
    "pinData": [],
    "settings": {
        "executionOrder": "v1"
    },
    "versionId": "fdd2e5ad-4ff5-4432-a5f9-ebbeb1a1a6cb",
    "connections": {
        "Every day": {
            "main": [
                [
                    {
                        "node": "Get pages from database",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Filter duplicates": {
            "main": [
                [
                    {
                        "node": "Archive pages",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Aggregate all items": {
            "main": [
                [
                    {
                        "node": "Filter duplicates",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Format items properly": {
            "main": [
                [
                    {
                        "node": "Aggregate all items",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get pages from database": {
            "main": [
                [
                    {
                        "node": "Format items properly",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "When a page is added to the database": {
            "main": [
                [
                    {
                        "node": "Get pages from database",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Get a pipeline in CircleCI
View
Wait Splitout Process Webhook
View
Realtime Notion Todoist 2-way Sync Template
View
Spotify Sync Liked Songs to Playlist
View
Build an MCP Server with Google Calendar
View
Code Schedule Update Scheduled
View
Gmailtool Splitout Automation Webhook
View
Noop Gmail Create Triggered
View
Trello Googlecloudnaturallanguage Create Triggered
View
Openai Form Create Webhook
View