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

Booking.com + Telegram: hotellista direkt

Rickard Andersson Partner, Nodenordic.se

Hotellresearch blir snabbt rörigt. Du öppnar Booking.com, justerar filter, kopierar priser till anteckningar, tappar bort den ”bra” fliken och börjar sedan om när någon byter stad.

Telegram hotel shortlist-automationen slår hårdast mot eventplanerare, eftersom beslut kräver tydliga alternativ. Men resebyråer och stressade operativa team som bokar resor för grupper känner av samma friktion. Du skickar ett stadsmeddelande och får tillbaka en strukturerad, delningsbar shortlist.

Det här flödet hämtar listningar från Booking.com, rensar och strukturerar datan och formaterar den till en lättläst rapport. Du ser vad det löser, vad du behöver och hur flödet fungerar från start till mål.

Så fungerar den här automatiseringen

Hela n8n-flödet, från trigger till slutligt resultat:

n8n Workflow Template: Booking.com + Telegram: hotellista direkt

Problemet: hotellresearch blir flikkaos

Att hitta ”några bra hotell” låter enkelt tills det inte är det. Du söker på en stad, scrollar i evigheter, öppnar 10 listningar och försöker sedan förklara alternativen för någon annan utan att låta vag. Priser är i olika valutor, vissa listningar döljer avgifter tills sent i processen och detaljerna du bryr dig om (läge, avbokning, frukost, stjärnklass) sprids över flikar och skärmdumpar. Och när destinationen ändras eller datum flyttas, gör du om hela rutinen. Ärligt talat: det är inte svårt arbete. Det är utmattande arbete.

Det blir snabbt mycket. Här är var det brister i riktiga team.

  • Du lägger cirka 30–45 minuter per stad bara på att samla alternativ du tryggt kan dela.
  • Copy-paste-research skapar småfel, som felmatchade priser eller fel länk, vilket sedan leder till mer fram och tillbaka.
  • Beslutsfattare vill inte ha råa sökresultat, så du slutar med att skriva om samma sammanfattning om och om igen.
  • När du behöver ”en shortlist till för en annan stad” börjar du från noll i stället för att återanvända en repeterbar process.

Lösningen: Telegram-meddelande in, kurerad hotellista ut

Det här flödet gör hotellresearch till en snabb chattinteraktion. Du skickar ett stadsnamn till en n8n-chatttrigger (som kan kopplas till Telegram), och automatiseringen startar en Booking.com-hämtning via Bright Datas webbskrapare. Medan skrapningen körs väntar flödet och kontrollerar status i en loop tills snapshoten är klar. När resultatet kommer tillbaka laddar n8n ner datan, normaliserar fälten (så att ”pris”, ”betyg” och ”länk” inte dyker upp som inkonsekventa kolumner) och aggregerar listningarna till en enda batch. Sedan formaterar en AI-agent via OpenRouter allt till en kort, lättläst shortlist, inklusive korrekta länkar och tydlig prissättning.

Flödet börjar med ett enkelt stadsinmatning. Bright Data sköter extraktionen och flödet fortsätter att övervaka tills snapshoten finns tillgänglig. Till sist sammanfattar och formaterar AI-agenten shortlisten så att den är redo att klistra in, vidarebefordra eller dela med en kund.

Vad du får: automation vs. resultat

Exempel: så här ser det ut

Säg att du tar fram hotell för en tvådagars offsite och behöver shortlists för 3 städer. Manuellt är det oftast runt 40 minuter per stad för att hitta, öppna, jämföra och skriva om alternativen, alltså ungefär 2 timmar totalt. Med det här flödet skickar du 3 snabba Telegram-meddelanden (kanske 1 minut styck) och väntar sedan på att skrapning och sammanfattning ska komma tillbaka. Du granskar fortfarande shortlisten, men din ”research-tid” går från timmar till några minuters uppföljning.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för self-hosting om du föredrar det (Hostinger fungerar bra)
  • Telegram för att skicka stad och ta emot resultat
  • Bright Data för Booking.com-webbskrapningssnapshots
  • OpenRouter API-nyckel (hämta den i din OpenRouter-dashboard)

Kunskapsnivå: Medel. Du kopplar in credentials, justerar en eller två noder och testar chatttriggern från start till mål.

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

Så fungerar det

Ett stadsmeddelande triggar allt. Ett chattmeddelande tas emot och flödet mappar inmatningen till ett strukturerat ”stad”-värde som kan användas längre fram.

