Workflow: Splitinbatches Notion Export

Workflow Details

Download Workflow
{
    "id": 115,
    "name": "Archive empty pages in Notion Database",
    "nodes": [
        {
            "name": "Get All Databases",
            "type": "n8n-nodes-base.notion",
            "position": [
                240,
                300
            ],
            "parameters": {
                "resource": "database",
                "operation": "getAll",
                "returnAll": true
            },
            "credentials": {
                "notionApi": {
                    "id": "36",
                    "name": "Notion account"
                }
            },
            "typeVersion": 2
        },
        {
            "name": "Get All Database Pages",
            "type": "n8n-nodes-base.notion",
            "position": [
                420,
                300
            ],
            "parameters": {
                "simple": false,
                "options": [],
                "resource": "databasePage",
                "operation": "getAll",
                "returnAll": true,
                "databaseId": "={{$json[\"id\"]}}"
            },
            "credentials": {
                "notionApi": {
                    "id": "36",
                    "name": "Notion account"
                }
            },
            "typeVersion": 2
        },
        {
            "name": "Get Page Blocks",
            "type": "n8n-nodes-base.notion",
            "position": [
                1180,
                280
            ],
            "parameters": {
                "blockId": "={{$json[\"id\"]}}",
                "resource": "block",
                "operation": "getAll",
                "returnAll": true
            },
            "credentials": {
                "notionApi": {
                    "id": "36",
                    "name": "Notion account"
                }
            },
            "typeVersion": 2,
            "alwaysOutputData": true
        },
        {
            "name": "Process Blocks",
            "type": "n8n-nodes-base.function",
            "position": [
                1360,
                280
            ],
            "parameters": {
                "functionCode": "let returnData = {\n  json: {\n    toDelete: false,\n    pageID: $node[\"SplitInBatches\"].json[\"id\"],\n  }\n};\n\nif (!items[0].json.id) {\n  returnData.json.toDelete = true;\n  return [returnData];\n}\n\nfor (item of items) {\n  \n  let toDelete = false;\n\n  let type = item.json.type;\n  let data = item.json[type];\n\n  if (!toDelete) {\n    if (data.text.length == 0) {\n      toDelete = true;\n    } else {\n      returnData.json.toDelete = false;\n      break;\n    }\n  }\n\n  returnData.json.toDelete = toDelete;\n}\n\nreturn [returnData];"
            },
            "typeVersion": 1
        },
        {
            "name": "SplitInBatches",
            "type": "n8n-nodes-base.splitInBatches",
            "position": [
                1000,
                280
            ],
            "parameters": {
                "options": [],
                "batchSize": 1
            },
            "typeVersion": 1
        },
        {
            "name": "Check for empty properties",
            "type": "n8n-nodes-base.function",
            "position": [
                600,
                300
            ],
            "parameters": {
                "functionCode": "for (item of items) {\n\n  let toDelete = false;\n  for (const key in item.json.properties) {\n    let type = item.json.properties[key].type;\n    let data = item.json.properties[key][type];\n    \n    if (!data || data.length == 0) {\n      toDelete = true;\n    } else {\n      toDelete = false;\n      break;\n    }\n  }\n\n  item.json.toDelete = toDelete;\n}\n\nreturn items;"
            },
            "typeVersion": 1
        },
        {
            "name": "Archive Page",
            "type": "n8n-nodes-base.notion",
            "position": [
                1760,
                260
            ],
            "parameters": {
                "pageId": "={{$json[\"pageID\"]}}",
                "operation": "archive"
            },
            "credentials": {
                "notionApi": {
                    "id": "36",
                    "name": "Notion account"
                }
            },
            "typeVersion": 2
        },
        {
            "name": "If toDelete",
            "type": "n8n-nodes-base.if",
            "position": [
                1560,
                280
            ],
            "parameters": {
                "conditions": {
                    "boolean": [
                        {
                            "value1": "={{$json[\"toDelete\"]}}",
                            "value2": true
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "name": "If Empty Properties",
            "type": "n8n-nodes-base.if",
            "position": [
                760,
                300
            ],
            "parameters": {
                "conditions": {
                    "boolean": [
                        {
                            "value1": "={{$json[\"toDelete\"]}}",
                            "value2": true
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "name": "Every day @ 2am",
            "type": "n8n-nodes-base.cron",
            "position": [
                80,
                300
            ],
            "parameters": {
                "triggerTimes": {
                    "item": [
                        {
                            "hour": 2
                        }
                    ]
                }
            },
            "typeVersion": 1
        }
    ],
    "active": false,
    "settings": [],
    "connections": {
        "If toDelete": {
            "main": [
                [
                    {
                        "node": "Archive Page",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Process Blocks": {
            "main": [
                [
                    {
                        "node": "If toDelete",
                        "type": "main",
                        "index": 0
                    },
                    {
                        "node": "SplitInBatches",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "SplitInBatches": {
            "main": [
                [
                    {
                        "node": "Get Page Blocks",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Every day @ 2am": {
            "main": [
                [
                    {
                        "node": "Get All Databases",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get Page Blocks": {
            "main": [
                [
                    {
                        "node": "Process Blocks",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get All Databases": {
            "main": [
                [
                    {
                        "node": "Get All Database Pages",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "If Empty Properties": {
            "main": [
                [
                    {
                        "node": "SplitInBatches",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get All Database Pages": {
            "main": [
                [
                    {
                        "node": "Check for empty properties",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Check for empty properties": {
            "main": [
                [
                    {
                        "node": "If Empty Properties",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Wait Slack Monitor Webhook
View
Deep Research Report Generation Using Open Router, Google Search, Webhook/Telegram and Notion
View
HTTP Respondtowebhook Import Webhook
View
HTTP Twitter Automation Scheduled
View
Code Ghost Create Triggered
View
Slack AI Chatbot with RAG for company staff
View
spy tool
View
Stickynote Executeworkflow Create Triggered
View
Automatically Update YouTube Video Descriptions with Inserted Text
View
Ask a human
View