{"meta":{"instanceId":"workflow-75b29c8f","versionId":"1.0.0","createdAt":"2025-09-29T07:07:55.411523","updatedAt":"2025-09-29T07:07:55.411538","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"nodes":[{"id":"0788a3db-20c3-43b6-956a-394f688f7763","name":"When clicking \"Execute Workflow\"","type":"n8n-nodes-base.manualTrigger","position":[360,440],"parameters":{},"typeVersion":1,"notes":"This manualTrigger node performs automated tasks as part of the workflow."},{"id":"51460fab-a53c-46cd-a484-d2c038cd102d","name":"Schedule Trigger","type":"n8n-nodes-base.scheduleTrigger","position":[360,600],"parameters":{"rule":{"interval":[{"triggerAtHour":1}]}},"typeVersion":1,"notes":"This scheduleTrigger node performs automated tasks as part of the workflow."},{"id":"5326416c-5715-4cc7-acfd-38a32f864bfb","name":"loop","type":"n8n-nodes-base.splitInBatches","position":[1360,600],"parameters":{"options":{},"batchSize":1},"typeVersion":2,"notes":"This splitInBatches node performs automated tasks as part of the workflow."},{"id":"fb0ca9f7-ff49-4a4b-9575-42b80594737e","name":"sitemap_set","type":"n8n-nodes-base.httpRequest","position":[540,600],"parameters":{"url":"{{ $env.WEBHOOK_URL }}","options":{}},"typeVersion":4.1,"notes":"This httpRequest node performs automated tasks as part of the workflow."},{"id":"150b47fe-f1c8-4dcb-b187-b459ee50c316","name":"sitemap_convert","type":"n8n-nodes-base.xml","position":[700,600],"parameters":{"options":{"trim":true,"normalize":true,"mergeAttrs":true,"ignoreAttrs":true,"normalizeTags":true}},"typeVersion":1,"notes":"This xml node performs automated tasks as part of the workflow."},{"id":"83cd19d6-81e7-46af-83a3-090cdd66b420","name":"sitemap_parse","type":"n8n-nodes-base.splitOut","position":[920,600],"parameters":{"options":{"destinationFieldName":"url"},"fieldToSplitOut":"urlset.url"},"typeVersion":1,"notes":"This splitOut node performs automated tasks as part of the workflow."},{"id":"95c784d1-5756-4bf0-b2e5-e25a84c01b72","name":"url_set","type":"n8n-nodes-base.set","position":[1140,600],"parameters":{"values":{"string":[{"name":"url","value":"={{ $json.url.loc }}"}]},"options":{},"keepOnlySet":true},"typeVersion":2,"notes":"This set node performs automated tasks as part of the workflow."},{"id":"43b62667-a37e-4bd1-bbb9-7a20a0914c97","name":"url_index","type":"n8n-nodes-base.httpRequest","position":[1560,580],"parameters":{"url":"{{ $env.API_BASE_URL }}","method":"POST","options":{},"sendBody":true,"authentication":"{{ $credentials.predefinedCredentialType }}","bodyParameters":{"parameters":[{"name":"url","value":"={{ $json.url }}"},{"name":"type","value":"URL_UPDATED"}]},"nodeCredentialType":"YOUR_CREDENTIAL_HERE"},"credentials":{"googleApi":{"id":"RywvL8c7V2ZtBvdK","name":"850737154850-compute@developer.gserviceaccount.com"}},"typeVersion":4,"continueOnFail":true,"alwaysOutputData":true,"notes":"This httpRequest node performs automated tasks as part of the workflow."},{"id":"39ae8c01-64e4-44f5-be43-d5c402b00739","name":"index_check","type":"n8n-nodes-base.if","position":[1780,580],"parameters":{"conditions":{"string":[{"value1":"={{ $json.urlNotificationMetadata.latestUpdate.type }}","value2":"URL_UPDATED"}]}},"typeVersion":1,"notes":"This if node performs automated tasks as part of the workflow."},{"id":"c4bf483b-af4b-451e-974b-d4abeb2c70f6","name":"wait","type":"n8n-nodes-base.wait","position":[2040,560],"webhookId":"b0df1fe8-e509-4d0c-a486-f523226621e2","parameters":{"unit":"seconds","amount":2},"typeVersion":1,"notes":"This wait node performs automated tasks as part of the workflow."},{"id":"455955a8-c767-453b-805c-77c5b7d2e9bc","name":"Stop and Error","type":"n8n-nodes-base.stopAndError","position":[2040,840],"parameters":{"errorMessage":"You have reached the Google Indexing API limit (200/day by default)"},"typeVersion":1,"notes":"This stopAndError node performs automated tasks as part of the workflow."},{"id":"275abdd5-be5d-458f-bc75-d9f72824c49f","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[340,180],"parameters":{"width":482.7089688834655,"height":221.39109212934721,"content":"## Simple indexing workflow using the Google Indexing API\n\nThis workflow is the simplest indexing workflow. It simply extracts a sitemap, converts it to a JSON, and loops through each URL. It will output an error if your quota is reached.\n\n*Joachim*"},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."}],"connections":{"sitemap_set":{"main":[[],[],[],[],[],[],[],[]]},"url_index":{"main":[[],[],[],[],[],[],[],[]]}},"name":"Manualtrigger Workflow","settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3,"retryDelay":1000},"description":"Automated workflow: Manualtrigger Workflow. This workflow integrates 11 different services: stickyNote, httpRequest, wait, scheduleTrigger, splitOut. It contains 14 nodes and follows best practices for error handling and security.","notes":"Excellent quality workflow: Manualtrigger Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}