Du hade tänkt “hålla koll på konkurrenternas priser”, men det blir snabbt en veckovis skattjakt. Öppna flikar, kopiera siffror till ett kalkylblad, inse att en produktsida ändrade layout — och nu är din “trend” mest en känsla.
Den här uppsättningen för MongoDB Mailgun alerts träffar e-handelschefer först, helt ärligt. Men marknadsansvariga som planerar kampanjer och byråstrateger som driver retail-konton märker också effekten. Utfallet är enkelt: korrekt formaterad prishistorik som lagras automatiskt, plus ett tydligt veckomejl som lyfter meningsfulla sänkningar så att du kan agera samma dag.
Nedan ser du hur arbetsflödet skrapar priser, skriver en konsekvent post till MongoDB, utvärderar förändringar och skickar en Mailgun-sammanfattning som inte kräver att du behöver “tolka” något.
Så fungerar den här automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: MongoDB + Mailgun: prisfall mejlas pålitligt
flowchart LR
subgraph sg0["Flow 1"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Incoming Monitor Request"]
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Define Product Sources"]
n2@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split URLs", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Scrape Product Page", pos: "b", h: 48 }
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Combine Scraped Data"]
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Analyze Price Movement"]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/mongodb.svg' width='40' height='40' /></div><br/>Store to MongoDB"]
n7@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Significant Price Change?", pos: "b", h: 48 }
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Prepare Alert Email", pos: "b", h: 48 }
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/mailgun.svg' width='40' height='40' /></div><br/>Send Mailgun Alert"]
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Send Webhook Response"]
n2 --> n3
n6 --> n10
n9 --> n10
n8 --> n9
n3 --> n4
n4 --> n5
n5 --> n6
n5 --> n7
n1 --> n2
n0 --> n1
n7 --> n8
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 n7 decision
class n6 database
class n0,n10 api
class n1,n5 code
classDef customIcon fill:none,stroke:none
class n0,n1,n4,n5,n6,n9,n10 customIcon
Utmaningen: konkurrentpriser ändras (och du märker det för sent)
Om du säljer något i en konkurrensutsatt kategori rör sig priserna tyst och konstant. En rival rabatterar en produkt över en helg, buntar en annan, eller testar ett nytt “före/nu”-pris som ser litet ut men påverkar konverteringen. När du följer detta manuellt slutar det med att du tar stickprov slumpmässigt i stället för att bygga en riktig historik. Det handlar inte bara om förlorad tid. Det är missad tajming, rörig data och den mentala belastningen av att minnas vilka SKU:er du kollade förra veckan och vilka butikssidor som “alltid skapar fel”.
Det växer snabbt. Här är vad som vanligtvis fallerar.
- Priser kopieras in i kalkylblad med olika format, så jämförelser vecka för vecka kräver extra städning varje gång.
- Folk följer bara de “viktiga” SKU:erna, vilket i praktiken tyst övergår till att man följer det man råkade komma ihåg den dagen.
- En enda redesign av sajten eller en anti-bot-ändring kan slå ut din spårning i en vecka om ingen märker att skrapningen misslyckades.
- Även när du ser en sänkning finns ingen kontext, så du gissar fortfarande om den är meningsfull eller bara brus.
Lösningen: veckovis prisbevakning med MongoDB-historik + Mailgun-sammanfattningar
Det här arbetsflödet gör konkurrentbevakning av priser till ett repeterbart system. Det startar när en webhook anropas (vilket du kan trigga schemalagt), sedan bygger det en lista med produkter du bryr dig om (dina SKU:er och mål-URL:er). Varje produktsida skrapas med ScrapeGraphAI och resultaten slås ihop till ett enda korrekt formaterat dataset. Därefter utvärderar flödet prisrörelser mot det du sett tidigare och sparar senaste posten i MongoDB, så att du bygger historik utan att tänka på det. Om en sänkning ser betydande ut formaterar det ett lättläst mejl och skickar det via Mailgun till de personer som fattar beslut om pris och lager.
Flödet är rakt på sak. Trigga körningen, skrapa i små batcher, normalisera data, lagra och sammanfatta. Du avslutar veckan med en MongoDB-baserad prislogg och ett mejl som lyfter förändringarna som är värda att diskutera.
Vad som förändras: före vs. efter
| Det här elimineras | Effekt du kommer att se |
|---|---|
|
|
Verklig effekt
Säg att du bevakar 25 konkurrerande produktsidor över 5 sajter. Manuellt tar även en snabb kontroll ungefär 3 minuter per sida när du räknar in laddning, varianter och loggning — cirka 75 minuter i veckan, plus ytterligare 30 minuter för att göra anteckningarna delningsbara. Med det här arbetsflödet triggar du webhooken (cirka 2 minuter), skrapningen kör i batcher i bakgrunden och Mailgun skickar sammanfattningen automatiskt. Du får tillbaka nära 1–2 timmar varje vecka, och den stora vinsten är konsekvens.
Krav
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- ScrapeGraphAI community-node för att skrapa produktsidor på ett tillförlitligt sätt.
- MongoDB för korrekt formaterad, sökbar prishistorik.
- Mailgun för att leverera veckosammanfattningar i skala.
- ScrapeGraphAI API-nyckel (hämtas i din ScrapeGraphAI-kontos dashboard).
Kunskapsnivå: Medel. Du klistrar in API-nycklar, redigerar en produktlista i en kodnod och testar en webhook-körning.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Arbetsflödets flöde
En webhook startar allt. Du anropar arbetsflödet via en HTTP-endpoint (ofta från en schemaläggare), vilket betyder att du bestämmer när “veckovis” sker.
Din produktlista byggs. Ett litet kodsteg matar ut de SKU:er och URL:er du vill följa, så att du inte är beroende av att någon flik i ett kalkylblad definierar vad som är viktigt.
Skrapningen körs i batcher. Arbetsflödet delar upp URL:er i hanterbara chunkar, sedan extraherar ScrapeGraphAI pris (och relaterade detaljer som valuta eller tillgänglighet när det är konfigurerat). Resultaten slås ihop till ett enda dataset så att senare steg kan utvärdera helheten.
Förändringar utvärderas och lagras. Arbetsflödet beräknar skiftet, gör en upsert av en ny post i MongoDB och kontrollerar om förändringen är tillräckligt stor för att notifiera personer.
Mejlet skapas och skickas. En formaterad payload byggs, sedan levererar Mailgun veckosammanfattningen till din mottagarlista, och webhook-anropet får ett tydligt “Rapport skickad”-svar för loggning.
Du kan enkelt justera produktlistan och logiken för “betydande sänkning” så att den matchar din kategori och dina marginaler. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementation
Steg 1: Konfigurera webhook-triggern
Konfigurera startpunkten så att externa system kan skicka in produkt-URL:er och larmtrösklar.
- Lägg till noden Incoming Price Webhook som din trigger.
- Ställ in Path på
product-price-monitor. - Ställ in HTTP Method på
POST. - Ställ in Response Mode på
responseNodeför att skjuta upp svaret till Return Webhook Reply.
{"urls":[{"url":"https://example-ecom.com/productA","alertPercent":10}]} för att åsidosätta fallback-listan i nästa steg.Steg 2: Bygg och batcha listan med produkt-URL:er
Förbered listan med produkt-URL:er och dela upp dem i batchar för skrapning.
- Öppna Assemble Product List och granska JavaScript-koden som bygger listan, inklusive fallback-URL:erna och
alertPercent-värdena. - Bekräfta att koden returnerar ett objekt per URL genom att behålla raden
return urls.map(obj => ({ json: obj }));som den är. - Lägg till noden Batch URL Splitter och koppla den efter Assemble Product List.
urls-array kommer arbetsflödet att falla tillbaka till exempel-URL:erna, vilket kanske inte är de produkter ni avser.Steg 3: Skrapa produktdetaljer och aggregera resultat
Skrapa varje URL och kombinera resultaten till en enda aggregerad datamängd.
- Lägg till noden Extract Product Details och ställ in Website URL på
{{ $json.url }}. - Ställ in User Prompt på
Extract the product name, current price (number), currency code, and availability (boolean). Respond strictly as JSON with keys: name, price, currency, availability. - Lägg till noden Aggregate Scrape Results och ställ in Mode på
aggregate.
Inloggningsuppgifter krävs: Anslut era ScrapegraphAI-inloggningsuppgifter i Extract Product Details.
Steg 4: Utvärdera prisförändringar och grena logiken
Beräkna prisförändringar och dela upp arbetsflödet baserat på betydande prisfall.
- Öppna Evaluate Price Shift och behåll JavaScript-koden som beräknar
diffPercentochsignificantDrop. - Bekräfta att noden Check Significant Drop kontrollerar Boolean med Value 1 satt till
{{ $json.significantDrop }}och Operation satt tilltrue. - Notera den parallella exekveringen: Evaluate Price Shift skickar utdata till både Archive Price Record och Check Significant Drop parallellt.
previousPrice-logiken i Evaluate Price Shift med en riktig databassökning om ni vill ha korrekta historiska jämförelser.Steg 5: Lagra resultat och skicka aviseringar
Arkivera all prisdata och skicka e-postaviseringar när ett betydande prisfall upptäcks.
- I Archive Price Record, ställ in Operation på
insertoch Collection påproduct_prices. - Mappa fält enligt visningen: url till
{{ $json.url }}, name till{{ $json.name }}, price till{{ $json.price }}, currency till{{ $json.currency }}, timestamp till{{ new Date().toISOString() }}, diffPercent till{{ $json.diffPercent }}och availability till{{ $json.availability }}. - Konfigurera Compose Alert Email för att skapa fälten som används av mailern (till exempel subject, toEmail och en anpassad meddelandetext).
- I Dispatch Mailgun Notice, ställ in Subject på
{{ $json.subject }}, To Email på{{ $json.toEmail }}och From Email på[YOUR_EMAIL].
Inloggningsuppgifter krävs: Anslut era MongoDB-inloggningsuppgifter i Archive Price Record.
Inloggningsuppgifter krävs: Anslut era Mailgun-inloggningsuppgifter i Dispatch Mailgun Notice.
Steg 6: Svara webhook-anroparen
Returnera ett svar till den ursprungliga webhook-förfrågan efter lagring och hantering av aviseringar.
- Säkerställ att Return Webhook Reply är ansluten från både Archive Price Record och Dispatch Mailgun Notice så att den svarar oavsett gren.
- Lägg vid behov till svarsdata i Return Webhook Reply om ni vill ha en anpassad bekräftelse-payload.
Steg 7: Testa och aktivera ert arbetsflöde
Verifiera arbetsflödet med en manuell körning innan ni slår på det för produktionsanvändning.
- Klicka på Execute Workflow och skicka en POST-förfrågan till URL:en för Incoming Price Webhook med en exempel-
urls-array. - Bekräfta att körningen lyckas genom att kontrollera att Archive Price Record infogar dokument och att Dispatch Mailgun Notice skickar ett e-postmeddelande när
significantDropär true. - När allt är verifierat, slå på arbetsflödet till Active för att aktivera övervakning i realtid.
Saker att se upp med
- MongoDB-inloggningsuppgifter kan gå ut eller kräva specifika behörigheter. Om något slutar fungera, kontrollera först din Atlas IP-allowlist (eller dina nätverksregler för egen drift).
- Om du använder Wait-noder eller extern skrapning varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- Mailgun-mejl kan “skickas” men ändå inte landa. Kontrollera Mailgun-loggarna för studs/spamflaggor och bekräfta att din avsändardomän är verifierad med rätt DNS-poster.
Vanliga frågor
Cirka 20 minuter om dina API-nycklar och din domän är klara.
Ja, men du vill ha en person som är bekväm med att redigera produktlistan en gång. I vardagen handlar det bara om att köra enligt schema och läsa mejlet.
Ja. n8n har ett gratis alternativ för egen drift 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 med ScrapeGraphAI API-användning och Mailguns sändningskostnader (oftast en liten månadskostnad för typiska veckorapporter).
Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärd och hanterar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serveradministration.
Börja med kodnoden “Assemble Product List”, eftersom det är där dina SKU:er och URL:er finns. Justera sedan “Evaluate Price Shift” så att den matchar din definition av meningsfull förändring (för vissa kategorier är det 5 USD, för andra är det vilken rabatt som helst). Om du vill ha färre mejl, skärp villkoren i “Check Significant Drop” så att bara verkliga avvikelser går igenom. Du kan också bygga ut “Extract Product Details” för att fånga lagerstatus eller antal recensioner när de signalerna är viktiga.
Oftast är det ett domän- eller API-nyckelproblem. Skapa en ny Mailgun API-nyckel, uppdatera den i n8n och bekräfta att avsändardomänen är verifierad (inklusive DNS-poster). Om Mailgun accepterar begäran men leveransen misslyckas, kontrollera Mailgun-loggarna för studs eller spärrar. Säkerställ också att din “from”-adress matchar den verifierade domän du har satt upp.
Den hanterar utan problem dussintals produkter per körning för de flesta team.
Ofta, ja. Skrapning, batchning och logiken “lagra historik och jämför” blir snabbt klumpig (och dyr) i Zapier/Make när du går bortom några få SKU:er. n8n hanterar förgreningar och egen kod renare, så att du kan räkna ut trender och skriva strukturerade poster till MongoDB utan att kämpa mot verktyget. Alternativet för egen drift är också en stor grej om du planerar att köra detta ofta eller följa en större katalog. Zapier eller Make kan fortfarande fungera för ett enkelt tvåstegslarm, men de är inte lika smidiga för den här typen av datapipeline. Prata med en automationsexpert om du vill ha en snabb rekommendation utifrån din exakta volym och stack.
När detta väl rullar blir prisbevakning bakgrundsbrus på bästa möjliga sätt. Ditt team får en veckovis ögonblicksbild de kan lita på, och MongoDB bygger tyst historiken du kommer att önska att du hade senare.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.