Each day this workflow scrapes a competitor product page, compares the price against the last value stored in Google Sheets, and only emails you when the price has actually changed. Stay on top of pricing without manual checks.
{
"name": "Daily Competitor Price Scrape + Alert",
"nodes": [
{
"id": "cp01aa",
"name": "Daily Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.1,
"position": [
200,
300
],
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 6 * * *"
}
]
}
}
},
{
"id": "cp02bb",
"name": "Fetch Page",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
400,
300
],
"parameters": {
"url": "https://competitor.example.com/product/123",
"method": "GET",
"options": {
"response": {
"response": {
"responseFormat": "text"
}
}
}
}
},
{
"id": "cp03cc",
"name": "Extract Price",
"type": "n8n-nodes-base.html",
"typeVersion": 1.2,
"position": [
600,
300
],
"parameters": {
"operation": "extractHtmlContent",
"extractionValues": {
"values": [
{
"key": "price",
"cssSelector": ".price",
"returnValue": "text"
}
]
}
}
},
{
"id": "cp04dd",
"name": "Read Last Price",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.4,
"position": [
800,
300
],
"parameters": {
"operation": "read",
"documentId": "YOUR_SHEET_ID",
"sheetName": "Prices"
}
},
{
"id": "cp05ee",
"name": "Price Changed?",
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
1000,
300
],
"parameters": {
"conditions": {
"conditions": [
{
"leftValue": "={{ $('Extract Price').item.json.price }}",
"rightValue": "={{ $json.price }}",
"operator": {
"type": "string",
"operation": "notEquals"
}
}
]
}
}
},
{
"id": "cp06ff",
"name": "Email Alert",
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
1220,
220
],
"parameters": {
"resource": "message",
"operation": "send",
"sendTo": "you@example.com",
"subject": "Competitor price changed!",
"message": "New price: {{ $('Extract Price').item.json.price }} (was {{ $json.price }})",
"options": {}
}
}
],
"connections": {
"Daily Trigger": {
"main": [
[
{
"node": "Fetch Page",
"type": "main",
"index": 0
}
]
]
},
"Fetch Page": {
"main": [
[
{
"node": "Extract Price",
"type": "main",
"index": 0
}
]
]
},
"Extract Price": {
"main": [
[
{
"node": "Read Last Price",
"type": "main",
"index": 0
}
]
]
},
"Read Last Price": {
"main": [
[
{
"node": "Price Changed?",
"type": "main",
"index": 0
}
]
]
},
"Price Changed?": {
"main": [
[
{
"node": "Email Alert",
"type": "main",
"index": 0
}
],
[]
]
}
},
"active": false,
"settings": {},
"meta": {}
}