back to blog

Build AI Travel Assistant: Your Personalized Journey Starts Here

Written by Namit Jain·April 18, 2025·19 min read

Planning a trip should be exciting, not exhausting. Imagine having a personal assistant that understands your preferences, anticipates your needs, and handles all the tedious details of travel planning. That's the power of an AI travel assistant. In this comprehensive guide, we'll explore how to build AI travel assistant solutions that transform the way you experience travel, from initial inspiration to post-trip memories. We'll delve into the technical aspects of building such an assistant using platforms like Kore.ai, and discuss the broader implications of AI in the travel industry.

This article guides you through the creation of a simple, travel-related Virtual Assistant. This assistant will provide users flight status information for flights arriving or departing from Los Angeles International Airport (LAX).

Assistant Capabilities

This assistant can perform the following tasks:

  • Ask the user if they want to know about arrivals or departures.
  • Make a service call to an API to fetch the details of flights arriving and departing from the airport.
  • Display the flight numbers based on the user's preference of Arrival or Departure.
  • Request the user to select a flight number.
  • Display the status details of the selected flight.
  • Handle errors gracefully.

Building Your AI Travel Assistant with Kore.ai

One way to bring your AI travel assistant vision to life is by leveraging platforms like Kore.ai. Here's a streamlined approach to building a functional travel assistant on the Kore.ai XO Platform:

1. Create the Assistant

  • Sign up with the Kore.ai XO Platform.
  • On the landing page, click New Bot.
  • In the Create New Bot window, select Start from Scratch.
  • Enter a Name for your assistant.
  • Select an icon or upload your own (PNG format, 40x40 pixels, limited to 80kb).
  • Select Travel Management as the Purpose of your VA.
  • Choose Standard Bot as the Bot Type.
  • Select the Default Language.
  • Click Proceed.
  • Generate use cases or create without use cases.
  • Click Create to configure your VA.

2. Create a Dialog Task

After creating your assistant, you'll be directed to the Bot Summary page. The next step is to add an Intent Dialog to support business-specific use cases. An Intent Dialog is the first step in the user-VA conversation flow.

To create a Dialog Task, follow these steps:

  • On the Tasks widget, click + New Task and select Dialog Task.
  • On the Create Dialog page, enter the following details:
    • Intent Name – Enter the Intent name. This is the phrase that triggers the dialog. The intent name must be simple and not more than 3-4 words. For example, Check flight status.
  • Under More Options, you can add a description and other dialog-related details. Let us retain the default settings.
  • Click Proceed.
  • When prompted to upgrade to Conversation Driven Dialog Builder, select Upgrade.
  • Once your task has been created, you will see the Dialog Builder Canvas, with the first node displayed – the Intent Node, which receives the name of the task and represents the main node within the Dialog Task.

3. Create a User Preference Entity Node

An Entity node is typically used to gather information from the user. Let us use it to capture the user preference for arrival or departure details.

  • Click the + icon next to the User Intent node.
  • Select Entity > + New Entity.
  • Click the newly added Entity node to open the Entity window.
  • By default, the Component Properties tab is selected.
  • Under the General Settings section, enter the following details:
    • Name
    • Display Name
    • Type: Select List of Items (enumerated) from the drop-down list.
      • Click the Settings icon next to the field.
      • Select the Static List option.
      • Under the Keys & Values To Use section, enter the Display Name as Arrival and Departure in separate rows. Value and Synonyms columns auto-populate, leave them as is.
      • Define the percentage of Auto Correction to be applied to match the user’s input to a value in the list. Set to 0 if you do not want to apply auto correction at all.
      • Click Save.
  • Go back to the Entity window.
  • Under the User Prompts section, enter the following text:
Hello {{context.session.UserContext.firstName}}! Welcome to *Los Angeles International Airport*.
I can help you with flight Arrival/Departure information. Please select your preference.

4. Create a Service Node

