
Weekly Website Link Checker with Auto Alerts for Broken URLs
説明
Categories
🚀 DevOps
Nodes Used
n8n-nodes-base.ifn8n-nodes-base.cronn8n-nodes-base.noOpn8n-nodes-base.slackn8n-nodes-base.functionn8n-nodes-base.stickyNoten8n-nodes-base.httpRequest
Price無料
Views0
最終更新11/28/2025
workflow.json
{
"id": "KtRHK31mHsMCH2kS",
"meta": {
"instanceId": "dd69efaf8212c74ad206700d104739d3329588a6f3f8381a46a481f34c9cc281",
"templateCredsSetupCompleted": true
},
"name": "Weekly Website Link Checker with Auto Alerts for Broken URLs",
"tags": [],
"nodes": [
{
"id": "db1cc570-15ce-4adf-90f2-b9379a4b1a69",
"name": "Weekly Cron Trigger",
"type": "n8n-nodes-base.cron",
"notes": "This node triggers the workflow every Tuesday at midnight to perform a weekly scan of the blog.",
"position": [
-1040,
300
],
"parameters": {},
"typeVersion": 1
},
{
"id": "9698442f-e596-47a0-9710-ac3737ab6923",
"name": "Scan Blog with HTTP",
"type": "n8n-nodes-base.httpRequest",
"notes": "This node sends an HTTP request to the blog sitemap or API (e.g., Screaming Frog) to fetch all links for scanning.",
"position": [
-820,
300
],
"parameters": {
"url": "https://yourblog.com/sitemap.xml",
"options": {}
},
"typeVersion": 1
},
{
"id": "962d6578-f7da-47f1-ac7c-a3ea48bffbc5",
"name": "Filter Broken Links",
"type": "n8n-nodes-base.if",
"notes": "This IF node filters links with a 404 status code to identify broken links.",
"position": [
-600,
300
],
"parameters": {
"conditions": {
"number": [
{
"value1": "{{$node['Scan Blog with HTTP'].json['status']}}",
"value2": 404,
"operation": "equal"
}
]
}
},
"typeVersion": 1
},
{
"id": "871fabc3-338f-4255-ac7c-45cc657db203",
"name": "Create Broken Links List",
"type": "n8n-nodes-base.function",
"notes": "This node processes the filtered data and creates a list of broken URLs for reporting.",
"position": [
-380,
200
],
"parameters": {
"functionCode": "const brokenLinks = [];\nfor (let item of $input.all()) {\n if (item.json.status === 404) {\n brokenLinks.push(item.json.url);\n }\n}\nreturn [{ json: { brokenLinks: brokenLinks } }];\n"
},
"typeVersion": 1
},
{
"id": "a4252cb9-0238-4de2-bff8-2bad0013120b",
"name": "Send Slack Alert",
"type": "n8n-nodes-base.slack",
"notes": "This node sends a Slack message to the 'dev-team' channel with the list of broken URLs.",
"position": [
-160,
200
],
"parameters": {
"text": "🚨 Broken Links Report:\nFound {{ $node['Create Broken Links List'].json['brokenLinks'].length }} broken links:\n{{ $node['Create Broken Links List'].json['brokenLinks'].join('\\n') }}",
"channel": "dev-team",
"attachments": [],
"otherOptions": {}
},
"credentials": {
"slackApi": {
"id": "MQ0fgwuS8AzfwFvy",
"name": "Slack account - test "
}
},
"typeVersion": 1
},
{
"id": "da4eb42b-d2ae-470f-9877-24702ff74978",
"name": "No Action for Valid Links",
"type": "n8n-nodes-base.noOp",
"notes": "This node is a placeholder for valid links (non-404), where no action is taken.",
"position": [
-380,
400
],
"parameters": {},
"typeVersion": 1
},
{
"id": "cfb5f7ad-4810-4745-ae62-6bda885e9d6b",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1020,
-120
],
"parameters": {
"color": 5,
"width": 820,
"height": 280,
"content": "## System Architecture\n- **Link Checking Pipeline**:\n - **Weekly Cron Trigger**: Schedules the workflow to run weekly.\n - **Scan Blog with HTTP**: Performs HTTP GET requests to check website links.\n- **Alert and Tracking Flow**:\n - **Filter Broken Links**: Identifies and separates broken links.\n - **Send Slack Alert**: Notifies the team via Slack about broken URLs.\n - **Create Broken Links List**: Compiles a list of broken links.\n- **Non-Critical Handling**:\n - **No Action for Valid Links**: Skips valid links with no further action."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "f625694c-fab9-4337-8889-340026af49d7",
"connections": {
"Filter Broken Links": {
"main": [
[
{
"node": "Create Broken Links List",
"type": "main",
"index": 0
}
],
[
{
"node": "No Action for Valid Links",
"type": "main",
"index": 0
}
]
]
},
"Scan Blog with HTTP": {
"main": [
[
{
"node": "Filter Broken Links",
"type": "main",
"index": 0
}
]
]
},
"Weekly Cron Trigger": {
"main": [
[
{
"node": "Scan Blog with HTTP",
"type": "main",
"index": 0
}
]
]
},
"Create Broken Links List": {
"main": [
[
{
"node": "Send Slack Alert",
"type": "main",
"index": 0
}
]
]
}
}
}