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 upptäcker en prissänkning hos en konkurrent för sent. Sedan stressar du, tvivlar och bränner en timme på att bekräfta något som redan har hänt.

Den här uppsättningen för prisändringsaviseringar slår hårdast mot e-handelschefer, men prissättningsstrateger och byråer som driver kundbutiker känner av det också. Du får en korrekt formaterad Google Sheets-historik över varje kontroll, plus Gmail-aviseringar när en sänkning faktiskt är värd att agera på.

Nedan är det exakta automationsflödet, vad det ersätter och hur du sätter upp det utan att göra din vecka till ett “övervaka priser”-jobb.

Så här fungerar automationen

Hela n8n-workflowen, från trigger till slutligt resultat:

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

Problemet: konkurrentpriser ändras medan du är upptagen

Att kolla konkurrentpriser låter enkelt tills du gör det för flera produkter, på flera sajter och flera gånger per dag. Flikarna blir fler. “Var det 49 $ i går eller 52 $?” blir en gissningslek, eftersom ingen loggar det konsekvent. Och när en meningsfull sänkning sker får du ofta reda på det först efter att skadan är skedd: annonser fortsätter rulla för en produkt som nu är för dyr, konverteringen dippar och du fastnar i diskussionen om du ska matcha, hålla priset eller paketera. Manuell bevakning skapar också en märklig mental belastning. Du går och tänker att du borde kolla “en gång till”, vilket är ett ärligt talat uselt sätt att använda din uppmärksamhet.

Det eskalerar snabbt. Här är var det brukar fallera.

  • Du lägger cirka 10 minuter per produkt bara på att bekräfta aktuellt pris och fraktvillkor.
  • Prishistoriken finns i någons minne eller i ett rörigt kalkylark som missar hälften av kontrollerna.
  • Små ändringar skapar panik, medan de stora rörelserna upptäcks för sent.
  • Även när du fångar en sänkning måste du ändå bestämma vad du ska göra utan rekommendation eller kontext.

Lösningen: Google Sheets + Gmail-prisövervakning med AI-rekommendationer

Den här workflowen körs enligt schema tre gånger per dag (morgon, eftermiddag och kväll) och kontrollerar konkurrenternas produktsidor som du anger. Den skrapar varje sida, använder AI för att plocka ut det faktiska priset på ett strukturerat sätt (så att du inte är beroende av sköra “hitta den här CSS-selektorn”-hack), och loggar resultatet i Google Sheets så att du automatiskt bygger en användbar pristidslinje. Därefter jämför den dagens pris mot tröskelreglerna du har satt per produktkategori (premium/standard/budget). Om en ändring passerar en meningsfull gräns skickar den en Gmail-varning markerad som CRITICAL eller STANDARD, plus en rekommendation på klarspråk om vad du bör överväga att göra härnäst.

Workflowen startar med en tidsstyrd trigger, laddar din produktlista och tröskelinställningar, och skrapar och extraherar sedan prisdata per URL. Till sist lägger den till varje kontroll i Google Sheets och mejlar dig bara när läget motiverar uppmärksamhet.

Det du får: automation vs. resultat

Exempel: så här ser det ut

Säg att du bevakar 15 konkurrent-SKU:er över några marknadsplatser. Manuellt tar även en snabb koll cirka 10 minuter per produkt, vilket är ungefär 2,5 timmar per kontroll. Att göra det tre gånger per dag blir en hel arbetsdag av flikhoppande. Med den här workflowen är “arbetet” att lägga in dina URL:er en gång och låta schemakörningarna ske i bakgrunden. Du lägger kanske cirka 10 minuter per dag på att bara gå igenom CRITICAL-mejlen och ignorera bruset.

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 logga priskontroller över tid.
  • Gmail för att skicka CRITICAL- och STANDARD-aviseringar.
  • Decodo API-uppgifter (hämtas i din Decodo-dashboard).
  • OpenAI API-nyckel (hämtas på sidan för OpenAI API-inställningar).