A Service Bot Action node allows you to make a backend API call. Here the service node is used to call an API to get flight information for flights From and To LAX airport. In this tutorial, a dummy API setup is used.

  • Click the + icon below the Preference Entity node.
  • Select Bot Action > + New Bot Action.
  • Under the General Settings section, enter the following details:
    • Name: FlightDetails
    • Display Name: Flight Details
  • Click the + icon next to the Bot Action node to expand the Bot Action.
  • From within the Bot Action node, click +.
  • Select Service > + New service. The service node is used to make a backend API call to get flight information for flights From and To LAX airport.
  • Click the Service node to open the Service window.
  • Under the General Settings section, enter the following details:
    • Name: Fetchflightdetails
    • Display Name: Fetch Flight Details
    • Service Type: Custom Service
    • Type: Webservice
    • Sub Type: REST
  • Under the Request Definition section, click DEFINE REQUEST.
    • Request Type – GET
    • Request URL – http://5e85a56644467600161c6579.mockapi.io/FlightDetails

This API does not require any Auth or Header Parameters. Click the Test Request tab. Return to the dialog builder. Under the Connections section, set the Default Connection Rule to End of Bot Action. Close the Service window. Collapse the Bot Action node.

5. Create a Flight Selection Entity Node

This Entity node is to capture the Flight Number for which the user wants the status details.

  • Click the + icon next to the Flight Details Bot Action node.
  • Select Entity > + New entity.
  • In the Entity window, by default, the Component Properties tab is selected.
  • Under the General Settings section, enter the following details:
    • Name: SelectFlight
    • Display Name: Select Flight
    • Type: String (users can write a custom script to convert the API string output to a list of values)
  • Under the User Prompts section, enter the following text: Please provide the flight number.
  • Implement web SDK channel prompts.
  • Click Manage. Read more about managing user prompts.
  • Click Add User Prompts.
  • In the New Prompt Message window, select Web/Mobile client from the Channel drop-down list.
  • Under the Message section, delete all text from the Plain Text tab and click the Advanced tab.
  • Copy and paste the following JavaScript into the Advanced tab. The JavaScript extracts flight numbers matching user preference from the string output from API call and displays them in the Quick Reply format.
var data = context.Fetchflightdetails.response.body.details; context.flights = []; context.info; var msg; for (var i = 0; i < data.length; i++) { if (context.entities.Preference == data[i].Type) { var details = { "Airlines" : data[i].Airlines, "FlightNo" : data[i].FlightNo, "Airport" : data[i].Airport, "AirportName" : data[i].AirportName, "Time" : data[i].Time }; context.flights.push(details); } } var message = { "type" : "template", "payload" : { "template_type" : "quick_replies", "text" : "Here are the flights " + context.entities.Preference + " details for Los Angeles International Airport today. Please select the flight number to see details", "quick_replies" : [] } }; for (i=0; i < context.flights.length; i++) { var replies = { "content_type":"text", "title" : context.flights[i].FlightNo, "payload" : context.flights[i].FlightNo }; message.payload.quick_replies.push(replies); } print(JSON.stringify(message));
  • Click Save.
  • Go back to Dialog Builder and close the Entity window.

6. Create a Script Node

A Script node is used to write custom JavaScript in the Dialog task. Here, users can use the script to extract the selected flight details. Later, users can add more functionality to this script. To add and configure a script node, follow the steps below:

  • Click the + icon below the Select Flight Entity node.
  • Select Bot Action > + New Bot Action.
  • Under the General Settings section, enter the following details:
    • Name: FlightValidation
    • Display Name: Flight Validation
  • Click the + next to the Bot Action node to expand the Bot Action.
  • From within the Bot Action node click +
  • Select Script > + New script.
  • On the Script window, by default, the Component Properties tab is selected.
  • Under the General Settings section, enter the following details:
    • Name: ValidateFlight
    • Display Name: Validate Flight
  • Under the Script Definition section, click Define Script.
  • On the Add Script dialog box, copy and paste the following JavaScript. This code extracts the details of the selected flight number and also mitigates potential task failures caused by users not selecting a preference and instead manually entering information that is not found within the Context. Learn more about the Context Object.