Flödet startar Booking.com-extraktionen. Bright Data startar en batch-extraktion från en URL som byggs utifrån din stadsinmatning, och flödet delar upp kontroller i batchar så att det kan övervaka status utan att överbelasta API:et.

Statuskontroller och väntan förhindrar tomma resultat. Om snapshoten inte är klar väntar flödet, loopar och kontrollerar igen. När den är klar hämtar det snapshotdatan och går vidare.

AI gör råa listningar till en shortlist du kan skicka. Resultaten normaliseras, aggregeras och skickas till en AI-agent (via OpenRouter). Ett kalkylatorverktyg stödjer valutakonverteringar eller snabb matte, och sluttexten returneras i ett läsbart format för chatt.

Du kan enkelt justera sökparametrar för att inkludera datum eller gruppstorlek utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: konfigurera chatt-triggern

Det här arbetsflödet startar från en chattinmatning, så konfigurera triggern så att den tar emot ett stadsnamn och returnerar den slutliga sammanfattningen.

  1. Lägg till och öppna Chat Intake Trigger.
  2. Ställ in Response ModelastNode så att chatten returnerar AI-sammanfattningen.
  3. Koppla Chat Intake Trigger till Map City Input.

Steg 2: anslut Bright Data och starta extraktionen

Dessa noder triggar Booking.com-skrapningen baserat på stadsinmatningen och startar extraktionsarbetsflödet.

  1. Öppna Map City Input och lägg till tilldelningen city med värdet ={{ $json.chatInput }}.
  2. Öppna Start URL Extraction och ställ in ResourcewebScrapper och OperationtriggerCollectionByUrl.
  3. Ställ in URLs=[{"url":"https://www.booking.com","location":"{{ $json.city }}","check_in":"2025-11-01T00:00:00.000Z","check_out":"2025-11-08T00:00:00.000Z","adults":2,"children":1,"rooms":1,"property_type":"Hostels","currency":"","country":""}].
  4. Inloggningsuppgifter krävs: Anslut era brightdataApi-inloggningsuppgifter i Start URL Extraction.

⚠️ Vanlig fallgrop: Datumintervallet i Start URL Extraction är hårdkodat. Uppdatera check_in och check_out före produktionssättning för att undvika inaktuella resultat.

Steg 3: konfigurera statusövervakning och återkontroll-loop

Dessa noder loopar tills snapshoten är klar och laddar därefter ner data.

  1. Öppna Monitor Extraction Status och ställ in OperationmonitorProgressSnapshot med snapshot_id satt till ={{ $('Start URL Extraction').item.json.snapshot_id }}.
  2. Inloggningsuppgifter krävs: Anslut era brightdataApi-inloggningsuppgifter i Monitor Extraction Status.
  3. Konfigurera Result Ready Check så att den utvärderar att Left Value ={{ $json.status }} är lika med ready.
  4. Säkerställ att ”false”-utgången från Result Ready Check går till Delay Execution, och sedan till Recheck Snapshot Loop och Hotel Batch Splitter enligt kopplingarna.
  5. Öppna Retrieve Snapshot Data och ställ in OperationdownloadSnapshot med snapshot_id ={{ $('Monitor Extraction Status').item.json.snapshot_id }}.
  6. Inloggningsuppgifter krävs: Anslut era brightdataApi-inloggningsuppgifter i Retrieve Snapshot Data.

Om er datamängd är stor, behåll Hotel Batch Splitter konfigurerad med Reset aktiverat för att undvika att bearbeta inaktuella objekt på nytt under loopen.

Steg 4: normalisera och aggregera listningar

Det här steget standardiserar den extraherade datan och aggregerar den till en enda lista.

  1. Öppna Normalize Listing Fields och mappa fält med uttryck: title ={{ $json.title }}, address ={{ $json.address }}, original_price ={{ $json.original_price }} och final_price ={{ $json.final_price }}.
  2. Öppna Combine Listings och ställ in AggregateaggregateAllItemData.
  3. Bekräfta att flödet är Normalize Listing FieldsCombine ListingsReadable Hotel Summary.

Steg 5: konfigurera AI-sammanfattningen