Kunskapsnivå: Mellan. Du kopplar konton, klistrar in API-nycklar och justerar några inställningar som trösklar och mottagare.

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

Så fungerar det

Schemalagd trigger kör tre gånger per dag. n8n startar workflowen kl. 09.00, 15.00 och 21.00, så att du inte är beroende av att någon kommer ihåg att kolla.

Din produktlista och trösklar laddas. Ett inställningssteg och ett litet script tolkar dina produktmål (URL:er plus ett internt ID) och tillämpar rätt tröskelregler per kategori, till exempel premium kontra budget.

Skrapning + AI-extraktion gör röriga sidor till strukturerad data. Decodo hämtar sidan pålitligt, och sedan extraherar en AI-agent det faktiska priset och returnerar strukturerade fält som workflowen kan lita på. Det finns också en auto-korrigerande parser som städar upp udda utdata, vilket hjälper när en sajt ändrar formatering.

Google Sheets blir din prisreskontra, och sedan skickar Gmail rätt avisering. Varje körning lägger till en ny rad i Sheets för historik, workflowen utvärderar villkor och routar CRITICAL-sänkningar till en mejlväg och STANDARD-uppdateringar till en annan.

Du kan enkelt justera aviseringströsklar och mottagarregler efter dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

Steg-för-steg-guide för implementering

Steg 1: konfigurera schematriggern

Ställ in workflowet så att det körs vid fasta tider varje dag för att automatiskt kontrollera priser.

  1. Lägg till och öppna Timed Price Check Trigger.
  2. Ställ in schemats rule så att det körs kl. 09:00, 15:00 och 21:00 med de intervalltimmar som redan är angivna.
  3. Koppla Timed Price Check Trigger till Global Settings Mapper.

Steg 2: anslut globala inställningar och mål

Definiera produktmål, tröskelvärden och mottagare som workflowet ska tolka och använda i efterföljande logik.

  1. Öppna Global Settings Mapper och verifiera att värdet för productTargets är satt till den JSON-liknande strängen som visas i noden, som börjar med [| { "url": "https://www.jogger.co.in/products/jogger-hyper-cushion-for-men-11344", "internal_id": "US-M-5302", "threshold_type": "premium" }, ... ].
  2. Ställ in priceThresholds till { "default": 8000, "premium": 12000, "budget": 5000 }.
  3. Ställ in alertRecipients till { "critical": "[YOUR_EMAIL]", "standard": "[YOUR_EMAIL]" } och ersätt platshållarna med riktiga adresser.
  4. Ställ in historicalDBTable till price_intelligence_logs.
  5. Koppla Global Settings MapperInitial Data AggregatorParse Product Targets ScriptBatch Item DuplicatorApply Threshold Mapping.

Parse Product Targets Script rensar strängen productTargets och konverterar den till enskilda items. Om ni ändrar formateringen, se till att den är giltig JSON så att tolkningskoden fortsätter att fungera.

Steg 3: konfigurera kedjan för AI-prisextrahering

Konfigurera scraping-verktyget, AI-modellen och output-parsern som extraherar strukturerad produktdata.

  1. Öppna Decodo Page Scraper och sätt url till {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('URL', ``, 'string') }}.
    Inloggningsuppgifter krävs: Anslut era decodoApi-inloggningsuppgifter.
  2. Öppna AI Price Extraction Agent och bekräfta att prompten innehåller Product URL: {{ $json.url }} och efterfrågar de strukturerade JSON-fält som visas.
  3. Säkerställ att Price LLM Model är ansluten som språkmodell för AI Price Extraction Agent.
    Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter.
  4. Säkerställ att Price Data Output Parser är ansluten som output-parser för AI Price Extraction Agent. Parsern i sig tar inga inloggningsuppgifter; inloggningsuppgifter läggs till i Price LLM Model (koppling till överordnad nod).
  5. Koppla Apply Threshold MappingAI Price Extraction AgentAppend Price Log to Sheets.

