n8n workflow - Prijs monitor vanuit Google Sheet

In deze handleiding leggen we uit hoe je op basis van een Google Sheets automatisch prijzen van producten in een webshop kunt monitoren op basis van een CSS selector. Inclusief Slack bericht wanneer er een aanpassing is geweest.

Download de volledige workflow hier


Benodigdheden

  1. Een n8n personal server of hoger (zie https://www.hoasted.com/hosting/n8n-vps/)
  2. Een Google sheet met daarin een lijst van domeinnamen om te controleren (voorbeeld)
  3. Een Google Sheets API Client ID en Client Secret (meer uitleg in deze handleiding)
  4. Een Slack API key met rechten om te posten in een channel (meer uitleg in deze handleiding)

Trigger toevoegen

Om de workflow aan te roepen is een trigger nodig, waar we in dit geval een 'Schedule Trigger' voor gebruiken. Deze laten we dagelijks om 9 uur in de ochtend draaien, waarmee de workflow iedere 24 uur uitgevoerd zal worden.


Read from Google Sheets node

Voeg een node toe om de Google Sheets uit te lezen. In deze sheet zouden 2 tabbladen moeten zijn, waarvan we in dit geval de eerste zullen gebruiken. Zie ook ons voorbeeld bestand.


Loop over items node

Loop vervolgens over alle items die worden opgehaald uit de sheet.


Pauze node

Voeg een korte pauze in om zo een grote load op de server welke we gaan aanspreken te verminderen. Zo is de kans groter dat de requests correct doorkomen zonder fouten.


HTTP request node

Voeg nu een HTTP request node toe, en laat deze de URL uit de Google Sheets opvragen. Vink vervolgens de optie 'Send Header' aan, en specify deze middels JSON. Vul hierbij onderstaande user-agent in:

{
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:119.0) Gecko/20100101 Firefox/119.0",
  "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
  "Accept-Language": "en-IN,en;q=0.9",
  "Accept-Encoding": "gzip, deflate, br"
}


Extract from HTML node

Met deze node kun je de HTML van de opgevraagde pagina doornemen. Op basis van de CSS selector halen we in dit geval de inhoud van de <span> met de prijs op. Let op dat je dit aanpast naar de CSS selector van de website die jij wilt crawlen.


3 code nodes

De volgende 3 code nodes worden gebruikt om de prijzen te normaliseren, om te berekenen of er een prijs verschil te zien is in vergelijking met eerdere momenten, en vervolgens de data netjes klaar gezet voor de verdere verwerking.


If TRUE/FALSE node

Op het moment dat er data gewijzigd is zullen de updates naar de sheet en de notificatie gaan draaien. Bij false loopt hij terug naar de Loop over items node.


Write to Google Sheets node 1

Deze node update het log tabblad waar alle gecontroleerde prijzen in komen te staan.


Write to Google Sheets node 2

Deze node update het overzicht tabblad met de laatst gecontroleerde prijs.


Code node

Vervolgens voegen we een code node toe om de Slack notificatie voor te bereiden.


Send to Slack node

Hiermee verzenden we de daadwerkelijke notificatie naar Slack.


Heeft dit artikel je goed geholpen? Dank voor je feedback! Er is een probleem opgetreden bij het verzenden. Probeer opnieuw.