Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

Google Flights + e-post: bästa prisrapporter snabbt

Rickard Andersson Partner, Nodenordic.se

Du öppnar ”bara en flik” för att kolla ett flygpris. Fyrtio minuter senare har du Kayak, Skyscanner, Expedia och Google Flights öppna, plus en halvfärdig anteckning du inte litar på.

Resekoordinatorer känner igen det här varje vecka. En företagare som försöker spara på sista minuten-resor känner det också. Och om du driver en liten byrå gör du troligen samma flygprisrapporter för flera personer. Den här automatiseringen för flygprisrapporter gör röran till ett felfritt mejl som du kan vidarebefordra.

Nedan ser du hur arbetsflödet fungerar, vad det skickar och vad du behöver för att köra det utan att bo i webbläsarflikar.

Så fungerar automatiseringen

Hela n8n-arbetsflödet, från trigger till slutresultat:

n8n Workflow Template: Google Flights + e-post: bästa prisrapporter snabbt

Problemet: prisjämförelse tar tid (och är lätt att göra fel)

Manuell jämförelse av flyg låter enkelt tills du gör det under tidspress. Du söker samma rutt på fyra sajter, försöker hålla datum konsekventa och inser sedan att en flik bytte till en annan flygplats, eller att ”bästa” priset hade en märklig mellanlandning du missade. Nu dubbelkollar du allt. Om du koordinerar resor för ett team blir fram-och-tillbaka ännu värre: ”Kan du testa enkel resa?” ”Hur är det med premium economy?” ”Kan du skicka länkar?” Det är inte svårt jobb. Det är bara konstant kontextväxling.

Friktionen byggs på. Här är var det oftast fallerar.

  • Att jämföra fyra bokningsplattformar innebär ofta att du upprepar samma sökning fyra gånger, vilket gör en snabb koll till ungefär en timme.
  • Det är lätt att tappa bort ”varför” bakom ett resultat, så du slutar med att klistra in skärmdumpar i stället för att skicka bokningsbara länkar.
  • Små inmatningsmissar händer (fel datumformat, blandade flygplatskoder) och de saboterar jämförelsen utan att du märker det direkt.
  • När förfrågan kommer in som ett informellt meddelande tappar du tid på att översätta den till strukturerade indata innan du ens börjar söka.

Lösningen: en förfrågan in, en rapport ut

Det här arbetsflödet tar en flygförfrågan på vanlig svenska, plockar ut exakta detaljer (avgång, destination, datum, restyp, passagerare, klass) och kontrollerar sedan flera plattformar parallellt. I stället för att du kör sökningar en i taget triggar n8n en uppsättning scrapers som hämtar priser från Kayak, Skyscanner, Expedia och Google Flights samtidigt. Resultaten konsolideras till en enda jämförelse, sorteras efter pris och sammanfattas så att det går att använda direkt. Till sist skickas en professionell e-postrapport till den som frågat, med bästa erbjudandet, en lista med toppresultat och bokningslänkar. Arbetsflödet returnerar även ett JSON-svar i realtid, vilket är praktiskt om du anropar det från en webbapp eller ett internt verktyg.

Arbetsflödet startar med en webhook-förfrågan (tänk: ett enkelt formulär, en app eller ett API-anrop). Därefter tolkar det meddelandet med ett tolkningssteg som förstår flexibla format som ”NYC till London 25 mars tur och retur hem 30 mars”. Efter det kör fyra scrapers samtidigt, arbetsflödet väljer vinnare och en e-postrapport skickas automatiskt.

Det du får: automatisering kontra resultat

Exempel: så här ser det ut

Säg att du hanterar resor för ett litet team och får 10 flygförfrågningar i veckan. Manuellt: att jämföra fyra plattformar i ungefär 10 minuter per plattform blir cirka 40 minuter per förfrågan, så du lägger runt 7 timmar i veckan i prisflikar. Med det här arbetsflödet skickar du in förfrågan en gång via webhook (cirka 2 minuter), väntar på scraping och konsolidering (ofta runt 5–10 minuter beroende på sajtens hastighet), och sedan landar mejlet klart att vidarebefordra. Det är i princip en arbetsdag tillbaka varje vecka.

Det du behöver

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
  • Send Email (SMTP) för att leverera prisrapporten.
  • En server med Python + Selenium för att köra scraper-skriptet.
  • SMTP-app-lösenord (hämtas i din e-postleverantörs säkerhetsinställningar, som Gmail App Passwords).

Svårighetsnivå: Medel. Du kopierar ett arbetsflöde till n8n, lägger till autentiseringsuppgifter och kör en Python-scraper på en server.

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

Så fungerar det

En webhook tar emot flygförfrågan. Din app, ditt formulär eller ett enkelt API-anrop skickar ett meddelande plus mottagarens e-post och namn.

Förfrågan tolkas och valideras. Arbetsflödet plockar ut rutt och datum från naturligt språk, omvandlar stadsnamn till flygplatskoder och returnerar ett tydligt felmeddelande om något kritiskt saknas.

