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

Daylight Saving Time Notification
View
🎦🚀 YouTube Video Comment Analysis Agent
View
Turn on a light and set its brightness
View
Gmail Movebinarydata Send
View
Build an OpenAI Assistant with Google Drive Integration
View
Transform Image to Lego Style Using Line and Dall-E
View
Publish Videos & Images - Blotato
View
GoogleSheets Webhook Automate Webhook
View
HN Who is Hiring Scrape
View
AI-Driven WooCommerce Product Importer with SEO
View