⚠️ Vanlig fallgrop: Om AI-utdata inte är giltig JSON kan parsern misslyckas. Behåll prompten i AI Price Extraction Agent exakt som den visas och undvik att lägga till extra text utanför JSON-kravet.

Steg 4: logga priser till Google Sheets

Lägg till extraherad produktdata i ert Google Sheet för historisk uppföljning.

  1. Öppna Append Price Log to Sheets och sätt operation till append.
  2. Sätt documentId till [YOUR_ID] och välj arket Sheet1 (gid=0).
  3. Mappa kolumner till uttryck exakt som visas, till exempel brand{{ $json.output.brand }}, product_name{{ $json.output.product_name }} och current_price{{ $json.output.current_price }}.
  4. Inloggningsuppgifter krävs: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter.

Steg 5: konfigurera strategianalys och routning av aviseringar

Analysera tröskelvärden, utvärdera villkor och routa aviseringar efter allvarlighetsgrad.

  1. Öppna Strategy Analysis Agent och bekräfta att prompten refererar till {{ $json.current_price }}, {{ $json.product_name }} och {{ $('Apply Threshold Mapping').item.json.priceThreshold }} för klassificering av aviseringar.
  2. Säkerställ att Strategy LLM Model är ansluten som språkmodell för Strategy Analysis Agent.
    Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter.
  3. Säkerställ att Strategy Output Parser och Auto-correcting Parser är anslutna som output-parsers. Inloggningsuppgifter för auto-fix appliceras på Parser LLM Model, inte på parser-noderna.
    Inloggningsuppgifter krävs: Anslut era openAiApi-inloggningsuppgifter till Parser LLM Model.
  4. Öppna Evaluate Price Conditions och bekräfta villkoren:
    leftValue {{ $('AI Price Extraction Agent').item.json.output.current_price }} lt {{ $('Apply Threshold Mapping').item.json.priceThreshold }}
    • ELLER leftValue {{ $json.alert_level }} equal CRITICAL.
  5. Öppna Severity Branching Check och bekräfta villkoren:
    leftValue {{ $json.alert_level }} equal CRITICAL
    • ELLER leftValue {{ $('AI Price Extraction Agent').item.json.output.discount_percentage }} gt 5.
  6. Verifiera att flödet Strategy Analysis AgentEvaluate Price ConditionsSeverity Branching Check är anslutet till både Dispatch Critical Email och Dispatch Standard Email, och att icke-aviseringar går till Batch End Marker.

Auto-correcting Parser är en säkerhetsfunktion för att reparera felaktig JSON. Säkerställ att Parser LLM Model förblir ansluten så att den kan korrigera ogiltiga outputs.

Steg 6: konfigurera e-postutskick

Skicka kritiska och standardaviseringar med rika HTML-meddelanden.

  1. Öppna Dispatch Critical Email och sätt sendTo till [YOUR_EMAIL] eller en riktig lista med kritiska mottagare.
    Inloggningsuppgifter krävs: Anslut era gmailOAuth2-inloggningsuppgifter.
  2. Bekräfta att subject är 🚨 CRITICAL PRICE DROP: {{ $('AI Price Extraction Agent').item.json.output.product_name }}.
  3. Bekräfta att message innehåller HTML med dynamiska fält som {{ $('AI Price Extraction Agent').item.json.output.current_price }}, {{ $('Apply Threshold Mapping').item.json.priceThreshold }} och {{ $now.format('HH:mm:ss') }}.
  4. Öppna Dispatch Standard Email och sätt sendTo till [YOUR_EMAIL] eller en riktig lista med standardmottagare.
    Inloggningsuppgifter krävs: Anslut era gmailOAuth2-inloggningsuppgifter.
  5. Bekräfta att subject är ⚠️ Standard Price Alert: {{ $json.output.product_name }} och att message använder de dynamiska fält som visas.

