n8n: Web Scraper to Sheet
Scrapes a list of URLs on a schedule, extracts key data, and posts results to Slack.
Template
{
"name": "Web Scraper to Sheet",
"nodes": [
{
"name": "Daily Schedule",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1,
"position": [250, 300],
"parameters": {
"rule": { "interval": [{ "field": "hours", "hoursInterval": 24 }] }
}
},
{
"name": "URL List",
"type": "n8n-nodes-base.code",
"typeVersion": 1,
"position": [450, 300],
"parameters": {
"jsCode": "return [ { json: { url: 'https://example.com/pricing' } }, { json: { url: 'https://example.com/blog' } }, { json: { url: 'https://example.com/changelog' } } ];"
}
},
{
"name": "Fetch Pages",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [650, 300],
"parameters": {
"method": "GET",
"url": "={{ $json.url }}",
"options": { "timeout": 10000 }
}
},
{
"name": "Extract Data",
"type": "n8n-nodes-base.code",
"typeVersion": 1,
"position": [850, 300],
"parameters": {
"jsCode": "const html = items[0].json.data || ''; const titleMatch = html.match(/<title>(.*?)<\/title>/i); const title = titleMatch ? titleMatch[1] : 'No title'; const wordCount = html.replace(/<[^>]*>/g, '').split(/\s+/).length; return [{ json: { url: items[0].json.url, title, wordCount, scrapedAt: new Date().toISOString() } }];"
}
},
{
"name": "Post to Slack",
"type": "n8n-nodes-base.slack",
"typeVersion": 2,
"position": [1050, 300],
"parameters": {
"resource": "message",
"operation": "post",
"channel": "#scrape-results",
"text": "={{ ':mag: Scraped: ' + $json.title + ' (' + $json.wordCount + ' words) - ' + $json.url }}"
}
}
],
"connections": {
"Daily Schedule": { "main": [[{ "node": "URL List" }]] },
"URL List": { "main": [[{ "node": "Fetch Pages" }]] },
"Fetch Pages": { "main": [[{ "node": "Extract Data" }]] },
"Extract Data": { "main": [[{ "node": "Post to Slack" }]] }
},
"active": false,
"settings": {}
}Setup
- 1
Copy the workflow JSON above.
- 2
In n8n, go to Workflows and click Import.
- 3
Paste the JSON and update credential references.
- 4
Activate the workflow.
Import into n8n
This is an n8n workflow. Import it directly into your n8n instance.
- 1
Open your n8n instance (localhost:5678 or your cloud URL).
- 2
Go to Workflows and click the + New button.
- 3
Click the three-dot menu in the top right, then select "Import from JSON".
- 4
Paste the workflow JSON from the template above.
- 5
Update any placeholder values (channel names, webhook URLs, credentials).
- 6
Activate the workflow with the toggle in the top right.
# Alternatively, import via n8n CLI:
n8n import:workflow --input=workflow.jsonVersion History
Framework
N8nRequirements
File type
Version
Updated Mar 16, 2026
You might also like
Social Media Monitor
Track mentions of your brand across platforms. Daily digest of what people are saying.
~$0.20/day · ~10 min setup
Content Scheduler
Draft social posts from your content calendar. Queue them for review.
~$0.30/day · ~10 min setup
SEO Tracker
Monitor keyword rankings and page performance weekly.
~$0.10/day · ~10 min setup