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

Du kollar en konkurrents produktsida, skriver ner priset någonstans och gör sedan om det i morgon. Och dagen efter. Det är tröttsamt, lätt att glömma, och det slutar i rörig “ändrades det här eller minns jag fel?”-förvirring.

Prisbevakning på konkurrenter är skillnaden mellan att reagera för sent och att agera samma dag. E-handelschefer känner pressen först, men analytiker som jagar korrekt formaterad data och konsulter som rapporterar till kunder kör in i samma vägg: bevakning skalar inte när den är manuell.

Det här arbetsflödet skrapar konkurrent-URL:er, extraherar pris och lagerstatus med AI, jämför mot din historik i Google Sheets och skickar sedan en Gmail-varning när något rör sig. Du får se hur automatiseringen fungerar, vad du behöver och vad du ska se upp med.

Så fungerar den här automatiseringen

Hela n8n-arbetsflödet, från trigger till slutligt resultat:

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

Problemet: konkurrenters prisförändringar sker medan du är upptagen

Prisbevakning låter enkelt tills du gör det över flera konkurrentsajter, flera SKU:er och flera gånger per dag. En layoutändring kan förstöra din kopiera-klistra-rutin. En “rea”-badge dyker upp men du missar att priset i tysthet sjönk. Och så har vi lagerstatus, som ofta är den verkliga signalen, eftersom en konkurrent som är slut i lager kan ändra vad du kan ta betalt för i dag. Om du loggar allt i ett kalkylark slutar du dessutom med halvifyllda rader, inkonsekventa namn och noll förtroende för historiken.

Det bygger snabbt upp. Här är var det oftast faller isär.

  • Att kolla tre sajter för tio produkter kan lätt äta upp runt 2 timmar per dag när du räknar in flikar, filtrering och loggning.
  • Manuell spårning missar de “små” förändringarna, vilket gör att du först märker det när försäljning eller marginaler redan har tagit stryk.
  • Ditt kalkylark blir en kyrkogård av delvisa uppdateringar, så du slutar lita på det och slutar använda det.
  • När du väl mejlar teamet har ögonblicket passerat och du reagerar i stället för att planera.

Lösningen: skrapa, extrahera, jämför och larma automatiskt

Det här arbetsflödet gör konkurrentbevakning till ett repeterbart system som körs från en enda trigger. När det startar hämtar det produktlistningar från konkurrenternas sidor (Nike, Adidas och Sneakerpricer i mallen) via Firecrawl och skickar sedan det råa sidinnehållet till en OpenAI-driven extraktor som plockar ut produktdetaljer som namn, aktuellt pris och lagerstatus. Därefter normaliserar det datan till en konsekvent struktur, hämtar dina tidigare poster från Google Sheets och jämför “nuvarande” mot “föregående” för att hitta meningsfulla ändringar. När ett pris sjunker, ett pris hoppar upp eller lagerstatus växlar, uppdaterar det din Sheets-historik och mejlar dig en tydlig sammanfattning via Gmail.

Det börjar med en manuell körning (eller en trigger du kan byta ut senare), sedan samlar Firecrawl in senaste siddata. AI extraherar och normaliserar produktdetaljer, och arbetsflödet jämför mot din befintliga logg i Google Sheets. Till sist lägger det till historikrader, registrerar en varningslogg och skickar ett Gmail-meddelande som du kan vidarebefordra eller agera på direkt.

Det du får: automatisering vs. resultat

Exempel: så här ser det ut

Säg att du bevakar 10 produkter över 3 konkurrentkällor. Om du lägger cirka 4 minuter per produkt på att öppna sidan, bekräfta pris/lager och uppdatera Google Sheets blir det ungefär 2 timmar per dag (30 kontroller × 4 minuter). Med det här arbetsflödet triggar du en körning, väntar på skrapning + AI-extraktion (ofta runt 10–20 minuter medan du gör annat) och tittar sedan bara på Gmail-varningen om något ändrats. De flesta dagar blir din “tid” en snabb avläsning i stället för ett dagligt måste.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
  • Google Sheets för att lagra aktuella och historiska priser.
  • Gmail för att skicka varningar och dagliga sammanfattningar.
  • Firecrawl API-nyckel (hämta den i din Firecrawl-dashboard).
  • OpenAI API-nyckel (hämta den i OpenAI-plattformens dashboard).

Kunskapsnivå: Medel. Du kopplar OAuth-konton, klistrar in API-nycklar och mappar ett Google Sheet till obligatoriska kolumner.

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

Så fungerar det

En körning triggas. Mallen använder Manual Execution Start, vilket är perfekt för testning. Många team byter senare till schema, webhook eller till och med ett Telegram-meddelande när de vill ha en snabb kontroll vid begäran.

Konkurrenternas sidor hämtas. Firecrawl drar in senaste sidinnehållet från Nike-, Adidas- och Sneakerpricer-källor. Det är delen som ersätter flikhoppandet och kopiera-klistra-rutinen.