context.valid = false; context.details; var x = context.flights.length; for (var l = 0; l < x; l++) { if (context.entities.SelectFlight == context.flights[l].FlightNo) { context.valid = true; context.details = { "Airlines" : context.flights[l].Airlines, "FlightNo" : context.flights[l].FlightNo, "Airport" : context.flights[l].Airport, "AirportName" : context.flights[l].AirportName, "Time" :context.flights[l].Time }; break; } } if (context.valid === false) { delete context.entities.SelectFlight; }
  • Click Save.
  • Under the Connections section, set the Default Connection Rule to End of Bot Action
  • Close the Script window.
  • Collapse the Bot Action node.

7. Create a Message Node to Provide the Flight Status

A Message node is used to display a message from the VA to the user. Here, users can use the Message node to show appropriate flight details, based on user preference. This message node is triggered when the user enters a valid flight number.

  • Click the + icon next to the Validate Flight Script node.

  • Select Message > New message node +.

  • On the Message window, by default, the Component Properties tab is selected.

  • Under the General Settings section, enter the following details:

    • Name: FlightStatus
    • Display Name: Flight Status
  • Under the Bot Responses section, enter the following text: Here are your flight details.

  • Click Enter to save.

  • Manage Prompts: Users can define a specific prompt for the Web SDK channel as follows:

  • Click Manage.

  • On the Manage Bot Responses page, click Add User Prompts.

  • Select Web/Mobile client from the Channel drop-down list.

  • Under the Message section, delete all text in the Plain Text tab and click the Advanced tab.

  • Copy and paste the following JavaScript. The JavaScript is written to display the flight details in the Table format.

var elements = [context.details]; var message = { "type": "template", "payload": { "template_type": "table", "text": "Here are your flight details", "columns": [ ["Airline"],["FlightNo"], ["Airport"], ["Time"] ], "table_design": "regular", speech_hint: "Here are your flight details", elements: [] } }; var ele = []; for (var i = 0; i < elements.length; i++) { var elementArr = [elements[i].Airlines, elements[i].FlightNo, elements[i].Airport, elements[i].Time]; ele.push({'Values': elementArr}); } message.payload.elements = ele; print(JSON.stringify(message));
  • Click Save.
  • Return to the Message window.
  • On the Message window, click the Connections tab.
  • From the drop-down list, change the default connection from Not Connected to End of Dialog.
  • Click Save.
  • Close the Message window.

8. Create a Conditional Flow for an Error Message

The Conditional Flow is required when, for example, the user provides input that cannot be identified by the VA, rather than selecting from one of the options you have configured (i.e.: either Arrivals or Departures.) In such a case, you would want to have the VA respond to the user with an error message.

Create the Error Message

  • Hover over the connection between Flight Validation Bot Action node and Flight Status message node.
  • You can see the Add Node button, click the button and then on the “+” to insert a node.
  • Create a new Message node.
  • Select Message > + New Message.
  • On the Message window, by default, the Component Properties tab is selected.
  • Under the General Settings section, enter the following details:
    • Name: ErrorMessage
    • Display Name: Error Message
  • Under the Bot Responses section, enter the text: The Flight number you entered is incorrect. Let us start again.
  • Click the Connections tab.
  • From the drop-down list, change the default connection from FlightStatus to SelectFlight.
  • Close the Error Message window.

Add IF Condition

  • Click the Flight Validation Bot Action node.
  • On the Flight Validation Bot Action window, click the Connections tab, and follow the steps below:
    • Click + ADD IF under Bot Action Group Connections.
    • Under the IF section, Select Context.
    • For If Condition, enter “valid” in the context text field.
    • Select the operator as Equals To.
    • Enter “true” in the value text field.
    • If this condition is true, then the dialog goes to FlightStatus.
    • Under the ELSE section,
    • If this condition is false, then the dialog goes to ErrorMessage.
  • Close the Validate Flight Script window.

9. Add Events

  • Close the Dialog Builder to go back to the Dialog Tasks page.
  • From the Left Navigation pane, and select Intelligence > Events.
  • From the events list, click Configure against the On Connect event.
  • On the On Connect window, by default, the Initiate Task option is selected; retain it.
  • From the drop-down list, select the Get Flight Status task.
  • Click Save.

