Workflow: Wait Splitout Automation

Workflow Details

Download Workflow
{
    "id": "7i2RqqCYaKHUt4n3",
    "meta": {
        "instanceId": "fb924c73af8f703905bc09c9ee8076f48c17b596ed05b18c0ff86915ef8a7c4a"
    },
    "name": "Google Site Index - sitemap.xml example",
    "tags": [],
    "nodes": [
        {
            "id": "4da50fbf-7707-42ea-badc-6748c4ee30db",
            "name": "When clicking \"Test workflow\"",
            "type": "n8n-nodes-base.manualTrigger",
            "position": [
                -927,
                472
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "id": "9e5bd6c8-a056-462b-b746-60d86bfbe398",
            "name": "Split Out",
            "type": "n8n-nodes-base.splitOut",
            "position": [
                480,
                360
            ],
            "parameters": {
                "options": [],
                "fieldToSplitOut": "urlset.url"
            },
            "typeVersion": 1
        },
        {
            "id": "0d4acf98-31c5-4a0d-bb29-c1d045c0705c",
            "name": "Check status",
            "type": "n8n-nodes-base.httpRequest",
            "onError": "continueErrorOutput",
            "position": [
                1540,
                400
            ],
            "parameters": {
                "url": "=https:\/\/indexing.googleapis.com\/v3\/urlNotifications\/metadata?url={{ encodeURIComponent($json.loc) }}",
                "options": {
                    "response": {
                        "response": {
                            "fullResponse": true
                        }
                    }
                },
                "authentication": "predefinedCredentialType",
                "nodeCredentialType": "googleOAuth2Api"
            },
            "credentials": {
                "googleOAuth2Api": {
                    "id": "K8Cz9Dy3TR68udv2",
                    "name": "Google account"
                }
            },
            "retryOnFail": false,
            "typeVersion": 4.0999999999999996447286321199499070644378662109375
        },
        {
            "id": "eee0eba6-3aa3-4841-9d48-8407db1212e2",
            "name": "Loop Over Items",
            "type": "n8n-nodes-base.splitInBatches",
            "position": [
                1340,
                360
            ],
            "parameters": {
                "options": []
            },
            "typeVersion": 3
        },
        {
            "id": "47745d33-8358-45a8-a67d-60f9f0574bae",
            "name": "Wait",
            "type": "n8n-nodes-base.wait",
            "position": [
                2080,
                400
            ],
            "webhookId": "44364241-e54b-4b44-aaa1-0d8121a7f497",
            "parameters": {
                "unit": "seconds",
                "amount": "={{ Math.min(1.5,0.3+3*Math.random()).toFixed(2) }}"
            },
            "typeVersion": 1
        },
        {
            "id": "9f1bf72e-8ecd-4239-b96f-b77be4c86b18",
            "name": "URL Updated",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                1840,
                400
            ],
            "parameters": {
                "url": "=https:\/\/indexing.googleapis.com\/v3\/urlNotifications:publish",
                "method": "POST",
                "options": [],
                "sendBody": true,
                "authentication": "predefinedCredentialType",
                "bodyParameters": {
                    "parameters": [
                        {
                            "name": "url",
                            "value": "={{ $('Loop Over Items').item.json.loc }}"
                        },
                        {
                            "name": "type",
                            "value": "URL_UPDATED"
                        }
                    ]
                },
                "nodeCredentialType": "googleOAuth2Api"
            },
            "credentials": {
                "googleOAuth2Api": {
                    "id": "K8Cz9Dy3TR68udv2",
                    "name": "Google account"
                }
            },
            "typeVersion": 4.0999999999999996447286321199499070644378662109375
        },
        {
            "id": "629eaf34-ef3c-4e9c-9537-69a03310dd9c",
            "name": "Schedule Trigger",
            "type": "n8n-nodes-base.scheduleTrigger",
            "position": [
                -927,
                272
            ],
            "parameters": {
                "rule": {
                    "interval": [
                        {
                            "triggerAtHour": 2,
                            "triggerAtMinute": 5
                        }
                    ]
                }
            },
            "typeVersion": 1.100000000000000088817841970012523233890533447265625
        },
        {
            "id": "2f95065c-fdc9-4773-87b0-37007ae4f9a5",
            "name": "Sticky Note1",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -87,
                192
            ],
            "parameters": {
                "width": 851.347581694938298824126832187175750732421875,
                "height": 340.3962703962706655147485435009002685546875,
                "content": "## Collect list of URLs\n\nThis part extracts all pages from all sitemaps and sorts by the last modified date `lastmod` (from newest to oldest)"
            },
            "typeVersion": 1
        },
        {
            "id": "33798da1-4fd3-43dc-9ff4-753bae798535",
            "name": "is new?",
            "type": "n8n-nodes-base.if",
            "position": [
                1700,
                280
            ],
            "parameters": {
                "options": {
                    "looseTypeValidation": true
                },
                "conditions": {
                    "options": {
                        "leftValue": "",
                        "caseSensitive": true,
                        "typeValidation": "loose"
                    },
                    "combinator": "and",
                    "conditions": [
                        {
                            "id": "c8566fc4-57cf-4272-841e-014bb354a37d",
                            "operator": {
                                "type": "dateTime",
                                "operation": "after"
                            },
                            "leftValue": "={{ $('Loop Over Items').item.json.lastmod }}",
                            "rightValue": "={{ $json.body.latestUpdate.notifyTime }}"
                        }
                    ]
                }
            },
            "typeVersion": 2
        },
        {
            "id": "b5d538ec-d7bc-40ac-9b9e-e5ead9378387",
            "name": "Sticky Note2",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                1500,
                121.0778293875890767594682984054088592529296875
            ],
            "parameters": {
                "width": 504.24242424242407878409721888601779937744140625,
                "height": 431.108991807248685290687717497348785400390625,
                "content": "## Check URL metadata and update, if:\n* Google returns error (404 error means that this URL was not previously added)\n* Date of article update is after the date of last request to re-index"
            },
            "typeVersion": 1
        },
        {
            "id": "2cc0b088-b09f-4dc2-8027-9e0ff442576b",
            "name": "Sticky Note3",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -640,
                196.43355932203388647394604049623012542724609375
            ],
            "parameters": {
                "width": 515.8058994999984179230523295700550079345703125,
                "height": 335.7225988700564585087704472243785858154296875,
                "content": "## Get sitemap.xml\nVarious CMS systems often have multiple sitemaps for different content (posts, tags, pages etc). Need to fetch all sitemaps first and then extract all pages from all sitemaps.\n### Remember to update the real sitemap URL!"
            },
            "typeVersion": 1
        },
        {
            "id": "d8dc3b65-0d47-49a7-9042-33dbc5a2e245",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -662.5490981963930607889778912067413330078125,
                120.20983050847479489675606600940227508544921875
            ],
            "parameters": {
                "color": 6,
                "width": 1458.468937875752089894376695156097412109375,
                "height": 453.32924764783712134885718114674091339111328125,
                "content": "## Feel free to adapt this part depending on your website CMS\n"
            },
            "typeVersion": 1
        },
        {
            "id": "a763f582-500c-4cc8-b780-672ebc3d0845",
            "name": "Get content-specific sitemaps",
            "type": "n8n-nodes-base.splitOut",
            "position": [
                -260,
                360
            ],
            "parameters": {
                "options": [],
                "fieldToSplitOut": "sitemapindex.sitemap"
            },
            "typeVersion": 1
        },
        {
            "id": "e7aa9728-eb9b-454d-a710-561d76841d7a",
            "name": "Convert sitemap to JSON",
            "type": "n8n-nodes-base.xml",
            "position": [
                -440,
                360
            ],
            "parameters": {
                "options": []
            },
            "typeVersion": 1
        },
        {
            "id": "496366d7-0d4e-401c-a375-8ca8882e8a32",
            "name": "Force urlset.url to array",
            "type": "n8n-nodes-base.set",
            "position": [
                320,
                360
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "8d16114b-1d1a-4522-a550-6c799a44538a",
                            "name": "=urlset.url",
                            "type": "array",
                            "value": "={{ $json.urlset.url[0] ? $json.urlset.url : [$json.urlset.url] }}"
                        }
                    ]
                }
            },
            "typeVersion": 3.29999999999999982236431605997495353221893310546875
        },
        {
            "id": "3a8e00a6-2fa4-4903-943d-890e0078181e",
            "name": "Sticky Note4",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                820,
                120
            ],
            "parameters": {
                "color": 3,
                "width": 459.2224448897796946766902692615985870361328125,
                "height": 451.3971298529262412557727657258510589599609375,
                "content": "## Update the `lastmod` and `loc` fields\nThese are pre-defined fields according to [the XML schema for the Sitemap protocol](https:\/\/www.sitemaps.org\/protocol.html).\n\nIf your CMS system has different field names, please rename them here:\n* the last modified field `lastmod`\n* URL of the page in `loc` field"
            },
            "typeVersion": 1
        },
        {
            "id": "9d841026-ede6-4396-a67b-e1787ffe9a17",
            "name": "Assign mandatiry sitemap fields",
            "type": "n8n-nodes-base.set",
            "position": [
                1000,
                360
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "bb0e1337-6fda-4a22-9963-d0b1271fc2a6",
                            "name": "lastmod",
                            "type": "string",
                            "value": "={{ $json.lastmod }}"
                        },
                        {
                            "id": "e7517c23-f989-4d75-9078-d82c75e51c65",
                            "name": "loc",
                            "type": "string",
                            "value": "={{ $json.loc }}"
                        }
                    ]
                }
            },
            "typeVersion": 3.29999999999999982236431605997495353221893310546875
        },
        {
            "id": "99787654-f554-4650-afc0-c4fa65392c2b",
            "name": "convert page data to JSON",
            "type": "n8n-nodes-base.xml",
            "position": [
                120,
                360
            ],
            "parameters": {
                "options": {
                    "explicitArray": false
                }
            },
            "typeVersion": 1
        },
        {
            "id": "f5cc1725-955c-4eb2-a66f-93153ebf35d1",
            "name": "Get sitemap.xml",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                -620,
                360
            ],
            "parameters": {
                "url": "https:\/\/wordpress.org\/sitemap.xml",
                "options": []
            },
            "typeVersion": 4.0999999999999996447286321199499070644378662109375
        },
        {
            "id": "789076f0-4aa1-469b-afac-af717c0b03c3",
            "name": "Get content of each sitemap",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                -60,
                360
            ],
            "parameters": {
                "url": "={{ $json.loc }}",
                "options": {
                    "batching": {
                        "batch": {
                            "batchSize": 1,
                            "batchInterval": 150
                        }
                    }
                }
            },
            "typeVersion": 4.0999999999999996447286321199499070644378662109375
        },
        {
            "id": "b0bdc6d6-1306-4c0c-bec2-7e59d587db69",
            "name": "Sort",
            "type": "n8n-nodes-base.sort",
            "position": [
                640,
                360
            ],
            "parameters": {
                "options": [],
                "sortFieldsUi": {
                    "sortField": [
                        {
                            "order": "descending",
                            "fieldName": "lastmod"
                        }
                    ]
                }
            },
            "typeVersion": 1
        }
    ],
    "active": false,
    "pinData": [],
    "settings": {
        "callerPolicy": "workflowsFromSameOwner",
        "errorWorkflow": "6",
        "executionOrder": "v1",
        "saveManualExecutions": true,
        "saveDataSuccessExecution": "all"
    },
    "versionId": "5c21ebb6-67df-4bde-9aea-6cc9a7621fc0",
    "connections": {
        "Sort": {
            "main": [
                [
                    {
                        "node": "Assign mandatiry sitemap fields",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Wait": {
            "main": [
                [
                    {
                        "node": "Loop Over Items",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "is new?": {
            "main": [
                [
                    {
                        "node": "URL Updated",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "Wait",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Split Out": {
            "main": [
                [
                    {
                        "node": "Sort",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "URL Updated": {
            "main": [
                [
                    {
                        "node": "Wait",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Check status": {
            "main": [
                [
                    {
                        "node": "is new?",
                        "type": "main",
                        "index": 0
                    }
                ],
                [
                    {
                        "node": "URL Updated",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get sitemap.xml": {
            "main": [
                [
                    {
                        "node": "Convert sitemap to JSON",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Loop Over Items": {
            "main": [
                [],
                [
                    {
                        "node": "Check status",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Schedule Trigger": {
            "main": [
                [
                    {
                        "node": "Get sitemap.xml",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Convert sitemap to JSON": {
            "main": [
                [
                    {
                        "node": "Get content-specific sitemaps",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Force urlset.url to array": {
            "main": [
                [
                    {
                        "node": "Split Out",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "convert page data to JSON": {
            "main": [
                [
                    {
                        "node": "Force urlset.url to array",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get content of each sitemap": {
            "main": [
                [
                    {
                        "node": "convert page data to JSON",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Get content-specific sitemaps": {
            "main": [
                [
                    {
                        "node": "Get content of each sitemap",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "When clicking \"Test workflow\"": {
            "main": [
                [
                    {
                        "node": "Get sitemap.xml",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Assign mandatiry sitemap fields": {
            "main": [
                [
                    {
                        "node": "Loop Over Items",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

RAG Workflow For Stock Earnings Report Analysis
View
Bannerbear Discord Automation Webhook
View
Example - Backup n8n to Nextcloud
View
Pipedrive Stickynote Create Webhook
View
Vector DB Loader from Google Drive
View
Wait Splitout Create Scheduled
View
Send Triggered
View
AI Logo Sheet Extractor to Airtable
View
AI-Driven WooCommerce Product Importer with SEO
View
Manual Discourse Automate Triggered
View