Dessa noder skapar en läsbar hotellsammanfattning och beräknar priser i euro.

  1. Öppna Readable Hotel Summary och ställ in Text={{ $json }}.
  2. Ställ in systemprompten i Readable Hotel Summary till =Convert this list of hotels into a well-presented list for human display. Use the CALC tool to show prices in euros. Start the response with 'Here is the list of hotels available on Booking in the city of' followed by the name of the city.
  3. Koppla OpenRouter Chat Engine till Readable Hotel Summary som språkmodell.
  4. Inloggningsuppgifter krävs: Anslut era openRouterApi-inloggningsuppgifter i OpenRouter Chat Engine.
  5. Anslut Pricing Calculator Tool som ett AI-verktyg till Readable Hotel Summary för att aktivera kalkylatorn i prompten.
  6. Obs: Pricing Calculator Tool är ett undernod-verktyg; lägg endast till inloggningsuppgifter på den överordnade LLM-noden (OpenRouter Chat Engine), inte på själva verktyget.

Steg 6: testa och aktivera ert arbetsflöde

Kör ett fullständigt test för att bekräfta dataextraktion, looping, aggregering och AI-utdata.

  1. Klicka på Execute Workflow och ange en exempelstad i chattinmatningen (till exempel Lisbon).
  2. Verifiera att Start URL Extraction returnerar ett snapshot-ID och att Monitor Extraction Status går i cykler tills Result Ready Check är ready.
  3. Bekräfta att Retrieve Snapshot Data matar ut hotellrader och att Combine Listings aggregerar dem till en enda lista.
  4. Kontrollera att Readable Hotel Summary returnerar en lättläst lista i chattsvaret.
  5. När ni är nöjda, växla arbetsflödet till Active för att möjliggöra användning i produktion.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Bright Data-credentials kan gå ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först din Bright Data API-nyckel och datasetåtkomst i Bright Data-dashboarden.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du redigera utdata i all evighet.

Vanliga frågor

Hur lång tid tar det att sätta upp den här Telegram-automationen för hotell-shortlist?

Cirka 30 minuter när dina Bright Data- och OpenRouter-konton är klara.

Behöver jag kunna koda för att automatisera leverans av hotell-shortlist i Telegram?

Nej. Du kopplar främst credentials och justerar ett par fält utifrån dina sökpreferenser.

Är n8n gratis att använda för det här Telegram-flödet för hotell-shortlist?

Ja. n8n har ett gratis self-hosted-alternativ och en gratis testperiod på n8n Cloud. Cloud-planer startar på 20 USD/månad för högre volym. Du behöver också räkna med kostnader för Bright Data och OpenRouter utifrån användning.

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ärd och hanterar n8n bra. Self-hosting ger dig obegränsat antal körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här Telegram-flödet för hotell-shortlist med incheckningsdatum och antal gäster?

Ja, och det är en typ av ändring som snabbt betalar sig. Uppdatera noden ”Start URL Extraction” (Initiate batch extraction from URL) så att den inkluderar dina in-/utcheckningsdatum, antal vuxna, barn eller boendetyp. Om du vill ha en annan typ av svar, redigera agentprompten som används för den sista ”Readable Hotel Summary” så att den istället outputtar JSON, CSV eller en striktare mall. Många team justerar även kalkylatorprompten för att standardisera valutan i den slutliga shortlisten.

Varför fallerar min Bright Data-anslutning i det här flödet?

Oftast är det en ogiltig eller utgången API-nyckel, så skapa en ny i Bright Data och uppdatera credetialen i n8n. Det kan också vara ett behörighetsproblem för dataset (fel skrapare/dataset valt) eller att extraktionsendpointen returnerar ett tillfälligt fel medan jobbet fortfarande startar. Om fel bara händer vid större körningar är rate limiting en sannolik orsak, så sakta ner polling-loopen och öka Wait-tiden.

Hur många hotell-listningar kan den här Telegram-automationen för hotell-shortlist hantera?

En typisk körning kan hantera dussintals listningar per stad, och den praktiska gränsen beror på dina Bright Data-datasetinställningar och dina körningsgränser i n8n.

Är den här Telegram-automationen för hotell-shortlist bättre än att använda Zapier eller Make?

Ofta, ja, eftersom det här flödet bygger på skrapning, loopar tills data är klar och sedan gör strukturerad formatering med en AI-agent. n8n hanterar förgreningar och mönster som ”vänta och försök igen” på ett tydligt sätt, och du kan self-hosta för mer kontroll. Zapier eller Make kan fungera, men loopar i flera steg och tung databetning blir ofta klumpigt eller dyrt. Om du redan kör mycket i Zapier för enklare uppgifter kan det fortfarande räcka för en lättare variant som inte skrapar. Prata med en automationsexpert om du vill ha snabbaste vägen till en stabil setup.

När detta väl är på plats slutar hotellresearch att vara ett miniprojekt. Du ber om en stad, får en shortlist tillbaka och går vidare med dagen.

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