Fyra plattformar kontrolleras parallellt. Scraping för Kayak, Skyscanner, Expedia och Google Flights körs samtidigt, så du slipper vänta på sökningar i följd. Om en källa fallerar kan arbetsflödet ändå slutföras med resterande resultat (ärligt talat spelar det roll i verkligheten).

Resultaten analyseras och mejlas. Arbetsflödet rankar priser, lyfter fram bästa erbjudandet och skickar ett felfritt sammanfattningsmejl med prisuppdelning och bokningslänkar. Det svarar också webhooken med JSON så att systemet som anropar kan visa ”klart” direkt.

Du kan enkelt ändra vilka plattformar som kontrolleras för att lägga till fler sajter eller ta bort en som är opålitlig för dina rutter. Se hela implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: konfigurera webhook-triggern

Konfigurera den inkommande webhooken för att ta emot förfrågningar om flygsökningar och skicka dem vidare till tolkningslogiken.

  1. Lägg till och öppna Inbound Flight Webhook.
  2. Ställ in Pathflight-price-compare.
  3. Ställ in HTTP MethodPOST.
  4. Ställ in Response ModeresponseNode.
  5. Låt Allowed Origins vara * om ni vill att valfri klient ska kunna anropa den här endpointen.

Steg 2: koppla tolkning och validering av prisförfrågan

Tolka den inkommande förfrågan och förgrena baserat på om den är redo för insamling av priser.

  1. Öppna Interpret Flight Query och bekräfta att JavaScript-parsern är inklistrad i JS Code för att extrahera origin, destination, datum och användarens e-post.
  2. Koppla Inbound Flight WebhookInterpret Flight Query.
  3. Öppna Validate Request Status och ställ in villkoret att jämföra Value 1 som {{$json.status}} med Value 2 som ready.
  4. Koppla Interpret Flight QueryValidate Request Status.
  5. Koppla false-utgången från Validate Request Status till Return Error Response för saknade uppgifter eller hälsningsförfrågningar.

Validate Request Status skickar utdata till Gather Kayak Fares, Collect Skyscanner Prices, Retrieve Expedia Rates och Pull Google Flights Data parallellt.

Steg 3: anslut prisdatakällor via SSH

Varje prisdatakälla kör en Python-scraper på er server via SSH. Dessa fyra noder kör samtidigt.

  1. Öppna Gather Kayak Fares och ställ in Command=python3 /home/oneclick-server2/flight_scraper.py {{ $json.origin }} {{ $json.destination }} {{ $json.departureDateISO }} {{ $json.returnDateISO || '' }} {{ $json.tripType }} {{ $json.passengers }} {{ $json.cabinClass }} kayak.
  2. Ställ in CWD/home/oneclick-server2/ och AuthenticationprivateKey.
  3. Inloggningsuppgifter krävs: Anslut era sshPrivateKey-inloggningsuppgifter för Gather Kayak Fares.
  4. Upprepa samma setup för Collect Skyscanner Prices, Retrieve Expedia Rates och Pull Google Flights Data med respektive kommando som slutar på skyscanner, expedia och googleflights.
  5. Inloggningsuppgifter krävs: Anslut era sshPrivateKey-inloggningsuppgifter för Collect Skyscanner Prices, Retrieve Expedia Rates och Pull Google Flights Data.

Gather Kayak Fares, Collect Skyscanner Prices, Retrieve Expedia Rates och Pull Google Flights Data kopplas alla till Consolidate Fare Analysis parallellt.

⚠️ Vanlig fallgrop: SSH-kommandona förväntar sig Python-scriptet på /home/oneclick-server2/flight_scraper.py. Säkerställ att scriptet finns och är körbart på målservern.

Steg 4: aggregera resultat och skapa e-postmeddelandet

Sammanställ alla plattformsutdata, beräkna bästa erbjudanden och formatera e-postrapporten.

  1. Öppna Consolidate Fare Analysis och behåll aggregeringsscriptet i JS Code för att tolka priser och beräkna bestDeal, avgPrice och savings.
  2. Koppla alla SSH-noder till Consolidate Fare Analysis.
  3. Öppna Compose Email Summary och behåll formatteringsscriptet i JS Code för att generera subject och text.
  4. Koppla Consolidate Fare AnalysisCompose Email Summary.

Om er scraper returnerar värden utan det förväntade formatet airline|price|duration|stops|departure|arrival|url, uppdatera parsern i Consolidate Fare Analysis så att den matchar er utdata.

Steg 5: konfigurera e-postleverans och webhook-svar

Skicka den formaterade rapporten och returnera ett JSON-svar till den som anropar webhooken.

  1. Öppna Dispatch Email Report och ställ in Text{{$json.text}}.
  2. Ställ in Subject{{$json.subject}} och To Email{{$json.userEmail}}.
  3. Ställ in From Email[YOUR_EMAIL] och Email Formattext.
  4. Inloggningsuppgifter krävs: Anslut era smtp-inloggningsuppgifter för Dispatch Email Report.
  5. Koppla Compose Email SummaryDispatch Email ReportReturn Success Response.
  6. Öppna Return Success Response och bekräfta att Response Body använder JSON-uttrycket: {{ { "success": true, "message": "Flight comparison sent to " + $json.userEmail, "route": $json.origin + " → " + $json.destination, "bestPrice": $json.bestDeal.price, "airline": $json.bestDeal.airline, "totalResults": $json.totalResults } }}.
  7. Öppna Return Error Response och bekräfta JSON-felkroppen: {{ { "success": false, "message": $json.response || "Request failed", "status": $json.status } }}.

