Att få slut på en bästsäljare är oftast inte ett ”stort misstag”. Det är en liten miss som händer fem gånger: ingen kollade leverantörssidan, arket uppdaterades inte och beställningsmejlet gick iväg för sent.
Om du är butiksansvarig eller inköpsansvarig kan du redan rutinen. Och byråteam som hanterar e-handelskunder känner av det också. Den här automatiseringen för lagerlarm håller en live-logg i Google Sheets och pingar dig i Gmail när lagret går under din gräns.
Du får se hur arbetsflödet bevakar leverantörssidor enligt schema, använder AI för att tolka stökiga lagermeddelanden och sedan uppdaterar ditt ark och larmar dig bara när det faktiskt spelar roll.
Så fungerar den här automatiseringen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: Google Sheets + Gmail: loggade låg saldo-larm
flowchart LR
subgraph sg0["Check Stock Every X Hours Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Check Stock Every X Hours", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Define Product URL", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Scrape Product Data (via Age..", pos: "b", h: 48 }
n3@{ icon: "mdi:brain", form: "rounded", label: "OpenAI (Chat)", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Bright Data MCP (Scraper)", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Product In Stock?", pos: "b", h: 48 }
n6@{ icon: "mdi:message-outline", form: "rounded", label: "Email Supplier (Out of Stock..", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Do Nothing (Stock Available)", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "Auto-fixing Output Parser", pos: "b", h: 48 }
n9@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n10@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n3 -.-> n2
n9 -.-> n8
n5 --> n7
n5 --> n6
n1 --> n2
n10 -.-> n8
n8 -.-> n2
n4 -.-> n2
n0 --> n1
n2 --> n5
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n2,n8,n10 ai
class n3,n9 aiModel
class n5 decision
Varför det här spelar roll: du kan inte beställa om det du inte ser
Lagerproblem börjar sällan i ditt lager. De börjar på leverantörssajter, i distributörsportaler eller i utspridda mejl som aldrig hamnar i ditt spårningsark. Någon ”tänkte kolla”, men det är fredag, beställningarna rasslar in och den enda signalen du får är när kunderna landar på en slut-i-lager-sida. Sedan kommer kaoset: panikbeställningar, ursäktande supportsvar och en plötslig smäll på annonsresultaten eftersom produkten du pushade inte kan skickas. Ärligt talat är det utmattande – och helt onödigt.
Det eskalerar snabbt. Här brukar friktionen dyka upp.
- Leverantörssidor ändrar formulering hela tiden (”begränsat”, ”restorder”, ”skickas om 2 veckor”), så manuella kontroller blir gissningslek.
- Uppdateringar i Google Sheets sker i efterhand, vilket gör att ”källan till sanningen” alltid är lite inaktuell.
- När du följer fler än en handfull SKU:er kan dagliga kontroller i smyg äta upp ungefär en timme.
- Missa en kritisk dipp och du tappar försäljning i flera dagar, samtidigt som du skapar ett rörigt ombeställningsspår som är svårt att revidera i efterhand.
Vad du bygger: automatiska lagerkontroller med loggning i Sheets + Gmail-larm
Det här arbetsflödet kör schemalagda lagerkontroller, hämtar produktens tillgänglighet från leverantörskällor och loggar varje resultat i Google Sheets så att din lagerhistorik förblir strukturerad. Det börjar med en schematrigger och sätter sedan artikel-länken (produktens URL du vill bevaka). Därefter använder det Bright Data för att skrapa sidan pålitligt (även när sajter försöker blockera botar). En AI-agent tolkar sedan vad sidan visar och förvandlar stökig text till strukturerad lagerinformation som du faktiskt kan använda. Till sist kontrollerar ett If-villkor din tröskellogik: om lagret är lågt (eller ”inte tillgängligt”) får du ett Gmail-larm; om allt är okej gör arbetsflödet inget och går vidare i tysthet.
Arbetsflödet startar enligt schema, så du inte är beroende av att någon kommer ihåg. Bright Data samlar in råa tillgänglighetssignaler, OpenAI hjälper till att normalisera dem och Google Sheets blir din löpande logg. Gmail triggas bara när villkoret för lågt lager uppfylls, så inkorgen inte blir brus.
Det du bygger
| Vad som automatiseras | Vad du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du följer 20 produkter hos 3 leverantörer. Om du manuellt kontrollerar varje leverantörssida och uppdaterar ett ark är det kanske 3 minuter per produkt, plus ytterligare en minut för att logga det. Du hamnar på cirka 80 minuter varje gång du gör en ”full genomgång”. Med det här arbetsflödet är den enda handpåläggningen att hålla dina produkt-URL:er och tröskelregler uppdaterade, vilket ligger närmare 10 minuter i veckan. Kontrollerna och loggningen körs i bakgrunden och Gmail avbryter dig bara när en SKU behöver åtgärd.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
- Google Sheets för lagerloggning och historik.
- Gmail för att leverera lågt-lager-larm till teamet.
- Bright Data-uppgifter (hämta dem i din Bright Data-dashboard).
- OpenAI API-nyckel (hämta den på sidan för OpenAI API-nycklar).
Kunskapsnivå: Medel. Du kopplar konton, lägger till autentiseringsuppgifter och mappar några fält till ditt ark.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
En schemalagd kontroll sätter igång. Arbetsflödet körs enligt en tidplan du väljer (för många butiker räcker det med ett par gånger per dag). Det betyder att du slutar vara beroende av ”någon kollar efter lunch”.
Produktlänkar sätts innan skrapning. Arbetsflödet laddar URL:erna för de artiklar du bryr dig om, så att resten av stegen kan behandla varje produkt på samma sätt. Lägger du senare till leverantörer eller SKU:er bygger du vidare på samma mönster i stället för att uppfinna allt på nytt.
Bright Data samlar in den råa lagersignalen. I stället för att skrapa direkt från din server (vilket ofta blockeras) hämtar Bright Data produktsidan och returnerar innehållet pålitligt. Sedan använder AI-agenten OpenAI för att tolka det den ser och gör det till strukturerad output, även om sidans formulering ändras.
Lågt lager triggar Gmail, och loggen ligger kvar i Sheets. En ”tillgänglighetskontroll” avgör om resultatet passerar din tröskel. Om det gör det skickar Gmail ett lagerlarm från leverantören; om inte gör arbetsflödet inget och går vidare. Oavsett vilket får du korrekt formaterad spårningsdata i Google Sheets.
Du kan enkelt justera tröskellogiken så att den matchar dina ombeställningspunkter, eller byta larmdestination (till exempel Gmail till en delad inkorg kontra en specifik inköpare). Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: konfigurera schema-triggern
Ställ in arbetsflödet så att det körs enligt ett dagligt schema, så att produktstatusen kontrolleras automatiskt.
- Lägg till noden Scheduled Stock Check som din trigger.
- Ställ in schemaregeln så att den körs vid
triggerAtHour: 9så att kontrollen sker dagligen kl. 09:00. - Bekräfta att triggerns output går till Set Item Link enligt körflödet.
Steg 2: anslut indata för produkt-URL
Definiera Amazon-produktens URL som ska skrapas vid varje schemakörning.
- Öppna Set Item Link och lägg till en tilldelning med namnet Product url med värdet
https://www.amazon.com/UGREEN-Delivery-Multiport-Adapter-Thinkpad/dp/B0BR3M8XHK/ref=sxin_14_recs_zoco_stores_brand_identity_bs?content-id=amzn1.sym.7d2e00dd-9358-4f89-aca0-04685eb73811%3Aamzn1.sym.7d2e00dd-9358-4f89-aca0-04685eb73811&crid=2CB2GLCEIKPKS&cv_ct_cx=ugreen&keywords=ugreen&pd_rd_i=B0BR3M8XHK&pd_rd_r=15617e04-710c-4101-b1d1-d8a58739f635&pd_rd_w=IUheb&pd_rd_wg=1rYBe&pf_rd_p=7d2e00dd-9358-4f89-aca0-04685eb73811&pf_rd_r=GKRJJFTMCPGTHRJZ980Z&qid=1751608771&sbo=RZvfv%2F%2FHxDF%2BO5021pAnSA%3D%3D&sprefix=ugre%2Caps%2C1277&sr=1-2-5f457e4f-4cf5-45bd-948b-58563dcb013a. - Verifiera att Set Item Link är kopplad till Agent Scrape Product Info.
Steg 3: sätt upp AI-skrapning och parsning
Konfigurera agenten så att den skrapar produktsidan med BrightData-verktyget och strukturerar resultatet.
- Öppna Agent Scrape Product Info och ställ in Text till
=below is the amazon product and you will scrape the page and tell whether it is still in stock or out of stock: {{ $json['Product url'] }}. - Säkerställ att OpenAI Chat Assistant är ansluten som språkmodell för Agent Scrape Product Info. Credential Required: Anslut era
openAiApi-uppgifter. - Bekräfta att BrightData MCP Scraper är ansluten som ett AI-verktyg för Agent Scrape Product Info. Credential Required: Anslut era
mcpClientApi-uppgifter. - Verifiera att Structured Result Parser är kopplad till Auto-Correct Output Parser med schemat i jsonSchemaExample för konsekvent output.
- Säkerställ att OpenAI Model Selector är ansluten som språkmodell för Auto-Correct Output Parser. Credential Required: Anslut era
openAiApi-uppgifter.
Steg 4: konfigurera lagerlogik och notifieringar
Routa den parsade tillgänglighetsstatusen och skicka aviseringar när produkten är slut i lager.
- I Stock Availability Check ställer ni in villkoret så att leftValue
={{ $json.output.availability }}jämförs med rightValueIn Stockmed operatorn equals. - Säkerställ att “true”-utgången går till No Action When In Stock.
- Konfigurera Send Supplier Stock Alert för “false”-utgången. Sätt sendTo till
[YOUR_EMAIL], message tillThe product is out of stock so I need 50 more productsoch subject till=Product "{{ $json.output.product.title }}" is out of stock. - Credential Required: Anslut era
gmailOAuth2-uppgifter i Send Supplier Stock Alert.
output.availability kommer villkoret i Stock Availability Check aldrig att matcha. Säkerställ att schemat i Structured Result Parser matchar agentens output.Steg 5: testa och aktivera ert arbetsflöde
Kör ett manuellt test för att bekräfta att skrapning, parsning och avisering fungerar som förväntat.
- Klicka på Execute Workflow och bekräfta att Scheduled Stock Check triggar Set Item Link → Agent Scrape Product Info → Stock Availability Check.
- Verifiera att output från Agent Scrape Product Info innehåller
output.availabilityochoutput.product.title. - Om artikeln är slut i lager, bekräfta att ett e-postmeddelande skickas av Send Supplier Stock Alert. Om den finns i lager, säkerställ att det routas till No Action When In Stock.
- När allt stämmer, slå om arbetsflödet till Active för att aktivera daglig övervakning.
Felsökningstips
- Behörigheter i Google Sheets ställer ofta till det. Om rader inte skrivs, kontrollera det anslutna Google-kontot och verifiera att kalkylarket är delat med redigeringsbehörighet.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- OpenAI-output beror mycket på din prompt och dina formateringsregler. Standardprompter i AI-noder är generiska, så lägg in ditt lagerordförråd tidigt (”restorder”, ”förhandsbeställning”, ”begränsat”), annars kommer du att rätta kantfall i all evighet.
Snabba svar
Cirka 30 minuter om ditt ark och dina konton är redo.
Nej. Du kopplar inloggningsuppgifter och mappar några fält till Google Sheets. ”Logiken” är enkla villkor, inte programmering.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in kostnader för OpenAI API och Bright Data-användning, som beror på hur ofta du skrapar och hur många sidor du bevakar.
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärd och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serveradministration.
Ja, och det vill du sannolikt. Du kan ersätta den schemalagda triggern med en webhook om du vill köra kontroller på beställning, och du kan byta Gmail-larm mot Telegram genom att lägga till ett Telegram-sändsteg efter beslutet ”Stock Availability Check”. Många team justerar också prompten för AI-agenten så att den tolkar leverantörsspecifika fraser som ”skickas om 10 dagar” som ”lågt lager”, och loggar den nyansen i en extra kolumn i Google Sheets.
Oftast beror det på fel Google-konto, saknad redigeringsbehörighet till kalkylarket eller en omdöpt flik som inte längre matchar dina nodinställningar. Återanslut Google Sheets-uppgifterna i n8n och välj sedan kalkylark och arbetsblad igen för att uppdatera mappningen. Om det fortfarande misslyckas, kontrollera Googles säkerhetsinställningar för blockerad åtkomst och bekräfta att filen inte ligger i en begränsad Shared Drive.
Mycket, men det beror på hur du kör n8n och hur snabbt leverantörssajterna svarar. I n8n Cloud beror din månatliga körningsgräns på din plan, och varje produktkontroll kan räknas som en egen körning om du loopar igenom artiklar. Om du self-hostar finns inget tak för körningar, men du begränsas ändå av din server och av genomströmningen i Bright Data/OpenAI. I praktiken kör de flesta småföretag dussintals SKU:er några gånger per dag utan att tänka på det; när du kommer upp i hundratals vill du batcha och köra med längre intervall.
Ofta, ja – eftersom det här arbetsflödet behöver skrapning, tolkning och villkorslogik som kan bli krånglig (och dyr) i enklare verktyg. n8n hanterar grenar och ”gör inget när det finns i lager” på ett rent sätt, så du betalar inte extra för varje filter. AI-tolkningssteget är också lättare att styra eftersom du kan lägga till strukturerad output-tolkning och automatisk korrigering när modellen blir kreativ. Zapier eller Make kan ändå fungera om din lagerdata redan finns i ett korrekt formaterat API och du bara behöver ett tvåstegslarm. Om du är osäker, prata med en automationsexpert så får du en rak rekommendation.
När detta väl rullar förvandlas ”överraskningar” med lågt lager till enkla, tråkiga larm. Det är målet. Tråkigt lager är lönsamt lager.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.