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

Crypto Webhook Automate Webhook
View
đŸ¤–Email Agent
View
Noop GoogleSheets Create Webhook
View
Prepare CSV files with GPT-4
View
Filter Slack Update Webhook
View
Webhook Slack Automation Webhook
View
Send Telegram Alerts for New WooCommerce Orders
View
Add a event to Calender
View
Customer and Sales Support
View
RAG on living data
View