Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

Google sheets + Gmail: prisvarningar på konkurrenter

Rickard Andersson Partner, Nodenordic.se

Din prissättning ska inte hänga på att någon kommer ihåg att ”kolla konkurrenterna” varje morgon. Men det är ofta så det blir. Flikar överallt, siffror som kopieras in i ett kalkylark, och sedan det där ”vänta… var det 49 $ i går eller 59 $?”-ögonblicket.

Det är här prisvarningar i Sheets räddar dig: e-handelsansvariga märker det först, men prisanalyser och byråteam som hanterar kundkataloger hamnar i samma röra. Du får strukturerade ändringsloggar i Google Sheets plus en Gmail-varning när en konkurrent rör priset, så du kan agera innan marginalen tar stryk.

Nedan ser du hur automationen körs i n8n, vilka resultat du kan förvänta dig och vad du behöver för att sätta upp den utan att det blir ett ”nytt löpande projekt”.

Så fungerar den här automationen

Hela n8n-workflowen, från trigger till slutresultat:

n8n Workflow Template: Google sheets + Gmail: prisvarningar på konkurrenter

Problemet: Konkurrentpriser ändras medan du är upptagen

Konkurrentbevakning låter enkelt tills du faktiskt gör det. En person kollar en produktsida, en annan uppdaterar ett kalkylark, och när du väl ser en sänkning har du redan tappat en dags försäljning på fel pris. Eller värre: du matchar ett pris som var en tillfällig kampanj och det är du som blir kvar med tunnare marginaler. Sen kommer det stökiga: sidor byter layout, priser visas som ”från X $”, och plötsligt är ditt ark fullt av halvsanningar som du inte kan lita på.

Det växer snabbt. Här är var det brukar fallera.

  • Någon måste manuellt öppna samma konkurrent­sidor varje dag, och det blir i det tysta cirka 2 timmar i veckan.
  • Prishistorik loggas inkonsekvent, vilket gör att du inte kan avgöra om en förändring är en trend eller bara brus.
  • Du får reda på det för sent eftersom du bara upptäcker ändringar när du råkar komma ihåg att titta.
  • Ett enda copy-paste-misstag (eller komma-/decimalstrul) kan trigga ett dåligt prissättningsbeslut.

Lösningen: Daglig scraping + ändringsdetektering + Gmail-varningar

Den här n8n-workflowen övervakar konkurrenters produktsidor enligt ett schema, extraherar aktuellt pris, jämför det med senast registrerat värde och agerar bara när något faktiskt har ändrats. Den startar med en daglig trigger, hämtar konkurrent­sidan (via en HTTP-begäran som kan routas genom en scraping-leverantör som Bright Data för att undvika blockeringar) och tolkar HTML-markupen för att hitta priset. Därefter standardiserar den värdet (så att ”$49.00” och ”49” inte behandlas som olika) och laddar föregående pris från Google Sheets. Om siffran har rört sig skriver den tillbaka det nya värdet till arket och skickar en Gmail-varning med detaljer. Om inget har ändrats stoppar den direkt.

Workflowen startar enligt schema, scrapar och tolkar prisdata från en konkurrent-URL. Efter en snabb jämförelse mot din sparade baslinje i Google Sheets loggar den antingen uppdateringen och mejlar dig, eller så avslutas den utan onödigt brus.

Det du får: Automation vs. resultat

Exempel: Så här ser det ut

Säg att du följer 10 produkter hos 3 konkurrenter. Manuellt tar även en snabb kontroll kanske 3 minuter per sida, vilket blir cirka 90 minuter varje dag (och det är om inget går fel). Med den här workflowen lägger du ungefär 10 minuter en gång på att lägga in URL:er och mappa pris-selektorn, och sedan är den dagliga körningen helt hands-off. Du rör den bara när Gmail pingar dig, vilket för många kataloger betyder några varningar i veckan, inte 30 sidkontroller per dag.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Självhosting-alternativ om du föredrar det (Hostinger fungerar bra)
  • Google Sheets för att lagra prishistorik och baslinjer.
  • Gmail för att skicka prisändringsvarningar till teamet.
  • Bright Data-uppgifter (hämta dem i din Bright Data-dashboard) om konkurrent­sajter blockerar scraping.

Kunskapsnivå: Medel. Du kopierar workflowen till n8n, kopplar konton och justerar hur priset detekteras på dina specifika sidor.

Vill du inte sätta upp det här själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

Ett dagligt schema startar kontrollen. Workflowen körs från en Schedule Trigger (till exempel varje morgon innan första orderruschen), så du slipper förlita dig på en kalenderpåminnelse.