AI extraherar och normaliserar produktdetaljer. OpenAI plockar ut fält du bryr dig om (produktnamn, aktuellt pris, lagerstatus och URL), och därefter formaterar ett normaliseringssteg allt konsekvent så att jämförelser inte spårar ur.

Google Sheets blir din källa till sanning. Arbetsflödet hämtar tidigare poster, slår ihop “nuvarande vs. historik”, utvärderar pris- och lagerförändringar, lägger till i ett historikark och skriver en varningslogg. Om något ändrats skickar Gmail en sammanfattning som du kan agera på.

Du kan enkelt ändra listan med konkurrent-URL:er för att täcka fler varumärken utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: konfigurera den manuella triggern

Starta arbetsflödet med en manuell trigger så att ni kan testa scraping och larmlogik vid behov.

  1. Lägg till Manual Execution Start som er trigger-nod.
  2. Lämna alla inställningar som standard eftersom den här noden inte kräver några parametrar.

Steg 2: anslut scraping-källorna

Konfigurera de tre Firecrawl-scrapingnoderna som kör parallellt när triggern aktiveras.

  1. Öppna Fetch Nike Listings och ställ in URL till https://www.nike.com/sg/w/mens-shoes-nik1zy7ok med Operation = scrape.
  2. Öppna Fetch Adidas Listings och ställ in URL till =https://www.adidas.com/us/men-shoes med Operation = scrape.
  3. Öppna Fetch Sneakerpricer Data och ställ in URL till =https://www.sneakerpricer.com/us-EN med Operation = scrape.
  4. Inloggning krävs: anslut era firecrawlApi-uppgifter i alla tre noder.
  5. Bekräfta att Manual Execution Start skickar output till Fetch Nike Listings, Fetch Adidas Listings och Fetch Sneakerpricer Data parallellt.

Tips: håll Firecrawl JSON-prompten i linje med de produkter ni följer; den nuvarande prompten är price of the shoe.

Steg 3: konfigurera AI-extraktion och normalisering

Använd AI-noden för att extrahera strukturerad produktdata och normalisera sedan AI-utdata för tillförlitlig vidare bearbetning.

  1. Öppna 🤖 Extract Product Details och behåll Resource inställd på chat och Chat Model inställd på gpt-4.1-mini.
  2. Verifiera att prompten använder {{ $json.body }} och kontextfälten {{ $json.url || 'unknown' }} och {{ $json.competitor || 'unknown' }}.
  3. Inloggning krävs: anslut era openAiApi-uppgifter i 🤖 Extract Product Details.
  4. Öppna Normalize AI Output och behåll den medföljande JavaScript-koden för att parsa och rensa AI-svaret.
  5. Bekräfta att 🤖 Extract Product Details skickar output till Normalize AI Output.

⚠️ Vanlig fallgrop: om AI:n returnerar text som inte är JSON kommer Normalize AI Output att skapa felobjekt. Håll systemprompten strikt och undvik markdown-formatering.

Steg 4: slå ihop historik och utvärdera förändringar

Ladda tidigare prisdata, slå ihop den med aktuella resultat och beräkna larm för ändringar i pris, lager och betyg.

  1. Öppna 📈 Retrieve Past Records och ställ in Sheet Name till Historical Data.
  2. Ställ in Document ID till {{ $env.GOOGLE_SHEET_ID }}.
  3. Inloggning krävs: anslut era googleSheetsOAuth2Api-uppgifter i 📈 Retrieve Past Records.
  4. Öppna 🔗 Combine Current History och ställ in Mode till combine och Fields to Match till rawResponse.message.content.
  5. Öppna 🔎 Evaluate Price & Stock och behåll JavaScript-logiken som jämför aktuell data med 📈 Retrieve Past Records.
  6. Bekräfta att Normalize AI Output och 📈 Retrieve Past Records båda matar in i 🔗 Combine Current History, som sedan skickar output till 🔎 Evaluate Price & Stock.

Steg 5: konfigurera utdata och notiser

Skriv data till Google Sheets och skicka ett dagligt sammanfattningsmejl. Dessa utdata kör parallellt efter utvärderingen.

  1. Öppna 💽 Append History Sheet och ställ in Operation till append med Sheet Name = Historical Data och Document ID = {{ $env.GOOGLE_SHEET_ID }}.
  2. Inloggning krävs: anslut era googleSheetsOAuth2Api-uppgifter i 💽 Append History Sheet.
  3. Öppna 🗒️ Record Alert Log och ställ in Operation till append med Sheet Name = Alert Log och Document ID = {{ $env.GOOGLE_SHEET_ID }}.
  4. Inloggning krävs: anslut era googleSheetsOAuth2Api-uppgifter i 🗒️ Record Alert Log.
  5. Öppna 📑 Build Daily Summary och behåll JavaScript-koden som aggregerar antalet larm.
  6. Öppna Dispatch Gmail Notice och ställ in Send To till [YOUR_EMAIL], Subject till Shoes pricing och Message till The pricing of the competitors is attached.
  7. Inloggning krävs: anslut era gmailOAuth2-uppgifter i Dispatch Gmail Notice.
  8. Bekräfta att 🔎 Evaluate Price & Stock skickar output till 📑 Build Daily Summary, 💽 Append History Sheet och 🗒️ Record Alert Log parallellt.