10. Test the Assistant

  • To test the Dialog task, you can use the Talk to bot option at the bottom right. Since the onConnect event is configured, the dialog is automatically initiated. Alternately, you can always try the following utterance (intent name) Get me the flight status.

Key Features of AI Travel Agents

AI travel agents offer a range of features designed to simplify and enhance the travel experience. Here's a breakdown of the most important functionalities:

  • Automated Booking Management: AI handles reservations for flights, hotels, and transportation, including modifications, cancellations, and rebooking. With 66% of travel bookings conducted online in 2023, digital convenience is essential, and AI streamlines this process. Mobile bookings accounted for 35% of total sales in 2023, highlighting the importance of AI-powered mobile travel solutions.
  • Personalized Travel Assistance: Recommendations are tailored based on traveler preferences and booking history, ensuring options match individual needs.
  • Real-time Updates and Alerts: Travelers receive instant notifications about flight changes and disruptions, with airlines experiencing an average flight delay rate of 20% in the U.S. in 2023. AI travel agents provide critical updates, keeping travelers informed throughout their journey.
  • 24/7 Customer Support: AI agents handle common traveler inquiries, from baggage policies to entry requirements, providing assistance across digital and voice channels.
  • Seamless Integration with Travel Platforms: AI connects with airlines, hotels, and restaurants to enhance the travel experience. For example, a traveler booking a flight with an AI agent might receive personalized hotel recommendations without switching platforms.
  • Expense and Budget Management: AI monitors travel spending and identifies opportunities to reduce costs. They can recommend more efficient booking choices based on company policies or traveler preferences.
  • Multilingual Support: AI helps travelers communicate in their preferred language, adapting responses based on regional preferences and ensuring accurate translations.

AI for Travel Agent Best Practices

To ensure your AI travel assistant provides a positive and effective experience, consider these best practices:

  • Use Proactive Messaging Wisely: Send timely notifications about important updates, but avoid spamming users with unnecessary messages.
  • Optimize for Follow-ups and Multi-channel Support: Maintain context across channels, ensuring a seamless experience regardless of where the interaction happens.
  • Monitor Interaction Quality, Not Just Volume: Assess whether users receive accurate information and successfully complete their bookings.
  • Be Transparent About Automation: Let users know when they’re interacting with an AI travel agent to build trust and set expectations.
  • Design with Escalation Paths in Mind: Ensure the AI agent knows when to escalate a conversation to a human employee.
  • Prioritize Intent Recognition Over Predefined Workflows: Focus on accurately recognizing intent to provide relevant answers, regardless of how the question is phrased.
  • Align AI Travel Agent Goals with Business Objectives: Ensure the AI agent contributes to measurable outcomes, such as driving more bookings or enhancing customer satisfaction.

How to Build an AI Travel Agent: A Step-by-Step Guide

Building an effective AI travel assistant requires a strategic approach. Here's a step-by-step guide to help you get started:

  1. Define Your Scope: Determine what your AI travel agent will handle – booking assistance, itinerary management, customer support, or a combination of these services.
  2. Pick a Platform: Select an AI platform that supports NLP and automation, while ensuring real-time data retrieval and integration. Platforms like Botpress offer powerful tools, including Autonomous Nodes, which allow AI agents to decide when to follow a structured flow and when to use an LLM.
  3. Build Your AI Travel Agent:
    • Develop a conversational framework that feels intuitive and natural.
    • Train the AI travel agent with real travel queries using historical customer inquiries.
    • Implement proactive messaging and personalization, sending reminders about upcoming flights and suggesting relevant travel upgrades.
    • Integrate with travel data sources and booking systems, connecting the AI agent to airlines, hotels, car rentals, and travel APIs.
    • Handoff to employees when needed, ensuring a smooth transition when a traveler needs assistance beyond routine changes.
  4. Test, Refine, and Optimize Based on User Interactions: Continuously improve through real-world usage, regularly reviewing chatbot analytics and user feedback.
  5. Deploy and Monitor: Track user engagement, resolution rates, and customer satisfaction scores, making regular updates to maintain accuracy and improve overall efficiency.