Konkurrent­sidan hämtas och tolkas. n8n hämtar prissidan via HTTP Request, sedan läser ett HTML-tolkningssteg markupen och skickar relevanta delar vidare till ett litet kodsteg som isolerar det faktiska prisvärdet.

Dagens pris jämförs med ditt senast registrerade pris. Google Sheets används som ”minnet”. Workflowen laddar föregående värde och en If-villkorsgren avgör om priset har ändrats tillräckligt för att vara relevant (utifrån din logik).

Uppdateringar loggas och varningar skickas. Om priset skiljer sig skrivs den nya posten till Google Sheets och en Gmail-varning skickas med produkten och gammalt vs. nytt pris. Om inget har ändrats stannar den där.

Du kan enkelt justera schemat och varningsreglerna efter dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementation

Steg 1: Konfigurera Schedule Trigger

Ställ in arbetsflödet att köras dagligen vid angiven timme med den schemabaserade triggern.

  1. Lägg till och öppna Daily Pricing Trigger.
  2. Ställ in Rule så att den kör vid triggerAtHour: 9.
  3. Koppla Daily Pricing Trigger till Retrieve Pricing Page.

Steg 2: Anslut Google Sheets

Konfigurera kalkylbladsnoderna som läser och uppdaterar er prishistorik.

  1. Öppna Load Prior Prices och välj kalkylbladet Competitor price analyzer och fliken Sheet1.
  2. Referens krävs: Anslut era googleSheetsOAuth2Api-referenser.
  3. Öppna Write Updated Prices och bekräfta att Operation är satt till update.
  4. Verifiera att mappningen för Columns använder uttryck som {{ $json.Basic }}, {{ $json.Grow }}, {{ $json.Advanced }}, {{ $json.Plus }} och {{ $json.row_number }}.
  5. Referens krävs: Anslut era googleSheetsOAuth2Api-referenser.

Steg 3: Konfigurera hämtning och parsning av prissidan

Hämta konkurrentens prissida och extrahera relevant HTML-innehåll.

  1. Öppna Retrieve Pricing Page och sätt URL till https://api.brightdata.com/request och Method till POST.
  2. Sätt Specify Body till json och aktivera Send Body och Send Headers.
  3. Klistra in JSON Body exakt som { "zone": "n8n_unblocker", "url": "https://www.shopify.com/uk/pricing", "country": "us", "format": "raw", "headers": { "User-Agent": "Mozilla/5.0", "Accept": "text/html" } }.
  4. Sätt headern Authorization till Bearer [CONFIGURE_YOUR_TOKEN].
  5. Öppna Parse Page Markup och sätt Operation till extractHtmlContent.
  6. Lägg till extraktionsvärden: Plan name med CSS Selector h3 (return array) och Pricing med CSS Selector span (return array).

⚠️ Vanlig fallgrop: Om ni glömmer att ersätta [CONFIGURE_YOUR_TOKEN] i Retrieve Pricing Page kommer det att orsaka auktoriseringsfel.

Steg 4: Konfigurera prisbearbetning

Normalisera extraherad data till en strukturerad plan-till-pris-mappning.

  1. Öppna Isolate Price Details och behåll den medföljande JavaScript-koden intakt för att mappa priserna för Basic, Grow, Advanced och Plus.
  2. Bekräfta att regex-logiken finns med: /\$[\d,]+USD\/month/ och att rensningssteget tar bort $ och kommatecken.
  3. Koppla Parse Page Markup till Isolate Price Details, och därefter till Load Prior Prices.

Steg 5: Konfigurera villkorslogik och uppdateringar

Jämför aktuella priser med lagrade värden och avgör om ni ska uppdatera och avisera.

  1. Öppna Detect Pricing Changes och verifiera att villkoren jämför aktuella och tidigare värden med uttryck som {{ $('Isolate Price Details').item.json.Basic }} equals {{ $json.Basic }}, och upprepa för Grow, Advanced och Plus.
  2. Koppla true-utgången från Detect Pricing Changes till Halt When Unchanged.
  3. Koppla false-utgången från Detect Pricing Changes till Write Updated Prices så att endast ändringar triggar uppdateringar.
  4. Säkerställ att Write Updated Prices är kopplad till Email Price Alert.

Steg 6: Konfigurera e-postaviseringar

Skicka en avisering när prisändringar upptäcks.

  1. Öppna Email Price Alert och sätt Send To till er aviseringadress och ersätt [YOUR_EMAIL].
  2. Behåll Subject som Competitor Pricing Page Has Changed.
  3. Säkerställ att Message innehåller tidsstämpeluttrycket {{ $now }} för spårbarhet.
  4. Referens krävs: Anslut era gmailOAuth2-referenser.