⚠️ Vanlig fallgrop: Om ni lämnar [YOUR_EMAIL] kvar kommer e-post inte att kunna levereras. Ersätt alla platshållare med giltiga adresser.

Steg 7: testa och aktivera ert workflow

Validera end-to-end-flödet innan ni aktiverar schemaläggning i produktion.

  1. Klicka på Execute Workflow för att köra Timed Price Check Trigger manuellt.
  2. Verifiera att Append Price Log to Sheets skriver rader till ert Google Sheet och att Strategy Analysis Agent producerar alert_level och strategic_recommendation.
  3. Bekräfta att Evaluate Price Conditions routar till Severity Branching Check och att antingen Dispatch Critical Email eller Dispatch Standard Email triggas baserat på villkoren.
  4. När allt fungerar, slå på workflowet till Active så att Timed Price Check Trigger kör enligt schema.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • OAuth-behörigheter för Google Sheets kan vara kinkiga. Om tillägg (append) slutar fungera, kontrollera det anslutna Google-kontot i n8n Credentials och bekräfta att det fortfarande har redigeringsåtkomst till målarket.
  • Om du använder Wait-noder eller extern skrapning varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • OpenAI-prompter är generiska som standard. Lägg in dina varumärkesregler och din prissättningsfilosofi tidigt, annars kommer du att fortsätta skriva om rekommendationerna i varje avisering.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automationen för prisändringsaviseringar?

Cirka 30 minuter om dina konton och API-nycklar är redo.

Behöver jag kunna koda för att automatisera prisändringsaviseringar?

Nej. Du kopplar främst tjänster, klistrar in nycklar och redigerar din produktlista och dina trösklar.

Är n8n gratis att använda för den här workflowen för prisändringsaviseringar?

Ja. n8n har ett gratis alternativ för egen hosting 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 OpenAI API-kostnader (ofta några dollar per månad vid lätt bevakning) plus din Decodo-användning för skrapning.

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 egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och hanterar n8n bra. Egen hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa den här workflowen för prisändringsaviseringar för olika produktkategorier?

Ja, och det är huvudskälet till att den här uppsättningen fungerar. Du kan justera kategoribaserade trösklar i delarna “Global Settings Mapper” och “Apply Threshold Mapping” i workflowen, och sedan ändra vem som får CRITICAL- respektive STANDARD-mejl. Vanliga justeringar är att lägga till en kategori för “MAP policy”, olika trösklar per varumärke och att routa vissa SKU:er till en specifik intressent.

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

Oftast är det utgången OAuth-åtkomst eller att det anslutna Google-kontot har tappat redigeringsbehörighet till arket. Anslut Google Sheets-uppgifterna igen i n8n och bekräfta att kalkylarket är delat med det kontot. Om arket flyttades till en annan Drive eller bytte namn, verifiera också fil-ID:t eller destinationsinställningarna i append-steget.

Hur många produkter kan den här automationen för prisändringsaviseringar hantera?

Dussintals är normalt, och du kan skala högre om din budget för skrapning och AI stödjer det.

Är den här automationen för prisändringsaviseringar bättre än att använda Zapier eller Make?

Ofta, ja, eftersom den här workflowen kombinerar skrapning, AI-extraktion, strukturerad parsning, förgrenad logik och två aviseringsvägar. Den typen av logik blir dyr (eller krånglig) i Zapier och Make när du lägger till flera steg och loopar. n8n ger dig också möjligheten att köra med egen hosting, vilket är viktigt när du vill ha många schemalagda körningar utan att behöva oroa dig för varje extra körning. Om du bara bevakar ett par URL:er och vill ha ett enkelt “om priset ändras, mejla mig” kan Zapier eller Make fungera helt fint. Prata med en automationsexpert om du vill ha hjälp att välja.

När detta väl rullar blir konkurrentbevakning bakgrundsarbete. Du får signalen, historiken och rekommendationen, vilket innebär att du kan agera snabbt utan att leva i en webbläsarflik.

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