Metrics for Evaluating AI Travel Agent Success

To measure the effectiveness of your AI travel assistant, track the following metrics:

  • Containment Rate: How often does the travel AI agent fully resolve traveler inquiries without human intervention?
  • Response Time and Resolution Speed: How quickly does the travel AI agent provide useful answers?
  • Customer Satisfaction (CSAT) Scores: Are travelers happy with their experience?
  • Conversion Rate for Bookings and Upsells: Does the AI just answer questions, or does it drive revenue?
  • Accuracy of Intent Recognition: Does the AI understand what travelers actually mean?
  • Drop-Off Rate in Conversations or Transactions: At what point do travelers abandon the AI?
  • Repeat User Engagement: Do travelers return to use the AI agent again?
  • Cost Savings and Operational Efficiency: How much does the AI reduce support costs?

AI Travel Assistants In Action: Examples

Let's explore some real-world examples of AI travel assistants and how they're being used in the industry:

  • KLM's BlueBot (BB): This AI-powered chatbot assists customers with booking flights, changing reservations, and answering general inquiries on Facebook Messenger. BB handles over 15,000 conversations per week and has a customer satisfaction rate of over 80%.
  • Expedia's Chatbots: Expedia uses AI chatbots to provide real-time customer support, offer personalized recommendations, and assist with booking hotels and flights. Their chatbots handle over 50% of customer inquiries, freeing up human agents to focus on more complex issues.
  • Kayak's AI-Powered Search: Kayak utilizes AI to analyze user search patterns and provide personalized flight and hotel recommendations. Their AI algorithms consider factors like price, duration, and user preferences to suggest the most relevant options.
  • Hipmunk's AI Travel Planner: (defunct, but illustrative) Hipmunk used AI to provide comprehensive travel planning assistance, including flight and hotel recommendations, itinerary suggestions, and travel alerts. While Hipmunk is no longer operational, its AI-driven approach demonstrated the potential of AI in travel planning.
  • Hopper: This app uses AI to predict flight and hotel prices, notifying users when prices are expected to drop. Hopper claims to save users an average of 10% on flights and hotels by recommending the best times to book.

These examples demonstrate the diverse ways AI travel assistants can be implemented and the significant benefits they can offer to both travelers and travel companies.

Deploy a Custom AI Travel Agent

As the AI travel market is projected to grow significantly by 2030, businesses that automate now will stay ahead in an increasingly digital industry. In 2024, analysts forecast that the AI in the travel market will reach over $4 billion.

Building a custom AI travel agent on Botpress is simplified with its drag-and-drop visual flow builder, extensive educational library, an active Discord community of 20,000+ bot builders, and pre-built integrations with major travel APIs for booking and itinerary management.

FAQs: People Also Ask

Q: What is an AI travel agent?

A: An AI travel agent is an AI-powered system that assists with travel planning and customer support. It uses NLP and machine learning to automate tasks, personalize recommendations, and improve response times to customer inquiries.

Q: How do AI travel agents work?

A: AI travel agents process traveler requests, check availability, process bookings, provide confirmations, and offer ongoing assistance through various digital channels.

Q: What are the benefits of using an AI travel agent?

A: The benefits include enhanced customer experience, increased efficiency, cost savings, improved decision-making, and a competitive advantage for travel companies.

Q: Can AI travel agents handle complex travel arrangements?

A: While AI travel agents can handle many routine tasks, complex arrangements or situations requiring human judgment are typically escalated to human agents for personalized assistance.

Q: How much does it cost to build an AI travel agent?

A: The cost varies depending on the complexity of the features, the chosen platform, and the level of customization required. Development costs, data privacy compliance, and ongoing maintenance contribute to the overall investment.

By leveraging AI, you can transform travel planning from a chore into an enjoyable and seamless experience. So start exploring the possibilities of building your own AI travel assistant and unlock a world of personalized journeys.