Att hitta flygpriser blir snabbt absurt. Du öppnar Skyscanner, sedan ett flygbolags webbplats, sedan en till, och på något sätt är du ändå inte säker på att du hittade det billigaste priset.
Den här automatiseringen för flygpriser träffar upptagna grundare som planerar resor i sista minuten, marknadschefer som bokar teamresor och byråägare som jonglerar kundbesök. I stället för att hoppa mellan flikar får du ett mejl som visar bästa dealen först.
Flödet hämtar livepriser från flera bokningskällor, sorterar dem efter kostnad och mejlar dig en strukturerad sammanfattning. Du får se vad det gör, vad du behöver och hur du anpassar det efter dina rutter och datum.
Utmaningen: att jämföra priser mellan sajter utan att slösa bort hela dagen
Manuell prisjämförelse känns enkelt tills du gör det mer än en gång. Du söker samma rutt på Skyscanner och ”dubbelkollar” sedan Akasa, Air India, IndiGo och kanske två sajter till, eftersom priserna rör sig och du inte litar på en enda källa. Under tiden ändras datum, filter återställs och du tappar bort vilken flik som hade det vettiga alternativet. Det handlar inte bara om tid. Det handlar om fokus. Och ärligt talat: det är den delen du inte får tillbaka.
Det drar iväg snabbt. Här är var det faller isär i verkligheten:
- Du upprepar samma sökparametrar på flera sajter, och ett enda stavfel kan slå sönder jämförelsen.
- Priser uppdateras vid olika tidpunkter, så din skärmdump av ”bästa dealen” är inaktuell fem minuter senare.
- Det är lätt att missa ett billigare flyg eftersom du blir avbruten mitt i sökningen och aldrig kommer tillbaka.
- Det finns ingen konsekvent sammanfattningsvy, vilket gör att varje beslut känns som gissningslek.
Så fungerar den här automatiseringen
Se hur detta löser problemet:
n8n Workflow Template: Skyscanner till Gmail: billigaste flygpriser via e-post
flowchart LR
subgraph sg0["Set Schedule 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/httprequest.dark.svg' width='40' height='40' /></div><br/>Skyscanner API"]
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/>Air India API"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>IndiGo API"]
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/>Akasa Air API"]
n4@{ icon: "mdi:play-circle", form: "rounded", label: "Set Schedule", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Input Data", pos: "b", h: 48 }
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/merge.svg' width='40' height='40' /></div><br/>Merge API 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/merge.svg' width='40' height='40' /></div><br/>Merge Both API Data"]
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/>Merge All API Results"]
n9@{ icon: "mdi:code-braces", form: "rounded", label: "Compare Data and Sorting Price", pos: "b", h: 48 }
n10@{ icon: "mdi:message-outline", form: "rounded", label: "Send Response via Email", pos: "b", h: 48 }
n2 --> n7
n4 --> n5
n1 --> n7
n3 --> n6
n6 --> n8
n5 --> n0
n5 --> n3
n5 --> n1
n5 --> n2
n0 --> n6
n7 --> n8
n8 --> n9
n9 --> n10
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 n4 trigger
class n0,n1,n2,n3 api
class n9 code
classDef customIcon fill:none,stroke:none
class n0,n1,n2,n3,n6,n7,n8 customIcon
Lösningen: automatiserad prisjämförelse som mejlar dig det billigaste alternativet
Det här flödet körs enligt ett schema, så du behöver inte komma ihåg att kolla priser. Det börjar med att sätta dina sökparametrar (avreseort, destination och resedatum), skickar sedan liveförfrågningar till flera källor, inklusive Skyscanner och flera flygbolags-API:er. Resultaten slås ihop till ett dataset, rensas och sorteras så att lägsta pris hamnar överst. Till sist mejlar det en lättläst sammanfattning, så du kan boka direkt eller vänta in nästa dipp. Utfallet är enkelt: du slutar ”researcha” och börjar fatta beslut utifrån en konsekvent rapport.
Flödet startar vid den tid du väljer (dagligen, två gånger om dagen, vad som passar). Därifrån anropar det Skyscanner, Akasa Air, Air India och IndiGo parallellt och slår sedan ihop allt. När priserna är sorterade skickar e-postnoden den slutliga jämförelsen till dig i Gmail.
Vad som förändras: före vs. efter
| Det här elimineras | Effekten du märker |
|---|---|
|
|
Effekt i verkligheten
Säg att du jämför priser från 4 källor (Skyscanner, Akasa, Air India, IndiGo) två gånger per dag. Manuellt är det kanske 10 minuter per källa när du räknar in att skriva in rutter igen och skanna resultat, alltså runt 80 minuter per dag. Med det här flödet gör du konfigurationen en gång, och sedan sker varje kontroll helt hands-off: det triggas enligt schema, kör i några minuter och mejlar dig sammanfattningen med det billigaste priset. Du får tillbaka ungefär en timme de flesta dagar, med färre ”missade jag något?”-ögonblick.
Krav
- n8n-instans (prova n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- Skyscanner API-åtkomst för liveförfrågningar om priser.
- E-postkonto för utskick för att leverera sammanfattningar till Gmail.
- API-nycklar för flygbolagens endpoints (från respektive flygbolags API-leverantörs portal).
Kunskapsnivå: Medel. Du klistrar in API-nycklar, justerar parametrar för förfrågningar och testkör några gånger.
Behöver du hjälp att implementera detta? Prata med en automationsexpert (gratis 15-minuters konsultation).
Flödet i arbetsflödet
En schemalagd kontroll körs automatiskt. Du väljer tidpunkten (till exempel varje morgon), och n8n triggar flödet utan att du öppnar en enda flik.
Din rutt och dina datum mappas en gång. Flödet sätter fält som avreseort, destination, avresedatum och returdato, och återanvänder dem för varje prisförfrågan så att jämförelserna blir konsekventa.
Flera priskällor hämtas parallellt. n8n skickar HTTP-förfrågningar till Skyscanner plus flygbolags-API:er (Akasa, Air India och IndiGo) och slår sedan ihop svaren till en kombinerad lista som faktiskt går att jämföra.
Priser sorteras och mejlas. En funktion sorterar priserna efter kostnad, och e-postnoden skickar den slutliga sammanfattningen så att du kan boka, vidarebefordra den till någon annan eller bara invänta nästa körning.
Du kan enkelt ändra rutter och datumslogik för att bevaka flera stadspar eller olika resefönster utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den schemalagda triggern
Ställ in schemat som startar arbetsflödet för prisövervakning.
- Lägg till noden Scheduled Trigger Setup som din trigger.
- Öppna Scheduled Trigger Setup och definiera intervallet i inställningarna för Rule (t.ex. dagligen eller varje timme).
- Lämna övriga standardinställningar för triggern om ni inte behöver ett anpassat schema.
Steg 2: Anslut flygdatakällor
Fördela triggerdatan till flera API:er från flygbolag och aggregatorer.
- Öppna Map Input Fields och skapa fyra strängfält med följande uttryck:
origin →={{$node['Scheduled Trigger Setup'].json.body.origin}}
destination →={{$node['Scheduled Trigger Setup'].json.body.destination}}
departureDate →={{$node['Scheduled Trigger Setup'].json.body.departureDate}}
returnDate →={{$node['Scheduled Trigger Setup'].json.body.returnDate}} - Säkerställ att Map Input Fields skickar utdata till de fyra request-noderna samtidigt: Skyscanner Fare Request, Akasa Fare Request, Air India Fare Fetch och IndiGo Fare Fetch.
- I Skyscanner Fare Request ställer ni in URL till
https://api.skyscanner.net/flights. - I Akasa Fare Request ställer ni in URL till
https://api.akasa.com/v1/flights. - I Air India Fare Fetch ställer ni in URL till
https://api.airindia.net/flights. - I IndiGo Fare Fetch ställer ni in URL till
https://api.idigo.com/v1/flights.
Map Input Fields skickar utdata till både Skyscanner Fare Request och Akasa Fare Request parallellt, och samtidigt till Air India Fare Fetch och IndiGo Fare Fetch parallellt.
Steg 3: Aggregera och sortera prisresultat
Slå ihop de fyra källorna och sortera dem efter pris för en tydlig sammanfattning.
- Konfigurera Combine First Pair med Mode inställt på
mergeByIndexför att slå ihop resultat från Skyscanner Fare Request och Akasa Fare Request. - Konfigurera Combine Second Pair med Mode inställt på
mergeByIndexför att slå ihop resultat från Air India Fare Fetch och IndiGo Fare Fetch. - Konfigurera Aggregate All Results med Mode inställt på
mergeByIndexför att kombinera utdata från Combine First Pair och Combine Second Pair. - I Sort Fares by Price klistrar ni in följande i Function Code:
const results = [];\n\n// Process Skyscanner results\nif ($node['Aggregate All Results'].json[0].data) {\n $node['Aggregate All Results'].json[0].data.forEach(flight => {\n results.push({\n provider: 'Skyscanner',\n price: flight.price,\n currency: flight.currency,\n booking_url: flight.booking_url\n });\n });\n}\n\n// Process Travelpayouts results\nif ($node['Aggregate All Results'].json[1].data) {\n $node['Aggregate All Results'].json[1].data.forEach(flight => {\n results.push({\n provider: 'Travelpayouts',\n price: flight.price,\n currency: flight.currency,\n booking_url: flight.booking_url\n });\n });\n}\n\n// Sort by price\nresults.sort((a, b) => a.price - b.price);\n\nreturn results;
json[0] och json[1]). Om API:erna uppströms returnerar tomma eller icke-matchande svar kan sorteringen misslyckas. Validera exempeldata innan ni går i produktion.Steg 4: Konfigurera e-postutdata
Skicka den sorterade prissammanfattningen till er inkorg.
- Öppna Email Fare Summary och ställ in Subject till
Real-Time Flight Fare Update. - Ställ in To Email till
[YOUR_EMAIL]och From Email till[YOUR_EMAIL]. - Ställ in Email Format till
text. - Ställ in Text till
{json.results}för att skicka den sorterade resultatlistan. - Credential Required: Anslut era smtp-uppgifter i Email Fare Summary.
Steg 5: Testa och aktivera ert arbetsflöde
Verifiera arbetsflödet från start till mål och aktivera det sedan för löpande övervakning.
- Klicka på Execute Workflow för att köra ett manuellt test från Scheduled Trigger Setup.
- Bekräfta att varje HTTP request-nod returnerar data och att Aggregate All Results skickar ut kombinerade items.
- Verifiera att Sort Fares by Price ger en sorterad lista och att Email Fare Summary levererar ett e-postmeddelande med prisdata.
- När allt är verifierat, växla arbetsflödet till Active för att aktivera schemalagda körningar.
Se upp med
- Inloggningsuppgifter och headers i HTTP Request kan vara kinkiga. Om Skyscanner eller ett flygbolagsanrop börjar faila, kontrollera API-nyckeln, header-namn och leverantörens dashboard-loggar först.
- Om du lägger till Wait-noder (eller om dina priskällor svarar långsamt) varierar processtiderna. Öka väntetiden om efterföljande noder failar på tomma svar.
- Om du använder AI Agent eller OpenAI Chat Model för att skriva om mejlsammanfattningen är standardprompterna generiska. Lägg in ditt önskade format (flygbolagsnamn, bagage-noteringar, tidsintervall) tidigt, annars kommer du att fortsätta redigera resultaten.
Vanliga frågor
Cirka 30 minuter om dina API-nycklar är klara.
Ja, men du vill ha någon som är bekväm med att kopiera API-nycklar och testa förfrågningar. Ingen kodning krävs, men du kan behöva justera några fält som flygplatskoder och datum.
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 in kostnader för din flygdataleverantör (Skyscanner/flygbolags-API-åtkomst varierar mellan leverantörer).
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änsat antal körningar men kräver grundläggande serverhantering.
Börja med steget ”Map Input Fields”, eftersom det är där avreseort, destination och datum sätts för varje förfrågan. Du kan lägga till fler rutter genom att duplicera dessa indata (eller mata in dem från Google Sheets) och sedan låta samma Skyscanner- och flygbolagsförfrågningar köras för varje rad. Vanliga anpassningar är att ändra schemat (oftare under reaperioder), filtrera bort nattflyg och lägga till en Google Sheets- eller Excel 365-logg så att du kan se trender över tid.
Oftast är det en utgången eller felaktig API-nyckel, eller en saknad header i HTTP Request-inställningarna. Kontrollera Skyscanners API-dashboard först och bekräfta sedan att endpoint-URL och obligatoriska parametrar matchar det ditt konto tillåter. Om det fungerar i Postman men inte i n8n är det ofta ett formateringsproblem i request body eller query string.
På n8n Cloud Starter kan du köra tusentals kontroller per månad för ett schema med en rutt. Om du kör egen drift finns ingen körningsgräns, men din server och dina API-rate limits blir det verkliga taket. I praktiken kör de flesta små team detta några gånger per dag över en handfull rutter utan problem. Om du skalar till dussintals rutter varje timme vill du ha batching plus backoff-hantering för HTTP-förfrågningarna.
Ofta, ja. Det här flödet bygger på flera HTTP-förfrågningar, att slå ihop dataset och att sortera på pris, vilket är precis där n8n känns mer flexibelt (och billigare vid högre volym). Zapier och Make kan göra det, men logik med flera grenar och tyngre datatransformering blir ofta snabbt klumpigt. Om din version bara är ”en leverantör till ett mejl” kan de verktygen gå snabbare att sätta upp. För allt utöver det är n8n det lugnare valet. Prata med en automationsexpert om du vill ha en rekommendation baserat på dina rutter och din frekvens.
Du sätter rutten en gång, och flödet fortsätter att kolla åt dig. Nästa gång priserna svajar ligger det billigaste alternativet redan i din inkorg.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.