Du öppnar Booking.com, sedan Expedia, sedan Agoda. Tio flikar senare kopierar du priser till ett dokument och hoppas att du inte blandade ihop datum eller rumstyper.
Hotellprisjämförelser slår hårdast mot resebyråer, helt ärligt. Men operativa ansvariga som bokar teamresor och konsulter som gör kundresplaner dras in i samma röra. Det här flödet gör spridda sökningar till ett enda tydligt mejl som du kan agera på.
Du får se hur automatiseringen hämtar priser från flera plattformar, slår ihop dem och mejlar en enkel sammanfattning så att du kan lämna offert snabbare och med färre misstag.
Så fungerar den här automatiseringen
Hela n8n-flödet, från trigger till slutresultat:
n8n Workflow Template: Booking.com + Gmail: jämför hotellpriser via mejl
flowchart LR
subgraph sg0["Form Submission Flow"]
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/code.svg' width='40' height='40' /></div><br/>Normalize Request Payload"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Retrieve Booking Results"]
n2["<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/>Interpret Booking Data"]
n3["<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/httprequest.dark.svg' width='40' height='40' /></div><br/>Retrieve Agoda Results"]
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/code.svg' width='40' height='40' /></div><br/>Interpret Agoda 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Retrieve Expedia Results"]
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/code.svg' width='40' height='40' /></div><br/>Interpret Expedia Data"]
n7["<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/form.svg' width='40' height='40' /></div><br/>Form Submission Trigger"]
n8["<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 Price Feeds"]
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/code.svg' width='40' height='40' /></div><br/>Assemble Email Summary"]
n10@{ icon: "mdi:message-outline", form: "rounded", label: "Dispatch Email Notice", pos: "b", h: 48 }
n8 --> n9
n3 --> n4
n5 --> n6
n4 --> n8
n9 --> n10
n7 --> n0
n6 --> n8
n1 --> n2
n2 --> n8
n0 --> n1
n0 --> n3
n0 --> n5
n0 --> 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 trigger
class n1,n3,n5 api
class n0,n2,n4,n6,n9 code
classDef customIcon fill:none,stroke:none
class n0,n1,n2,n3,n4,n5,n6,n7,n8,n9 customIcon
Problemet: hotellpriser är utspridda och offertarbetet är skört
Att jämföra hotellpriser låter enkelt tills du gör det hela dagen. Varje sajt visar priser på olika sätt, skatter och avgifter dyker upp sent och en liten datummiss förstör hela jämförelsen. Sedan kommer copy-paste-maratonet: samla priser, betyg, avbokningsvillkor och notiser som ”frukost ingår” på flera plattformar. När du väl skickar en offert kan priserna ha ändrats och du börjar ifrågasätta ditt eget kalkylark. Det värsta är den mentala belastningen. Du lägger fokus på avskrift, inte på att rådgiva kunden eller planera resan.
Det blir mycket, snabbt. Här är var det oftast fallerar i verkligheten.
- Du hoppar mellan 3+ bokningssajter per hotell, vilket gör en förfrågan till ett miniprojekt.
- Manuell kopiering av priser bjuder in till misstag, särskilt när du jämför olika avbokningsregler eller rumsalternativ.
- Det finns ingen konsekvent logg över vad du kontrollerade, så när en kund frågar ”varför det här alternativet?” är du tillbaka i flikarna.
- Befintliga ”schemaläggare” eller enkla e-postverktyg hjälper inte, eftersom det verkliga jobbet är att samla in och normalisera prisdata.
Lösningen: automatiserade hotellpriskontroller på flera sajter, mejlade till dig
Det här n8n-flödet automatiserar exakt den del av hotellresearchen som stjäl din dag: att hämta priser från flera bokningsplattformar, lägga dem i linje och skicka en läsbar sammanfattning till dig i Gmail. Det startar när du skickar in ett enkelt formulär med dina sökdetaljer (destination, datum, gäster, rum och valfritt hotellnamn). n8n rensar och förbereder indata, anropar Scrape.do för att hämta resultat från Booking.com, Agoda och Expedia, och tolkar sedan svaren till strukturerade fält som pris, betyg, recensioner och viktiga bekvämligheter. Därefter slår det ihop de tre ”flödena” till ett jämförelseunderlag, beräknar bästa pris och besparing och bygger ett mejl som är lätt att vidarebefordra till en kund eller lägga in i en offert. En förfrågan in. Ett mejl ut.
Flödet börjar med en formulärinsändning och kör sedan tre parallella uppslag via Scrape.do för varje plattform. Till sist kombineras allt och en enda Gmail-sammanfattning skickas, så att du kan fatta beslut snabbt (och ha en spårbar historik i inkorgen).
Det du får: automatisering vs. resultat
| Vad det här flödet automatiserar | Resultat du får |
|---|---|
|
|
Exempel: så här ser det ut
Säg att du behöver offerera 5 hotell för en vistelse på 3 nätter och att du kontrollerar 3 plattformar. Manuell hantering tar kanske 10 minuter per plattform och hotell när du räknar in laddning, filter och kopiering av detaljer, alltså runt 2,5 timmar i flikar. Med det här flödet skickar du in ett formulär (cirka 2 minuter) och väntar sedan på att hämtningarna blir klara (ofta under en minut per hotell, men batchning kan göra det längre). Du får en Gmail-sammanfattning som du kan vidarebefordra direkt, och du är tillbaka i faktisk reseplanering.
Det här behöver du
- n8n-instans (testa n8n Cloud gratis)
- Self-hosting-alternativ om du föredrar det (Hostinger fungerar bra)
- Scrape.do för att kunna skrapa bokningssajter på ett stabilt sätt
- Gmail för att skicka sammanfattningsmejlet
- Scrape.do API-token (hämtas i din Scrape.do-dashboard)
Svårighetsnivå: Mellan. Du kopplar konton, lägger in en API-token och kan behöva justera selektorer om bokningssidor ändrar utseende.
Vill du inte sätta upp detta själv? Prata med en automatiseringsexpert (gratis konsultation i 15 minuter).
Så fungerar det
Formulärinsändningen triggar förfrågan. Du anger destination, datum och gästuppgifter en gång. Den inmatningen blir den enda sanningskällan för alla jämförelser.
Flödet normaliserar och förbereder sökningen. n8n rensar och förbereder payloaden så att varje plattform får samma formaterade parametrar, vilket hjälper dig att undvika att jämföra äpplen med päron.
Scrape.do hämtar resultat från varje plattform. Tre HTTP-anrop körs för att hämta data från Booking.com, Agoda och Expedia, och sedan tolkar kodsteg varje svar till strukturerade fält som pris, betyg, recensioner och viktiga flaggor (gratis avbokning, frukost och så vidare).
Allt slås ihop och mejlas. n8n kombinerar plattformsflödena, sätter ihop en läsbar jämförelse och skickar den via Gmail så att du kan vidarebefordra den eller kopiera in den i en offert.
Du kan enkelt ändra vilka plattformar som kontrolleras och lägga till ytterligare en sajt utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera formulärtriggern
Skapa intagsformuläret som startar workflowet och fångar detaljer för hotellsökningen.
- Lägg till och öppna Form Submission Trigger.
- Ställ in Form Title till
Best Hotel Prices. - Konfigurera Form Fields med etiketterna
Hotel Name,Check-in Date,Check-out Date,CityochEmail, alla obligatoriska. - Klicka på Listen for test event när ni är redo att validera formulärinskick.
Steg 2: Normalisera inkommande payload
Standardisera formulärdata så att alla efterföljande noder får konsekventa fält.
- Öppna Normalize Request Payload och behåll den angivna JavaScript Code som den är för att mappa formulärfält till
hotelName,city,checkIn,checkOut,Email,checkInISOochcheckOutISO. - Bekräfta att standardvärden som
2024-12-25och2024-12-28stämmer med era testbehov. - Notera parallellflödet: Normalize Request Payload skickar utdata till Retrieve Booking Results, Retrieve Agoda Results, Retrieve Expedia Results och Combine Price Feeds parallellt.
{{$vars.SCRAPEDO_TOKEN}}. Säkerställ att ni har satt denna miljövariabel i n8n, annars kommer HTTP-anropen att misslyckas.Steg 3: Konfigurera grenar för prisinhämtning och tolkning
Sätt upp de tre scrape-anropen och deras respektive tolkningslogik. Dessa noder körs parallellt efter normalisering.
- I Retrieve Booking Results, ställ in URL till
=https://api.scrape.dooch säkerställ att Send Query är aktiverat. - I Retrieve Booking Results, bekräfta att query-parametrarna inkluderar
token={{$vars.SCRAPEDO_TOKEN}}ochurl==https://www.booking.com/searchresults.html?ss={{encodeURIComponent($json.hotelName + ' ' + $json.city)}}&checkin={{$json.checkInISO}}&checkout={{$json.checkOutISO}}. - I Retrieve Agoda Results och Retrieve Expedia Results, behåll URL inställd på
=https://api.scrape.dooch verifiera att respektiveurl-parameter använder rätt uttryck för stad, datum och hotellnamn. - Öppna Interpret Booking Data, Interpret Agoda Data och Interpret Expedia Data och behåll de angivna tolkningsskripten som mappar
platform,priceoch bevararhotelName,city,checkIn,checkOutochEmail.
Steg 4: Slå ihop och bygg e-postinnehållet
Kombinera de parallella resultaten och bygg den slutliga e-postsammanfattningen.
- Öppna Combine Price Feeds och ställ in Number of Inputs till
4för att ta emot de tre tolkade flödena plus den direkta payloaden. - Verifiera att Interpret Booking Data, Interpret Agoda Data och Interpret Expedia Data var och en är anslutna till Combine Price Feeds.
- Öppna Assemble Email Summary och behåll det befintliga skriptet som bygger
emailBody, sorterar priser och sätteruserEmail.
Steg 5: Konfigurera e-postutskicket
Skicka den slutliga prissammanfattningen via Gmail.
- Öppna Dispatch Email Notice.
- Ställ in Send To till
={{ $json.userEmail }}. - Ställ in Message till
={{ $json.emailBody }}. - Ställ in Subject till
=Otel Fiyatları - {{ $json.hotelName }} ({{ $json.city }}). - Credential Required: Anslut era Gmail-inloggningsuppgifter.
Steg 6: Testa och aktivera ert workflow
Validera hela körningen och slå på workflowet för användning i produktion.
- Använd Form Submission Trigger för att skicka in en testpost med en giltig e-postadress.
- Bekräfta att Normalize Request Payload förgrenar till alla tre hämtningsnoder och Combine Price Feeds parallellt.
- Kontrollera Assemble Email Summary-utdata för en ifylld
emailBodyoch ettpriceCountstörre än 0. - Verifiera att Dispatch Email Notice skickar e-postmeddelandet till den inskickade adressen.
- Växla workflowet till Active när testet är lyckat.
Vanliga fallgropar
- Scrape.do-inloggning kan löpa ut eller så kan du få slut på krediter. Om något slutar fungera, kontrollera först token och användning i din Scrape.do-dashboard.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Gmail-behörigheter kan fälla flödet utan att det märks. Om mejl slutar skickas, kontrollera den anslutna Google-kontot i n8n:s behörighetsinställningar och bekräfta att det fortfarande har rätt att skicka.
Vanliga frågor
Cirka 30 minuter om dina Scrape.do- och Gmail-konton är klara.
Nej. Du kopplar främst behörigheter och klistrar in din Scrape.do-token. Du kan behöva göra mindre justeringar senare om en sajt ändrar layout.
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 med Scrape.do API-användning, eftersom varje hotellkontroll gör flera skrapförfrågningar.
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 kör n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det är en vanlig uppgradering. Du kan lägga till en plattform genom att duplicera ett befintligt HTTP Request + kodblock för ”Tolkar data” (till exempel kopiera Agoda-spåret) och sedan inkludera det i Merge-steget (”Combine Price Feeds”). Vanliga justeringar är att lägga till Hotels.com eller Trivago, filtrera på gratis avbokning och skicka larm när ett pris går under en målnivå.
Oftast beror det på en ogiltig token eller att du har nått din Scrape.do-kreditgräns. Kontrollera Scrape.do-dashboarden, skapa en ny token vid behov och uppdatera den i n8n. Om du får tom hotell-data, prova att slå på JavaScript-rendering (render=true) eftersom vissa bokningssajter laddar priser dynamiskt. Håll också koll på rate limiting när du kör större batchar.
Den klarar många, men begränsas av dina Scrape.do-krediter och hur aggressivt du batchar förfrågningar. Flödesbeskrivningen nämner att 10 hotell kan ta cirka 10 minuter och att 50+ hotell kan ta upp mot en timme beroende på batchning och API-gränser. Om du self-hostar n8n träffar du inga körningsbegränsningar, men du måste fortfarande respektera rate limits så att skrapningarna inte misslyckas.
Ofta, ja, eftersom det här inte är en enkel koppling ”app A till app B”. Du hämtar tre röriga datakällor, normaliserar dem, slår ihop dem och genererar ett korrekt formaterat utdata, vilket är där n8n brukar vara starkt. Self-hosting innebär också att du inte betalar per litet steg på samma sätt som många team till slut gör i Zapier. Däremot: om du bara vill ha ett enkelt mejl som triggas av ett formulär utan skrapning kan Zapier eller Make kännas snabbare. Om du är osäker, prata med en automatiseringsexpert och få en rekommendation baserat på din volym och hur ofta du offererar på nytt.
När detta väl rullar blir offertprocessen lugnare. Flödet tar hand om det repetitiva jämförelsearbetet, och du kan lägga fokus på de beslut som faktiskt spelar roll.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.