Steg 6: testa och aktivera ert workflow

Verifiera att webhooken accepterar förfrågningar, kör prisinsamling och skickar e-post innan ni aktiverar för produktion.

  1. Klicka på Execute Workflow och skicka en test-POST-förfrågan till URL:en för Inbound Flight Webhook med en body som {"message":"Flight from New York to London on 25th March, one-way","email":"[email protected]"}.
  2. Bekräfta att Validate Request Status routar till de fyra SSH-noderna parallellt och att Consolidate Fare Analysis genererar resultat.
  3. Kontrollera er inkorg efter e-postmeddelandet från Dispatch Email Report och verifiera att ämnesrad och brödtext är ifyllda.
  4. Granska webhook-svaret från Return Success Response för "success": true och en ifylld bestPrice.
  5. Slå på workflowet till Active när testningen är lyckad.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Autentiseringsuppgifter för Send Email (SMTP) kan gå ut eller kräva särskilda inställningar. Om mejl slutar skickas, kontrollera din SMTP-credential i n8n och bekräfta att du använder ett app-lösenord (Gmail-användare fastnar ofta här).
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om efterföljande noder fallerar på tomma svar.
  • Scraping med Python/Selenium är känsligt för sajtändringar och serverkonfiguration. När en plattform börjar returnera ”inga flyg”, testa scrapern direkt på din server och bekräfta att Chrome/ChromeDriver-versionerna fortfarande matchar.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen för flygprisrapporter?

Räkna med cirka 60–90 minuter om du redan har en server för scrapern.

Behöver jag programmeringskunskaper för att automatisera flygprisrapporter?

Nej, ingen kodning krävs för att köra arbetsflödet i n8n. Du kan vilja vara bekväm med att göra mindre ändringar i ett Python-skript om en bokningssajt ändrar sin layout.

Är n8n gratis att använda för det här arbetsflödet för flygprisrapporter?

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 serverkostnaden för att köra scrapern (ofta runt 10–30 USD/månad på en liten VPS).

Var kan jag hosta n8n för att köra den här automatiseringen?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller self-hosting på en VPS. För self-hosting är Hostinger VPS prisvärt och hanterar n8n bra. Self-hosting ger dig obegränsade körningar men kräver grundläggande serveradministration.

Kan jag anpassa den här automatiseringen för flygprisrapporter för Slack-aviseringar i stället för e-post?

Ja, men då ändrar du slutleveransen. Behåll samma scraping och logik för ”Consolidate Fare Analysis”, och byt sedan steget ”Dispatch Email Report” mot en Slack-meddelandenod, eller skicka båda så att den som frågat får e-post medan teamet får insyn. Vanliga anpassningar är att lägga till fler plattformar, ändra mejlet till HTML och logga varje sökning till Google Sheets för uppföljning.

Varför fallerar min Send Email-anslutning i det här arbetsflödet?

Oftast är det ett autentiseringsproblem, särskilt med Gmail. Skapa ett nytt app-lösenord, uppdatera SMTP-credential i n8n och bekräfta att din leverantörs port/TLS-inställningar matchar vad credentialen förväntar sig. Om det fortfarande fallerar, kontrollera n8n:s körningsloggar efter fel som ”relay” eller ”unauthorized”, eftersom de pekar på blockering hos leverantören.

Hur många förfrågningar klarar den här automatiseringen för flygprisrapporter?

Om du self-hostar finns ingen fast körningsgräns; det beror främst på din server och hur ofta scrapers timear ut. På n8n Cloud är den praktiska gränsen kopplad till dina månatliga körningar, och scraping-tunga arbetsflöden kan använda mer körtid per förfrågan. I verklig användning börjar team oftast med några dussin förfrågningar per dag utan problem och skalar sedan genom att lägga till en kraftigare VPS och strama åt timeouts.

Är den här automatiseringen för flygprisrapporter bättre än att använda Zapier eller Make?

Ofta, ja. Zapier och Make är bra för enkla app-till-app-kopplingar, men det här arbetsflödet bygger på grenlogik, parallell scraping och anpassad bearbetning som är enklare att styra i n8n. En annan faktor är kostnad: när du börjar köra många sökningar kan uppgiftsbaserad prissättning bli irriterande. Du kan dessutom self-hosta n8n, vilket ändrar kalkylen helt. Vill du ha hjälp att välja eller anpassa det här arbetsflödet till din stack, prata med en automationsexpert.

Du sätter upp det här en gång, och sedan slutar prisjämförelser att stjäla dina morgnar. Arbetsflödet tar hand om de repetitiva kontrollerna, och du kan fokusera på själva beslutet.

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