Du ska inte behöva öppna tre flikar, kopiera priser till ett kalkylark och sedan skriva om samma ”här är dina alternativ”-mejl om och om igen. Men så tas hotellofferter oftast fram. Och det är därför ”snabboffert”-förfrågningar fortfarande tar en evighet.
Resebyråer känner av pressen först. Ett hotellsäljteam som gör konkurrenskontroller dras också in. Till och med en stressad driftschef fastnar med administrationen. Den här automatiseringen av hotellofferter gör en vanlig förfrågan på enkel svenska till ett prisjämförelsemejl som är klart att skicka, och en korrekt formaterad rad i Google Sheets.
Du får se vad det här arbetsflödet gör, vad du behöver för att köra det och hur delarna hänger ihop så att du kan driftsätta det utan att behöva passa varje offert.
Så fungerar automatiseringen
Här är det kompletta arbetsflödet som du kommer att sätta upp:
n8n Workflow Template: Google Sheets + Gmail: hotellofferter klara
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/>Webhook - Receive 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/>Parse & Validate Request"]
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check If Ready", pos: "b", h: 48 }
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/>Scrape Booking.com"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>Scrape Agoda"]
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/>Scrape Expedia"]
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/>Aggregate & Compare"]
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/code.svg' width='40' height='40' /></div><br/>Format Email Report"]
n8@{ icon: "mdi:message-outline", form: "rounded", label: "Send Email Report", 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/webhook.dark.svg' width='40' height='40' /></div><br/>Webhook Response (Success)"]
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/>Webhook Response (Info)"]
n11@{ icon: "mdi:swap-vertical", form: "rounded", label: "Log Analytics", pos: "b", h: 48 }
n12@{ icon: "mdi:database", form: "rounded", label: "Save to Google Sheets", pos: "b", h: 48 }
n4 --> n6
n11 --> n12
n2 --> n3
n2 --> n4
n2 --> n5
n2 --> n10
n5 --> n6
n8 --> n9
n3 --> n6
n6 --> n7
n7 --> n8
n7 --> n11
n12 --> n10
n1 --> n2
n0 --> n1
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 n2 decision
class n12 database
class n0,n3,n4,n5,n9,n10 api
class n1,n6,n7 code
classDef customIcon fill:none,stroke:none
class n0,n1,n3,n4,n5,n6,n7,n9,n10 customIcon
Varför det här är viktigt: hotellofferter tar för lång tid
Prisjämförelser låter enkla tills du gör dem i volym. Du söker på Booking, sedan Agoda, sedan Expedia. Du försöker matcha datum, rumstyper och avbokningsvillkor medan någon väntar på ett svar. Sedan klistrar du in allt i ett kalkylark, dubbelkollar valutor och oroar dig ändå för att du missade det ”riktiga” bästa priset eftersom sidan uppdaterades eller tillgängligheten ändrades. Ärligt talat är den största kostnaden inte bara tid. Det är den mentala belastningen av att göra noggrant arbete i en stökig miljö där små misstag ser oprofessionella ut.
Friktionen byggs på. Här är var det vanligtvis fallerar.
- Manuell kontroll av tre bokningsplattformar kan ta runt 30 minuter per förfrågan när du räknar in omförsök och matchning av rumsdetaljer.
- Priser kopieras fel eller klistras in på fel rad, vilket gör att du skickar en offert du inte kan stå för.
- ”Offertmejlet” blir en liten skrivuppgift varje gång, så ledtiden beror på vem som är tillgänglig.
- Utan konsekvent loggning kan du inte se mönster som vilka städer som sticker iväg, vilka hotell som efterfrågas eller vilken plattform som vinner oftast.
Vad du bygger: omedelbara hotellprisrapporter från flera plattformar
Det här arbetsflödet börjar med en enkel webhook-förfrågan, skriven som en människa skulle skriva den (”Hyatt Singapore 10 mars till 13 mars”). Ett AI-steg tolkar meddelandet till strukturerade fält (hotell, stad, incheckning, utcheckning) och validerar grunderna så att du inte kör skrapningar på trasiga indata. Därefter frågar n8n dina skrapningsendpoints för Booking, Agoda och Expedia parallellt via HTTP Request-noder, vilket betyder att du inte väntar på att plattform A ska bli klar innan plattform B ens börjar. Sedan slår arbetsflödet ihop resultaten, jämför tillgänglighet och pris och väljer bästa erbjudandet samtidigt som övriga alternativ behålls för sammanhang. Till sist formaterar det en snygg HTML-rapport och skickar den via Gmail/SMTP, och loggar sökdetaljerna till Google Sheets för analys.
Arbetsflödet startar när en användare skickar ett meddelande och en e-postadress till din webhook. Det omvandlar meddelandet till korrekt formaterad data, hämtar priser från flera plattformar samtidigt och skickar en rapport som är redo att vidarebefordra. Google Sheets sparar diskret en historik så att du kan mäta efterfrågan och utfall senare.
Det här bygger du
| Vad som automatiseras | Vad du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du hanterar 10 offertförfrågningar på hotell under en dag. Manuellt tar kontroll av Booking, Agoda och Expedia plus att skriva mejlet ungefär 30 minuter per förfrågan, alltså cirka 5 timmar. Med det här arbetsflödet är ”mänsklig tid” mest själva förfrågan (cirka 1 minut) och en snabb genomläsning av mejlet innan det går iväg. Även om skrapning och formatering tar några minuter i bakgrunden får du ändå tillbaka ungefär 4 timmar en vanlig dag.
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 analysloggning och dashboards.
- Gmail/SMTP för att skicka HTML-rapportmejlet.
- Skrapnings-API (din egen endpoint eller en nyckel till en skrapningstjänst).
Kunskapsnivå: Medel. Du skriver inte mycket kod, men du kommer att koppla in inloggningsuppgifter och peka HTTP-noder mot en skrapningsendpoint.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
En användare skickar en förfrågan till din webhook. De skickar ett meddelande som ”Hilton Dubai 20 dec till 23 dec” tillsammans med en e-postadress. Webhooken tar emot det direkt, vilket också gör det enkelt att koppla på ett formulär, en chattbot eller ert eget interna verktyg senare.
Meddelandet tolkas och struktureras. En AI-agent (med en OpenAI-chatmodell) plockar ut hotellnamn, stad och datumintervall och kontrollerar sedan om något saknas. Om något är oklart kan arbetsflödet svara snyggt i stället för att skrapa skräpindata och slösa API-anrop.
Priser hämtas parallellt och jämförs. HTTP Request-noder anropar dina skrapningsendpoints för Booking/Agoda/Expedia samtidigt, sedan slår n8n ihop resultaten och använder enkel logik (If/Merge/Set) för att avgöra bästa pris, fånga URL:er och räkna hur många giltiga resultat som kom tillbaka.
En snygg rapport skickas och en post sparas. Arbetsflödet genererar ett HTML-mejl som känns genomtänkt, inte ”systemgenererat”, och skickar det via Gmail/SMTP. Samtidigt loggar det nyckelfält (tidsstämpel, sökning, hotell, datum, bästa pris, plattform, användarens e-post) i ett Google Sheet så att du kan följa användning och utfall.
Du kan enkelt ändra vilka plattformar som kontrolleras för att lägga till en fjärde sajt, eller ändra e-postlayouten så att den matchar ert varumärke. Se hela implementationsguiden nedan för anpassningsalternativ.
Felsökningstips
- Inloggningsuppgifter för Google Sheets kan löpa ut eller kräva specifika behörigheter. Om det strular, kontrollera n8n-skärmen Credentials och bekräfta att det anslutna Google-kontot fortfarande har åtkomst till rätt Sheet-ID.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
- Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att sitta och redigera utdata i all evighet.
Snabba svar
Cirka en timme om din skrapningsendpoint redan fungerar.
Nej. Du kopplar in inloggningsuppgifter och klistrar in URL:erna till ditt skrapnings-API.
Ja. n8n har ett gratis self-hosted-alternativ och en gratis provperiod på n8n Cloud. Cloud-planer börjar på $20/månad för högre volymer. Du behöver också räkna med kostnader för skrapnings-API (till exempel börjar ScraperAPI runt $49/månad) och OpenAI API-användning, vilket vanligtvis är några cent per förfrågan.
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 serverhantering.
Ja, och det är oftast bara duplicering och små justeringar. Du kan lägga till en till plattform genom att duplicera en befintlig HTTP Request-”scrape”-nod, ändra plattformsparametern/URL:en och sedan inkludera den i jämförelselogiken i Merge/Aggregate. De flesta team justerar också steget ”Format Email Report” för att lägga till en logotyp, annan formulering eller extra fält som avbokningspolicy och om frukost ingår.
Oftast är det utgången OAuth-åtkomst eller att Sheet-ID:t pekar på en fil som ditt anslutna Google-konto inte kan redigera. Anslut Google Sheets-credentialen på nytt i n8n och bekräfta sedan att fliken ”Analytics” finns med förväntade rubriker. Om du nyligen bytte namn på arket eller flyttade det till en delad enhet kan behörigheter ändras tyst och arbetsflödet börjar ge fel.
Om du self-hostar finns ingen gräns för antal körningar (din server och dina skrapningsbegränsningar är den verkliga flaskhalsen). På n8n Cloud passar Starter-planen bra för låg till medelhög volym, och du kan skala upp när förfrågningarna ökar. I praktiken beror genomströmningen på skrapningstimeouts; många team hanterar utan problem dussintals offertförfrågningar per dag när caching väl är på plats.
Ofta, ja, eftersom det här arbetsflödet behöver förgreningslogik, parallella förfrågningar och robust felhantering när en plattform fallerar. n8n gör den typen av flöde enklare att uttrycka utan att det blir en labyrint av separata Zaps/scenarier. Self-hosting-alternativet är också viktigt när du inte vill att prissättning per uppgift ska straffa dig vid volym. Zapier eller Make kan fortfarande vara bra om du bara vill ha en enkel ”formulärinskick → skicka mejl”-setup och du inte skrapar flera källor. Om du är osäker, prata med en automationsexpert så kartlägger vi det utifrån din verkliga användning.
När detta är live slutar hotellofferter vara en daglig brandkårsutryckning och blir en enkel tjänst du kan leverera på beställning. Arbetsflödet tar hand om det repetitiva, och du kan lägga fokus på samtalen som faktiskt stänger bokningar.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.