Plan Travel Itineraries with Gemini AI, Live Amadeus Flights, and Airbnb Stays
This workflow contains community nodes that are only compatible with the self-hosted version of n8n. ### Here is the Full Node-by-Node Breakdown of the Workflow **Execution Video:** [https://youtu.be/qkZ6UaO7aCE](https://youtu.be/qkZ6UaO7aCE) --- #### 1. **Webhook** (`Webhook`) * **Purpose**: Accepts incoming user queries via HTTP GET with the text parameter. * **Example input**: `4 people from Germany to Bangkok @14th August 2025` --- #### 2. **AI Agent** (`AI Agent`) * **Type**: LangChain Agent * **Model**: Google Gemini 2.5 Flash via Vertex AI * **Prompt logic**: * Extracts structured travel info (origin city, destination, date, number of people) * Determines 3-letter IATA codes * Uses MCP's Airbnb tool to scrape listings starting from that date * **Returns**: * A markdown + bullet-format response with: * Structured trip info * List of Airbnb listings with titles, price, rating, and link --- #### 3. **MCP Client List Tool** (`MCP Client List Tool`) * **Purpose**: Fetches a list of tools registered with MCP (Multi Channel Parser) client for the AI agent to select from * **Used by**: AI Agent as part of `listTools()` phase --- #### 4. **MCP Execute Tool** (`MCP Execute Tool`) * **Purpose**: Executes the selected MCP tool (Airbnb scraper) * **Tool input**: Dynamic - passed by AI Agent using `$fromAI(tool_Parameters)` --- #### 5. **Google Vertex Chat Model** (`Google Vertex Chat Model`) * **Purpose**: Acts as the LLM behind the AI Agent * **Model**: Gemini 2.5 Flash from Vertex AI * **Used for**: Language understanding, extraction, decision-making --- #### 6. **Grabbing Clean Data** (`Code Node`) * **Purpose**: Parses AI output to extract: * Structured trip data * Airbnb listings (with title, rating, price, link) * **Handles**: * Bullet () and asterisk (*) formats * New and old markdown styles * Fallbacks for backward compatibility * **Output**: Clean JSON: ```json { "tripInformation": {...}, "listings": [...], "totalListings": X, ... } ``` --- #### 7. **Flight Search with Fare** (`HTTP Request`) * **API**: Amadeus Flight Offers API * **Purpose**: Searches live flight offers using: * originIataCode * destinationIataCode * travelDate * numberOfPeople * **Auth**: OAuth2 --- #### 8. **Flight Data + Airbnb Listings** (`Code Node`) * **Purpose**: * Parses Amadeus flight offers * Formats date, time, and durations * Merges flight results with earlier Airbnb + trip info JSON * Sorts by cheapest total price * **Output**: ```json { "tripInformation": {...}, "listings": [...], "allFlightOffers": [...] } ``` --- #### 9. **Edit Fields** (`Set Node`) * **Purpose**: * Assigns final response fields into clean keys: * `travelDetails` * `listings` * `flights` --- #### 10. **Respond to Webhook** * **Purpose**: Sends back the final structured JSON response to the caller. * **Output**: Combined travel itinerary with flights + Airbnb --- ### Summary This end-to-end workflow is a **fully autonomous travel query-to-itinerary engine**. From a plain text like "4 people from Vijayawada to Bangkok @14th August 2025," it: * Parses and understands the query using an AI agent * Fetches Airbnb stays by scraping live listings * Searches real-time flights via Amadeus * Merges and formats everything into structured, digestible JSON No manual parsing, no frontend - just AI + APIs + automation. NOTE: I JUST USED A COMMUNITY NODE n8n-nodes-mcp + UNOFFICIAL AIRBNB MCP
This workflow contains community nodes that are only compatible with the self-hosted version of n8n.
Here is the Full Node-by-Node Breakdown of the Workflow
Execution Video: https://youtu.be/qkZ6UaO7aCE
1. Webhook (Webhook)
- Purpose: Accepts incoming user queries via HTTP GET with the text parameter.
- Example input:
4 people from Germany to Bangkok @14th August 2025
2. AI Agent (AI Agent)
- Type: LangChain Agent
- Model: Google Gemini 2.5 Flash via Vertex AI
- Prompt logic:
- Extracts structured travel info (origin city, destination, date, number of people)
- Determines 3-letter IATA codes
- Uses MCP's Airbnb tool to scrape listings starting from that date
- Returns:
- A markdown + bullet-format response with:
- Structured trip info
- List of Airbnb listings with titles, price, rating, and link
3. MCP Client List Tool (MCP Client List Tool)
- Purpose: Fetches a list of tools registered with MCP (Multi Channel Parser) client for the AI agent to select from
- Used by: AI Agent as part of
listTools()phase
4. MCP Execute Tool (MCP Execute Tool)
- Purpose: Executes the selected MCP tool (Airbnb scraper)
- Tool input: Dynamic - passed by AI Agent using
$fromAI(tool_Parameters)
5. Google Vertex Chat Model (Google Vertex Chat Model)
- Purpose: Acts as the LLM behind the AI Agent
- Model: Gemini 2.5 Flash from Vertex AI
- Used for: Language understanding, extraction, decision-making
6. Grabbing Clean Data (Code Node)
- Purpose: Parses AI output to extract:
- Structured trip data
- Airbnb listings (with title, rating, price, link)
- Handles:
- Bullet () and asterisk (*) formats
- New and old markdown styles
- Fallbacks for backward compatibility
- Output: Clean JSON:
{ "tripInformation": {...}, "listings": [...], "totalListings": X, ... }
7. Flight Search with Fare (HTTP Request)
- API: Amadeus Flight Offers API
- Purpose: Searches live flight offers using:
- originIataCode
- destinationIataCode
- travelDate
- numberOfPeople
- Auth: OAuth2
8. Flight Data + Airbnb Listings (Code Node)
- Purpose:
- Parses Amadeus flight offers
- Formats date, time, and durations
- Merges flight results with earlier Airbnb + trip info JSON
- Sorts by cheapest total price
- Output:
{ "tripInformation": {...}, "listings": [...], "allFlightOffers": [...] }
9. Edit Fields (Set Node)
- Purpose:
- Assigns final response fields into clean keys:
travelDetailslistingsflights
10. Respond to Webhook
- Purpose: Sends back the final structured JSON response to the caller.
- Output: Combined travel itinerary with flights + Airbnb
Summary
This end-to-end workflow is a fully autonomous travel query-to-itinerary engine. From a plain text like "4 people from Vijayawada to Bangkok @14th August 2025," it:
- Parses and understands the query using an AI agent
- Fetches Airbnb stays by scraping live listings
- Searches real-time flights via Amadeus
- Merges and formats everything into structured, digestible JSON
No manual parsing, no frontend - just AI + APIs + automation. NOTE: I JUST USED A COMMUNITY NODE n8n-nodes-mcp + UNOFFICIAL AIRBNB MCP
New buyers can create an account from the cart to unlock a controlled $10 first-purchase credit on eligible orders of $25+.
Related bundle
WhatsApp Business Automation
7 hand-picked workflows for $39.00.
That is $5.57 each, vs $9.99 for this one alone.
View bundleSecure checkout powered by Stripe
Support
How to import this workflow into n8n
- 1Purchase or download the workflow to get the n8n workflow JSON file.
- 2In your n8n instance, open Workflows and choose "Import from File" (or paste the JSON with Ctrl+V on the canvas).
- 3Open each node marked with a credential warning and connect your own accounts and API keys.
- 4Run the workflow once manually to verify the data flow, then toggle it to Active.
Related Travel & Hospitality workflows
- Automate Restaurant Reservations with AI and Telegram$14.99
- Automate Restaurant Reservations with AI and Google Sheets$9.99
- Automate Restaurant Reservations via WhatsApp with AI and Google Sheets$14.99
- Automate Restaurant Call Handling and Table Booking with VAPI and PostgreSQL$9.99
- Automate Flight and Hotel Bookings with AI and API Integration$14.99
- Hotel Guest Journey Automation with Gmail & Google Sheets$14.99
More from iamvaar
Need this deployed? We'll set it up for you.
Our automation experts deploy this workflow in your stack, connect your accounts, and verify it works — or build a custom solution from scratch.