⚠️ Vanlig fallgrop: om flikarna i Google Sheet heter något annat än Historical Data och Alert Log kommer append-operationerna att misslyckas.

Steg 6: testa och aktivera ert arbetsflöde

Kör ett fullständigt test för att verifiera parallell scraping, AI-parsning, uppdateringar i Sheets och Gmail-notiser, och aktivera sedan för löpande användning.

  1. Klicka på Execute Workflow för att köra Manual Execution Start och trigga alla tre scraping-noderna parallellt.
  2. Verifiera att 🤖 Extract Product Details returnerar giltig JSON och att Normalize AI Output skickar ut rena fält som productName, currentPrice och stockLevel.
  3. Bekräfta att 💽 Append History Sheet och 🗒️ Record Alert Log lägger till rader i rätt Google Sheets.
  4. Kontrollera inkorgen för att bekräfta att Dispatch Gmail Notice skickar sammanfattningsmejlet som genereras av 📑 Build Daily Summary.
  5. När allt fungerar, slå på arbetsflödet med Active för produktionsanvändning.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • OAuth-uppgifter för Google Sheets kan löpa ut eller kräva specifika behörigheter. Om saker slutar fungera: kontrollera först OAuth consent i Google Cloud Console och det anslutna kontot i n8n.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Firecrawl-utdata kan förändras när en sajt byter layout, och standardprompten i OpenAI är ofta för generisk. Lägg till dina förväntade fält (prisformat, valuta, lagerformuleringar) tidigt, annars sitter du och strukturerar data varje morgon.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen för prisbevakning av konkurrenter?

Cirka en timme om du redan har API:er och OAuth på plats.

Behöver jag kunna koda för att automatisera prisbevakning av konkurrenter?

Nej. Du klistrar främst in API-nycklar, kopplar Google-konton och matchar dina kolumner i arket.

Är n8n gratis att använda för det här arbetsflödet för prisbevakning av konkurrenter?

Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna in Firecrawls användningsavgifter och OpenAI API-kostnader (ofta några cent per körning, beroende på hur många sidor du bearbetar).

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

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

Kan jag anpassa det här arbetsflödet för prisbevakning av konkurrenter till Slack-varningar i stället för Gmail?

Ja, men du byter ut steget som skickar via Gmail mot en Slack-nod och behåller resten likadant. I den här mallen kan utgången “Dispatch Gmail Notice” ersättas med Slack (eller Discord) medan utvärdering och loggning ligger kvar i Google Sheets. Vanliga anpassningar är att lägga till fler konkurrent-URL:er, sätta en tröskel så att små prisrörelser inte larmar och dela upp notifieringar för “prisändring” respektive “lagerändring”.

Varför misslyckas min Google Sheets-anslutning i det här arbetsflödet?

Oftast är det OAuth. Auktorisera Google Sheets på nytt i n8n och bekräfta sedan att Google Sheets API är aktiverat i samma Google Cloud-projekt som du använde för OAuth. Om arket skapades under ett annat Google-konto än det du anslöt kan du också ha ett behörighetsproblem. Till sist: dubbelkolla kalkylarks-ID:t du klistrade in i arbetsflödet, eftersom ett enda fel tecken gör att läsningar och skrivningar slutar fungera.

Hur många produkter klarar den här automatiseringen för prisbevakning av konkurrenter?

Det beror främst på din Firecrawl-plan, OpenAI-användning och hur ofta du kör den.

Är den här automatiseringen för prisbevakning av konkurrenter bättre än att använda Zapier eller Make?

Ofta, ja. Det här arbetsflödet bygger på skrapning plus AI-extraktion och gör sedan jämförelselogik och loggning över flera ark, vilket är områden där n8n brukar vara mer flexibelt (och billigare vid hög volym). Zapier eller Make kan fungera om din “konkurrentdata” redan kommer som strukturerade fält, men skrapflöden blir snabbt klumpiga. Dessutom spelar egen hosting roll här, eftersom du kan köra frekventa kontroller utan att varje steg räknas som en debiterbar task. Om du är osäker, prata med en automationsexpert så tar vi fram det enklaste alternativet för din situation.

När detta väl rullar håller sig ditt kalkylark strukturerat och inkorgen lyser bara upp när något faktiskt ändras. Det är egentligen hela grejen: upptäck skiften tidigt och agera på dem.

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

Launch login modal Launch register modal