Steg 7: Testa och aktivera ert arbetsflöde

Validera flödet från början till slut och aktivera därefter daglig övervakning.

  1. Kör Daily Pricing Trigger manuellt för att köra arbetsflödet en gång.
  2. Bekräfta att Retrieve Pricing Page returnerar HTML-innehåll och att Parse Page Markup ger arrayer för Plan name och Pricing.
  3. Verifiera att Isolate Price Details ger numeriska värden och att Detect Pricing Changes routar korrekt till Halt When Unchanged eller Write Updated Prices.
  4. Kontrollera att Write Updated Prices uppdaterar rätt rad och att Email Price Alert skickar meddelandet när ändringar sker.
  5. Aktivera arbetsflödet för att möjliggöra daglig övervakning.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Google Sheets-inloggningar kan löpa ut eller kräva specifika behörigheter. Om något går sönder, kontrollera sidan Credentials i n8n och bekräfta att det anslutna Google-kontot fortfarande har redigeringsåtkomst till arket.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
  • Bright Data eller målsajten kan strypa förfrågningar, vilket syns som slumpmässiga 403/429-fel i HTTP Request-noden. Kontrollera körloggen för svarskoder och sänk sedan schematakten eller rotera proxyinställningar.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automationen för prisvarningar i Sheets?

Cirka 30 minuter om du redan har URL:erna och dina Google-anslutningar redo.

Behöver jag kunna koda för att automatisera konkurrenters prisvarningar?

Nej. Du kan behöva justera en liten snippet eller selektor, men det är mest copy-paste och testning.

Är n8n gratis att använda för den här workflowen med prisvarningar i Sheets?

Ja. n8n har ett gratis självhostat alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 $/månad för högre volym. Du behöver också räkna in kostnader för Bright Data om du använder det för scraping.

Var kan jag hosta n8n för att köra den här automationen?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller självhosting på en VPS. För självhosting är Hostinger VPS prisvärd och hanterar n8n bra. Självhosting ger dig obegränsade körningar men kräver grundläggande serveradministration.

Kan jag anpassa den här workflowen för prisvarningar i Sheets till veckosammanfattningar i stället för direkta mejl?

Ja, men du ändrar sista steget. Behåll samma logik för scraping och jämförelse och byt sedan ut Gmail-noden mot en ”daglig sammanställning”-gren som skriver ändringar till en sammanfattningsflik och mejlar en gång i veckan. Vanliga anpassningar är olika scheman per konkurrent, att bara larma när förändringen är större än din tröskel samt att spåra flera SKU:er per sida.

Varför misslyckas min Google Sheets-anslutning i den här workflowen?

Oftast handlar det om behörigheter eller en utgången OAuth-anslutning. Återanslut Google Sheets i n8n-credentials och bekräfta sedan att samma Google-konto kan redigera målarket. Kontrollera också att ditt arknamn och kolumnrubriker fortfarande matchar det workflowen förväntar sig. Om du har bytt namn på flikar kan steget ”Load Prior Prices” inte hitta rätt ställe att läsa från.

Hur många produkter kan den här automationen för prisvarningar i Sheets hantera?

På n8n Cloud Starter kan du köra några tusen körningar per månad, vilket räcker gott för en liten katalog. Om du självhostar finns ingen körningsgräns (det beror främst på din server och hur ofta du scrapar). I praktiken börjar de flesta team med 20–50 URL:er, säkerställer att extraktionen är stabil och skalar sedan därifrån.

Är den här automationen för prisvarningar i Sheets bättre än att använda Zapier eller Make?

Ofta, ja, eftersom scraping + parsing + villkorslogik snabbt blir krångligt (och dyrt) i enklare automationverktyg. n8n hanterar grenar, kodstädning och logik för ”stoppa när oförändrat” utan att fakturan blir en obehaglig överraskning. Självhosting är också en stor grej om du vill bevaka många URL:er dagligen. Zapier eller Make kan fortfarande fungera för enkla ”sheet ändrat → mejl”-flöden, men de är inte byggda för HTML-extraktion. Om du vill ha en second opinion: Prata med en automationsexpert så får du en rak rekommendation.

När det här väl rullar slutar du ”kolla priser” och börjar reagera på riktiga signaler. Workflowen tar hand om det repetitiva, och ditt kalkylark blir äntligen pålitligt.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Launch login modal Launch register modal