The invention generally relates to computers and computer software, and in particular to methods, systems, and computer program products system that update an entire travel itinerary based on a modification to a single travel reservation that is part of the travel itinerary.
Third party reservation agents (i.e., travel agents) or travelers may book a variety of different travel-related reservations for various aspects of a trip. For example, some trips may require airline reservations for travel to a particular destination, a hotel reservation for lodging during the trip, and a car rental for transportation while at the particular destination. Additionally, a traveler may need to book other reservations as part of the trip as well, such as sightseeing or other travel-related activities. As a result of the different travel-related reservations that may be made in anticipation of a trip, numerous emails or other types of electronic messages are typically sent to the traveler or reservation agent. The emails inform and confirm the travel reservations that have been made. Furthermore, if a modification is made to a particular travel reservation, an email is also send confirming the particular change.
Sometimes it may be difficult for the traveler to keep track and organize all of the different email notifications from the various travel providers. Furthermore, in the event the traveler wishes to change a particular travel reservation, then the remaining travel reservations that are part of the trip may need to be adjusted as well. For example, if a traveler changes the arrival and departure dates for a flight, then the traveler's corresponding hotel and car rental reservations may also need to be adjusted in order to align with the new dates and times of the flight.
It may be challenging for a traveler or reservation agent to efficiently make all of the necessary changes when re-scheduling a portion of a trip. In fact, sometimes it takes a significant amount of time for a reservation agent to consider each change to a travel itinerary, and then use subjective measures to determine the changes that need to be made to individual travel reservations that are part of the travel itinerary. Furthermore, reservation agents need to be readily available to make the necessary changes and cancellations to a particular trip using various travel platforms such as, for example, a global distribution system (GDS) or a particular website. However, making these modifications and cancellations to an itinerary may affect the reservation agent's productivity since making changes to the itinerary take up a considerable amount of time.
It is to be appreciated that at least one GDS currently has the capability to update related bookings that are part of a single trip. However, travelers and reservation agents typically utilize more than one platform when booking multiple travel related reservations for a particular trip. There are limitations with this particular GDS, as this GDS is unable to update any travel bookings that have been made outside of its own platform. For example, a reservation agent may book airline travel through a GDS, and a rental vehicle reservation through a discount website. Therefore, even though the GDS may have the ability to update travel booking made through its own platform, the traveler or reservation agent will still need to manually update the rental vehicle reservation.
Thus, improved methods, systems, and computer program products to update travel reservation records that are based on specific rules or instructions are needed that improve computer-related technology by allowing computer performance of a function that was not previously performed by a computer.
In an embodiment of the invention, a system for updating an entire travel itinerary based on a modification to at least one reservation that is part of the entire travel itinerary is disclosed. The system includes one or more processors and a memory coupled to the processors. The memory stores data comprising program code that, when executed by the processors, causes the system to receive at least one confirmation message. The confirmation message includes updated information regarding at least one reservation. The system is also caused to determine that the reservation is associated with a user profile. The user profile is associated with a plurality of travel records. In response to the reservation being associated with the user profile, the system is further cause to create a new trip item for each reservation included with the confirmation message. The system is also caused to combine the new trip item with each of the plurality of travel records, and assign a respective score to each of the plurality of travel records that are combined with the new trip item. The respective score is based on a compatibility of a respective travel record combined with the new trip item. The system is also caused to select a specific travel record to update with the new trip item based on the respective scores of the plurality of travel records. The system is further caused to determine that the specific travel record that was selected includes write access. Finally, in response to determining that the specific travel record includes write access, the system is caused to update the specific travel record with the new trip item.
In one embodiment, in response to the specific travel record that is selected having no write access, a new travel record is created by the computer. The new travel record is updated with the new trip item.
In another embodiment, a plurality of trip items and the new trip item are chronologically ordered to form a timeline, and the trip items are each associated with one of the travel records.
In yet another embodiment, the system is caused to assign the respective score to each of the travel records that are combined with the new trip item by causing the system to determine that the new trip item overlaps with one or more of the plurality of trip items for each of the plurality of travel records. In response to determining that the new trip item does not overlap with one or more of the trip items, positive points are assigned to the respective score of one of the plurality of travel records.
In still another embodiment, the system is caused to assign the respective score to each of the travel records that are combined with the new trip item by causing the system to classify the new trip item and each of the plurality of trip items into categories. The categories include stationary, point-to-point, and roaming. The system is further caused to determine that both the new trip item and the one or more of the plurality of trip items that overlap are classified as point-to-point. In response to determining that the new trip item and the one or more of the plurality of trip items that overlap are classified as point-to-point, the system assigns negative points to the respective score of one of the plurality of travel records.
In another embodiment, the system is caused to assign the respective score to each of the travel records that are combined with the new trip item by causing the system to compare an end location of a preceding trip item with a start location of the new trip item. In response to the end location of the preceding trip item matching the start location of the new trip item, the system assigns positive points to the respective score of one of the plurality of travel records. The system is caused to compare a start location of a subsequent trip item with an end location of the new trip item. In response to the start location of the subsequent trip item matching the end location of the new trip item, the system assigns positive points to the respective score of one of the plurality of travel records. Finally, in response to the new trip item being ordered either first or last in the timeline, the system assigns positive points the respective score of one of the plurality of travel records.
In still another embodiment, the system is caused to assign the respective score to each of the travel records that are combined with the new trip item by causing the system to determine that passengers included within the at least one confirmation message match a passenger name record associated with each of the travel record. In response to the passengers included with the at least one confirmation message matching the passenger name record, the system assigns positive points to the respective score of one of the plurality of travel records.
In another embodiment, the system is caused to assign the respective score to each of the travel records that are combined with the new trip item by causing the system to determine that a number of passengers included with the at least one confirmation message is less than a total number of passengers included in a passenger name record associated with each of the plurality of travel records. In response to the number of passengers included with the at least one confirmation message being less than the total number of passengers, the system assigns positive points to the respective score of one of the plurality of travel records.
In one embodiment, the system is caused to determine that the respective score associated with one of the travel records is greater than or equal to a predetermined score. In response to the respective score associated with one of the travel records being greater than or equal to the predetermined score, the new trip item overlaps with one or more of the trip items for each of the travel records.
In another embodiment, the system is caused to determine that the respective score associated with one of the plurality of travel records is greater than or equal to a predetermined score. In response to determining that the respective score associated with one of the plurality of travel records is greater than or equal to a predetermined score, the specific travel record is updated as the selected travel record.
In yet another embodiment, selecting the specific travel record to update with the new trip item based on the respective scores of the plurality of travel records includes determining that the respective scores associated with the plurality of travel records are less than the predetermined score.
In yet another embodiment, a method of updating an entire travel itinerary based on a modification to at least one reservation that is part of the entire travel itinerary is disclosed. The method comprises receiving at least one confirmation message by a computer. The confirmation message includes updated information regarding the reservation. The method also includes determining, by the computer, that the reservation is associated with a user profile. The user profile is associated with a plurality of travel records. In response to the reservation being associated with the user profile, the method includes creating, by the computer, a new trip item for each reservation included with the confirmation message. The method also includes combining the new trip item with each of the plurality of travel records, and assigning a respective score to each of the plurality of travel records that are combined with the new trip item by the computer. The respective score is based on a compatibility of a respective travel record combined with the new trip item. The method further includes selecting, by the computer, a specific travel record to update with the new trip item based on the respective scores of the plurality of travel records. The method includes determining, by the computer, that the specific travel record that was selected includes write access. In response to determining that the specific travel record includes write access, the method includes updating the specific travel record with the new trip item.
In another embodiment of the invention, a computer program product is provided for updating an entire travel itinerary based on a modification to at least one reservation that is part of the entire travel itinerary. The computer program product comprises a non-transitory computer-readable storage medium and program code stored on the non-transitory computer-readable storage medium that, when executed by one or more processors, causes the one or more processors to to receive at least one confirmation message. The confirmation message includes updated information regarding the reservation. The system is also caused to determine that the reservation is associated with a user profile. The user profile is associated with a plurality of travel records. In response to the reservation being associated with the user profile, the system is further cause to create a new trip item for each reservation included with the confirmation message. The system is also caused to combine the new trip item with each of the plurality of travel records and assign a respective score to each of the plurality of travel records that are combined with the new trip item. The respective score is based on a compatibility of a respective travel record combined with the new trip item. The system is also caused to select a specific travel record to update with the new trip item based on the respective scores of the plurality of travel records. The system is further caused to determine that the specific travel record that was selected includes write access. Finally, in response to determining that the specific travel record includes write access, the system is caused to update the specific travel record with the new trip item.
The above summary presents a simplified summary in order to provide a basic understanding of some aspects of the systems and/or methods discussed herein. This summary is not an extensive overview of the systems and/or methods discussed herein. It is not intended to identify key/critical elements or to delineate the scope of such systems and/or methods. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate various embodiments of the invention and, together with the general description of the invention given above, and the detailed description of the embodiments given below, serve to explain the embodiments of the invention.
Referring now to
The client devices 14 may each comprise a desktop computer, laptop computer, tablet computer, smart phone, or any other suitable computing device. In one embodiment, an end user such as, for example, a traveler, may use a respective client device 14 to book a travel reservation. For example, the end user may launch a browser application, and use the browser application to search for and book travel services by accessing one of the GDSs 22, the travel websites 24, or any other suitable system though the network 26. For example, the traveler may launch a browser application, and use the browser application to search for travel services on the website provided by one of the GDSs 22, the travel website 24, or any other suitable system. The traveler may book a selected travel service by entering payment information into the website. Alternatively, in another embodiment, the client devices 14 may provide travel agents with an interface for accessing the GDS 12 that enables agents to search for and book travel itineraries.
Each GDS 22 may identify travel itineraries including flights from multiple airlines, and may also provide travel itineraries that include services such as train travel, hotel rooms, car rentals, sightseeing, and other travel-related activities. Each GDS 22 may maintain links to a plurality of carrier systems that enable each GDS 22 to route reservation requests from the validating carrier or travel agency to a corresponding operating carrier. The client devices 14 may thereby book flights on multiple airlines via a single connection to the GDS 22. The travel websites 24 may be any website on the world wide web that may be used to book travel reservations such as, but not limited to, airline tickets, hotel rooms, and car rentals.
The client devices 14 may access the trip management system 20 through the network 26. As seen in
As seen in
Referring now to
The processor 52 may include one or more devices selected from microprocessors, micro-controllers, digital signal processors, microcomputers, central processing units, field programmable gate arrays, programmable logic devices, state machines, logic circuits, analog circuits, digital circuits, or any other devices that manipulate signals (analog or digital) based on operational instructions that are stored in the memory 54. Memory 54 may include a single memory device or a plurality of memory devices including, but not limited to, read-only memory (ROM), random access memory (RAM), volatile memory, non-volatile memory, static random access memory (SRAM), dynamic random access memory (DRAM), flash memory, cache memory, or any other device capable of storing information. The mass storage memory device 56 may include data storage devices such as a hard drive, optical drive, tape drive, volatile or non-volatile solid state device, or any other device capable of storing information.
The processor 52 may operate under the control of an operating system 66 that resides in memory 54. The operating system 66 may manage computer resources so that computer program code embodied as one or more computer software applications, such as an application 68 residing in memory 54, may have instructions executed by the processor 52. In an alternative embodiment, the processor 52 may execute the application 48 directly, in which case the operating system 66 may be omitted. One or more data structures 70 may also reside in memory 54, and may be used by the processor 52, operating system 66, or application 68 to store or manipulate data.
The I/O interface 58 may provide a machine interface that operatively couples the processor 32 to other devices and systems, such as the network 26 or external resource 62. The application 68 may thereby work cooperatively with the network 26 or external resource 62 by communicating via the I/O interface 58 to provide the various features, functions, applications, processes, or modules comprising embodiments of the invention. The application 68 may also have program code that is executed by one or more external resources 62, or otherwise rely on functions or signals provided by other system or network components external to the computer system 50. Indeed, given the nearly endless hardware and software configurations possible, persons having ordinary skill in the art will understand that embodiments of the invention may include applications that are located externally to the computer system 50, distributed among multiple computers or other external resources 62, or provided by computing resources (hardware and software) that are provided as a service over the network 26, such as a cloud computing service.
The HMI 60 may be operatively coupled to the processor 52 of computer system 50 in a known manner to allow a user to interact directly with the computer system 50. The HMI 60 may include video or alphanumeric displays, a touch screen, a speaker, and any other suitable audio and visual indicators capable of providing data to the user. The HMI 60 may also include input devices and controls such as an alphanumeric keyboard, a pointing device, keypads, pushbuttons, control knobs, microphones, etc., capable of accepting commands or input from the user and transmitting the entered input to the processor 52.
A database 64 may reside on the mass storage memory device 56, and may be used to collect and organize data used by the various systems and modules described herein. The database 64 may include data and supporting data structures that store and organize the data. In particular, the database 64 may be arranged with any database organization or structure including, but not limited to, a relational database, a hierarchical database, a network database, or combinations thereof. A database management system in the form of a computer software application executing as instructions on the processor 52 may be used to access the information or data stored in records of the database 64 in response to a query, where a query may be dynamically determined and executed by the operating system 66, other applications 68, or one or more modules.
Turning back to
The confirmation message 80 may be any type of electronic communication that may be sent to the client device 14 such as, but not limited to, an email, a text message, or a message communicated by a social media platform. The client device 14 may include a parser that interprets the confirmation message 80 and converts the confirmation message 80 into discrete attributes. The discrete attributes may indicate whether an existing reservation should be updated to take into account any changes to an existing reservation or, alternatively, if a new reservation has been made that may be added to an existing travel itinerary. For example, if the confirmation message 80 is an email and the client device 14 includes an email parser, then the email parser may create discrete attributes such as, but not limited to, the sender, the recipient, the subject of the email, the traveler or travelers associated with the email, the specific reservation or reservations being referenced in the email, and any updated information regarding the specific reservation or reservations referenced in the email. In another embodiment, if the confirmation message 80 is a text message, then the parser may create a discrete attribute that indicates the mobile number associated with the text message.
Once the parser of the client device 14 converts the confirmation message 80 into discrete attributes, the client device 14 may then send the discrete attributes of the confirmation message 80 over the network 26 to the trip management system 20. In response to receiving the confirmation message 80, the trip management system 20 then follows specific rules or instructions in order to update the existing reservation, which is described in greater detail below. Specifically, in response to receiving the confirmation message 80, the trip management system 20 determines if the traveler or travelers indicated in the confirmation message 80 are related to the user profile associated with the TTRs 30. In other words, the trip management system 20 determines if the modifications to the travel reservations indicated within the confirmation message 80 are for the specific traveler or travelers associated with the TTRs 30. In one embodiment, the trip management system 20 may determine the travelers indicated in the confirmation message 80 by an email address, a mobile number, or an account identifier.
It is to be appreciated that the trip management system 20 may implement an acceptance rule in order to ensure that the information conveyed by the confirmation message 80 is valid. In particular, the trip management system 20 may determine if enough information exists for the travel reservations indicated within the confirmation message 80 to update a travel itinerary. For example, the trip management system 20 may determine if each of the travel reservations have a start date as well as an end date before further analysis and updates may be performed.
In response to the travel reservation indicated in the confirmation message 80 being associated with the user profile and being valid with a start date and an end date, the trip management system 20 creates a new trip item for each reservation included within the confirmation message 80. The trip item is indicative of a particular reservation included in the travel itinerary.
Referring now to both
Sometimes a travel reservation associated with one of the ETRs 34 may have a start date but no end date. If an existing ETR 34 has a start date and no end date, then the trip management system 20 assumes that the end date and time is equal to the start date and time. In one exemplary embodiment, if the existing ETR 34 does not include a start time and end time, then a start time of 00:01 and an end time of 23:59 is assigned.
Continuing to refer to both
As seen in the timeline 100 illustrated in
In one exemplary embodiment, the new trip items 102, 104, and 106 may be classified into three categories: stationary, point-to-point, and roaming. The stationary category represents travel reservations that include a static location such as, for example, a hotel or restaurant reservation. The point-to-point category represents travel reservations that transport a traveler from one location to another such as, for example, an airline flight or a train. The roaming category represents travel reservations that provide a traveler with a vehicle, however, the traveler does not need to be situated within the vehicle for the entire time. Some examples of roaming reservations include, for example, bicycle and automobile rentals.
Turning back to
With specific reference to
For example, in one embodiment the new trip item 102 may have a start location Start2 of New York City. An end location End1 of the existing trip item 108 may also be in New York City as well. Thus, the trip management system 20 may assign a positive score, such as +5 points, to the respective TTR 30. The trip management system 20 may further compare an end location End3 of the new trip item 104 with a start location Start4 of the existing travel item 110 as well as a start location Start5 of the new trip item 106. If the end location End3 of the new trip item 104 matches the start location Start4 of the existing trip item 110, then another +5 points may be assigned to the respective TTR 30. Moreover, if the end location End3 of the new trip item 104 matches the start location Start5 of the new trip item 106, then another +5 points may be assigned to the respective TTR 30. Furthermore, if an end location End4 of the existing trip item 110 matches a start location Start6 of the existing trip item 112, then the trip management system 20 may also assign another +5 points to the respective TTR. Finally, the trip management system 20 may compare an end location End2 of the new trip item 102 with a start location Start7 with the existing trip item 114, and if the locations match then the trip management system 20 assigns +5 points. The trip management system 20 may also compare an end location End5 of the new trip item 106 with the start location Start7 of the existing trip item 114, and if the locations match, another +5 points may be assigned to the respective TTR 30 as well.
Referring back to
Sometimes, one or more of the TTRs 30 may include no respective PNR 32, but instead includes an ETR 34. In this instance, then the trip management system 20 may determine how many passengers are indicated in the confirmation message 80. If the number of passengers indicated in the confirmation message 80 match the number of passengers indicated within the ETR 34, then the trip management system may assign a positive score to the respective TTR 30. For example, in one embodiment, the trip management system 20 may assign a score of +20 points.
Continuing to refer to
In one embodiment, the respective scores associated with the TTRs 30 may never reach the maximum predetermined score. If each of the TTRs 30 are less than the predetermined score, then the trip management system 20 calculates a threshold numerical value. The threshold numerical value is determined by the number of trip items associated with each TTR 30 that does not require a new booking multiplied by a predetermined factor. In one exemplary approach, the predetermined factor is 10. If one of the TTRs 30 is greater than or equal to the threshold numerical value, then the trip management system 20 may select the respective TTR 30 to update with the new trip items.
Referring generally to the figures, the disclosed trip management system 20 provides a unique improvement in computer-related technology by allowing computer performance of a function that was not previously performed by a computer. Specifically, the disclosed trip management system 20 updates an entire travel itinerary based on a change to only one or a portion of the travel bookings that are part of the entire itinerary through the use of specific rules, instead of subjective evaluations that were previously performed manually. Indeed, travelers and reservation agents had previously determined the updates to the travel itinerary. Specifically, these individuals would subjectively evaluate and modify various travel reservations that were part of a single travel itinerary based on a change to a single travel reservation, which was a difficult, stressful, and time consuming task. Moreover, it is to be appreciated that the specific rules followed by the trip management system 20 such as, but not limited to, assigning a respective score to each of the travel records in order to determine compatibility, have not previously been used by travelers or reservation agents to update travel itineraries.
Furthermore, the disclosed trip management system 20 follows a non-conventional and non-generic approach to update an existing travel reservation. Indeed, the combination of combining a new trip item with all travel records, assigning a respective score to each travel record, and updating the existing reservation by selecting the travel record having the highest score is a non-conventional approach to update an existing travel reservation. It should be appreciated that unlike some existing systems currently available that only have the capability to update trips that have been made with a single GDS, the disclosed trip management system 20 has the ability to update travel itineraries created using various GDSs, or even travel websites. Indeed, travelers and reservation agents typically utilize more than one platform or GDS when booking multiple travel related reservations for a particular trip. Furthermore, the disclosed trip management system also provides a unified view of a specific travel itinerary that includes all travel booking, regardless of the travel platform that was used to create the particular reservation.
In general, the routines executed to implement the embodiments of the invention, whether implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions, or even a subset thereof, may be referred to herein as “computer program code,” or simply “program code.” Program code typically comprises computer-readable instructions that are resident at various times in various memory and storage devices in a computer and that, when read and executed by one or more processors in a computer, cause that computer to perform the operations necessary to execute operations and/or elements embodying the various aspects of the embodiments of the invention. Computer-readable program instructions for carrying out operations of the embodiments of the invention may be, for example, assembly language or either source code or object code written in any combination of one or more programming languages.
Various program code described herein may be identified based upon the application within that it is implemented in specific embodiments of the invention. However, it should be appreciated that any particular program nomenclature that follows is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature. Furthermore, given the generally endless number of manners in which computer programs may be organized into routines, procedures, methods, modules, objects, and the like, as well as the various manners in which program functionality may be allocated among various software layers that are resident within a typical computer (e.g., operating systems, libraries, API's, applications, applets, etc.), it should be appreciated that the embodiments of the invention are not limited to the specific organization and allocation of program functionality described herein.
The program code embodied in any of the applications/modules described herein is capable of being individually or collectively distributed as a program product in a variety of different forms. In particular, the program code may be distributed using a computer-readable storage medium having computer-readable program instructions thereon for causing a processor to carry out aspects of the embodiments of the invention.
Computer-readable storage media, which is inherently non-transitory, may include volatile and non-volatile, and removable and non-removable tangible media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data. Computer-readable storage media may further include RAM, ROM, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other solid state memory technology, portable compact disc read-only memory (CD-ROM), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and which can be read by a computer. A computer-readable storage medium should not be construed as transitory signals per se (e.g., radio waves or other propagating electromagnetic waves, electromagnetic waves propagating through a transmission media such as a waveguide, or electrical signals transmitted through a wire). Computer-readable program instructions may be downloaded to a computer, another type of programmable data processing apparatus, or another device from a computer-readable storage medium or to an external computer or external storage device via a network.
Computer-readable program instructions stored in a computer-readable medium may be used to direct a computer, other types of programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instructions that implement the functions, acts, and/or operations specified in the flow charts, sequence diagrams, and/or block diagrams. The computer program instructions may be provided to one or more processors of a general purpose computer, a special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the one or more processors, cause a series of computations to be performed to implement the functions, acts, and/or operations specified in the flow charts, sequence diagrams, and/or block diagrams.
In certain alternative embodiments, the functions, acts, and/or operations specified in the flow charts, sequence diagrams, and/or block diagrams may be re-ordered, processed serially, and/or processed concurrently consistent with embodiments of the invention. Moreover, any of the flow charts, sequence diagrams, and/or block diagrams may include more or fewer blocks than those illustrated consistent with embodiments of the invention.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the embodiments of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. Furthermore, to the extent that the terms “includes”, “having”, “has”, “with”, “comprised of”, or variants thereof are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising”.
While all of the invention has been illustrated by a description of various embodiments and while these embodiments have been described in considerable detail, it is not the intention of the Applicant to restrict or in any way limit the scope of the appended claims to such detail. Additional advantages and modifications will readily appear to those skilled in the art. The invention in its broader aspects is therefore not limited to the specific details, representative apparatus and method, and illustrative examples shown and described. Accordingly, departures may be made from such details without departing from the spirit or scope of the Applicant's general inventive concept.