System and method of completing an activity via an agent

A system and method of completing an activity via an agent. The agent is embodied as agent software, which facilitates and/or performs activities on behalf of a user. The agent software may have a characteristic persona that it presents to the user in the form of an avatar on a display. The agent software may be part of a computer program stored in a memory and executed by a processor of a smartphone or other computer.

BACKGROUND

The present invention relates to systems and methods of completing activities, such as transactions, and more specifically to a system and method of completing an activity via an agent.

Users desire assistance in a number of ways when completing activities using computers and communication devices, such as smartphones.

Users also desire assistance when contacting or interacting with a provider of goods or services (hereinafter referred to simply as a provider) in-person, over a telephone or through a computer.

For example, a user may be involved in one or more travel activities involving airline, rental car and hotel related activities. If a flight is cancelled by the airline, the travel user must contact the provider to make other arrangements.

It would be desirable to provide an alternative method of completing activities which employs an agent to facilitate and/or perform the activities on behalf of a user, such as when problems occur with providers.

SUMMARY

In accordance with the teachings of the present invention, a system and method of completing an activity via an agent is provided.

A user may download a native mobile application containing agent software to a smartphone. The agent software may include user interface elements based upon any user interface convention. For example the agent software may generate an avatar for display, which provides a “face” to the user. The avatar allows users to interact with the mobile application in much the same way as they would with a human agent.

The agent software may additionally be capable of reacting to the user's body language through camera input, voice inflection through microphone input, and/or other cues to adjust its virtual personality to suit the situation.

The agent software may be accessed via a smartphone or kiosk or other computing device. The agent software may respond to various types of user inputs, such as voice, touch, key, and/or mouse input. The agent software may also be capable of accepting information from other sources, such as location information from smartphones and other portable devices.

The agent software may initiate activities or respond to user input. For example, the agent software may be configured to provide alerts and/or other information to a user based upon configuration settings and information in a user profile. As another example, the agent software may respond to user requests, such as “when does my next flight depart?”

In one embodiment, the agent software may be used by a user to perform activities associated with a provider, such as perform transactions, provide reminders and other information, and assist with decision-making and problem resolution. The agent software provides information to the user and guides the user through the activities.

For example, as part of travel-related activities, the agent software may guide the user through travel disruptions and changes. The agent software may also make changes on behalf of the user based upon information in a user profile and alert the user to the changes.

An example method of completing an activity includes displaying an avatar in various forms of appearance, which may include positions and/or poses, during steps of the activity. The various forms of appearance communicate information to assist a user in completing the steps, including recording required user inputs during the steps.

The avatar may be part of a pictographic language system. The avatar may include a head, arms, and/or a body. One form of appearance may include an introductory form of appearance corresponding to a first step of the task. Another form of appearance may include an option clarifier form of appearance accompanied by choice buttons when a corresponding step requires the user to make a choice. Another form of appearance may include a clarifier form of appearance accompanied by information to explain a corresponding step.

In an example embodiment, a processor of a mobile communication device is configured to display screens during an activity including an avatar in various forms of appearance communicating information to assist a user in completing corresponding steps of the activity, and to receive required user inputs during the steps. The processor may be configured to connect to a server in order to perform the activity. Alternatively, the processor may be configured to perform the activity alone. In yet another alternative, the processor may be configured to perform portions of the activity alone, locally store results, and send the results to the server when the processor establishes a connection with the server and/or complete the remaining portion of the activity.

An example method of assisting a travel user includes completing a travel itinerary by a computer executing agent software, including displaying an avatar by the agent software to assist the travel user in making selections, receiving by the agent software information which indicates that an upcoming stage of the journey should be modified, in response to the information, modifying the upcoming stage by the agent software, and displaying the avatar to communicate a modified itinerary to the travel user.

DETAILED DESCRIPTION

With reference toFIG. 1, an example system10for completing activities via an agent is illustrated. The agent is embodied as agent software20, which facilitates and/or performs activities on behalf of a user. For example, agent software20may monitor predetermined events, notify a user when events occur, respond to user inquiries, and intervene to perform activities. Agent software20may have a characteristic persona that it presents to the user in the form of an avatar30on a display.

In more detail, example system10includes a computer14, which includes one or more processors, memory, and program and data storage. Computer14may execute an operating system, such as a Microsoft, Google, Apple, or Linux operating system. Computer14further includes network circuitry for connecting to a network16, via wire and/or wireless, and other circuitry for connecting to one or more peripherals, such as an input device and display (e.g., a touch overlay to the display), a camera, sound circuitry and a microphone. For example, computer14may include Universal Serial Bus (USB) circuitry and/or Bluetooth standard circuitry. Computer14may further include location determining circuitry, such as global positioning satellite (GPS) circuitry.

Computer14may include, but not be limited to, a kiosk, a personal computer, a portable computer, or a mobile computing/communication device, such as a smartphone, tablet, or personal digital assistant.

Computer14executes other computer software that may be stored in a computer readable medium. For example, computer14executes application software18and agent software20. Computer14may locally store and execute one or more of applications18. Alternatively, computer14may execute applications18from server12, which may host applications18as services “in the cloud”.

Applications18may be modular nature. Each application18may perform a specific function, but each application may interact with other applications in servicing the user.

For example, a software module/application18dedicated to airline flight rebooking (re-accommodation) would receive information passed from other applications18, such as a check-in application and from agent software20.

Users establish accounts or memberships with the entities associated with server12and provider servers24.

Server12includes one or more computers each having one or more processors, memory, and program and data storage. Server12may execute an operating system such as a Microsoft or Linux operating system. Server12further includes network circuitry for connecting to network16, and may include other circuitry for connecting to peripherals. Server12may include a web server connected to the World Wide Web (WWW or “web”) and provide web content, including web pages.

Server12may interact with servers24of different providers via network16. For example, server12may interact with an airline server, a hotel server, and/or a rental car server during booking of a new flight following cancellation of a scheduled flight, in order to change a hotel reservation or a rental car reservation.

Server12may perform additional functions identified in published U.S. application Ser. No. 12/508,998, filed Jul. 24, 2009, and entitled, “System and Method of Managing User Information”, which is hereby incorporated by reference in its entirety.

Network16may include any combination of wired and wireless networks, and may include a global communications information network, also known as the Internet.

Agent Software

Agent software20acts as an intermediary or agent “behind the scenes”. Agent software20may act alone to perform activities or in concert with cloud-based applications18. Agent software20conducts activities on behalf of the user. For example, agent software20may monitor predetermined events, notify a user when events occur, respond to user inquiries, intervene when problems occur, and react to the problems in real time.

Agent software may be accessed via any type of computer14. Agent software20may respond to various types of user inputs, such as voice, touch, key, and/or mouse input. The agent software may also be capable of accepting information from other sources, such as location information (e.g., global positioning satellite (GPS) information) from, for example, smartphones.

Agent software20relies on locally available and/or stored information, such as user preferences in profiles22. Alternatively or in addition, agent software may rely on information and/or user preferences stored at server12. Agent software20understands relationships between activity information from various sources, including server12and provider servers24.

Profiles22may contain information such as providers of interest, user names and passwords for logging into server12and selected provider servers24, user preferences for selected providers, provider loyalty program information (e.g., frequent flyer number), and other information specific to a purpose.

For example, when used in connection with a travel transaction, profile22may include third party contact information. If a user is traveling and delayed, agent software20may send messages to friends, relatives, business contacts, or anyone else the user has identified in profile22.

Agent software20manages and stores a digital wallet. A digital wallet includes payment information, such as credit card information, for making purchases from providers.

In the travel context, agent software20also manages and stores itineraries. Itineraries include airline, car rental, hotel, and other travel reservation information.

Agent software20monitors provider information for flight cancellations and other events during the user's journey and reacts by conducting activities on behalf of the user in accordance with preferences in the user's profile22. Agent software20may recognize itinerary elements, such as flight, hotel room, and rental car details. Agent software20may also consider calendar, contacts, and other personal information. Agent software20may compute a travel event sequence and respond to changes or interruptions while balancing trade-offs between available choices. For example, agent software20may determine the impact of a flight delay on other travel activities, such as a hotel or other reservation.

Agent software20works with existing calendar and contact applications executed by computer14where practical. For example, a small extensible markup language (XML) code snippet, recognizable by agent software20, may be added to contacts in Microsoft Outlook software, to facilitate quick flagging of contacts by agent software20.

Agent software20also works to provide information back to providers. This information can take the form of structured data exchanges between systems or even simple voice calls.

Using peripherals associated with computer14, agent software20may also be capable of reacting to the user's body language (through analysis of camera images), voice inflection (through analysis of microphone recordings), touch input method (through analysis of touch inputs), and other cues to adjust its virtual personality to suit the situation.

Agent software20is designed to be part of an open platform, encouraging other software developers to write to the same specification for the purposes of extension. For example, in a travel context, travel providers and any other services useful to the travel user can leverage the platform. Information from these external sources may be fed back into agent software20to improve its ability to make decisions on behalf of a travel user.

Avatar

Agent software20may have a characteristic persona that it presents to the user in the form of an avatar30. When users need to interact with applications18, avatar30facilitates the interaction in much the same way as a human agent, but graphically. Avatar30may be presented as images or a sequence of images. In an example embodiment, an animated avatar30may also communicate in a particular language with known cultural idiosyncrasies based upon identification information provided by the user or the user's profile22. Agent software20may provide corresponding aural messages.

Referring now toFIG. 2, one type of avatar30is described in U.S. patent application Ser. No. 13/739,474, filed Jan. 11, 2013, and entitled, “Techniques for Transacting via an Animated Assistant,” which is hereby incorporated by reference in its entirety.

Computer screen32illustrates an example avatar30, which includes head34, body36, and arms38in different positions, which may include poses, for communicating information. Head34may be circular in shape. The length of body36may be one and a half times the diameter of head34. The thickest point of body36may be equal to the diameter of head34. The distance between the bottom of head34and the top of body36may be an eighth of the diameter of head34.

The length of arms38may be equal to the diameter of head34. The thickness of arms38may be equal to a eighth of the diameter of head34. The width of each arm36at its middle point may be equal to three eights the diameter of head34. The distance between the centerline and the beginning of arms38may be one fourth of the diameter of head34. The top of arms38may be at an eighth of the diameter of head34from the top of body36.

In this example, avatar30is part of a pictographic language system which is intended to communicate information to a user without regard to the gender, literacy level, spoken language or technical competence of the user. The pictographic language system addresses challenges associated with offering complex technology-based services to emerging markets where user capabilities, such as language literacy, are extremely limited.

The pictographic language system specifically addresses communicating with a user, including where the user does not speak the local language, the user does not read the local language, the user does not read their spoken language, the user is not accustomed to using self-serve technology, the user is not accustomed to using computers or smartphones and the user fears and/or does not trust technology-based services.

The pictographic language system has avatar30positioned in different pre-established ways alone and/or with other symbols to facilitate communication. The number of symbols may be determined by the familiarity and type of service. Example design guidelines may include the following:1. A pictographic sequence may include four steps, intro step, option clarifier, clarifier, and conclusion. Every sequence may include the intro step and conclusion. The option clarifier may be only needed if the service has multiple options, and showing that there are options is critical to the user's understanding. The clarifier may be needed when the other three steps are insufficient to explain the service. If the option clarifier is not included the clarifier must be included. If the clarifier is not included the option clarifier must be included. In one example, three may be the minimum number of symbols to be used and four may be the maximum.2. Branching involves an option clarifier. The use of an option clarifier causes the preceding symbols in the sequence to follow one of the services shown. Of the possible services that can be displayed on the symbol, the narrative may follow the one that is most frequently used by the user population. It is important to note that when people of multiple literacy levels are using computer14, the service displayed may reflect the one that the population with the lowest literacy level uses the most frequently.3. A speed bump is a device that slows cognitive processing. In pictographic sequences speed bumps cause users to take a longer time to interpret meaning, increasing their likelihood to correctly identify unfamiliar services. The choice to eliminate or incorporate speed bumps may be based on the user's familiarity with each service.4. When familiar symbols are used they cause the user to jump to a conclusion, i.e., into a “rabbit hole”. After this happens the user forces all of the preceding symbols to fit their assumption. This is beneficial when the service is familiar—it will lead to faster processing time. Preceding symbols will be interpreted correctly. If the service is unfamiliar this can be destructive to the user's understanding. Jumping to a conclusion of an unfamiliar service will cause them to conclude incorrectly.5. A cognitive lure is a device that draws users into a deeper state of cognitive processing. This may be done by depicting symbols that cause users to empathize with avatar30. The user's empathy for avatar30gives them motivation to solve her problem, which is much like their problem. Agent software20and the user may both need to figure out what this service is. This causes the user to think more critically about what each symbol means and then makes a final conclusion based on all symbols in the sequence.

Example Method of Operation

With reference toFIG. 3, a travel user causes a smartphone to download a native mobile application that performs one or more travel-related activities in step40. The mobile application includes agent software20with avatar30(FIG. 4A-4F). The mobile application may be unique to, and be provided by, a single travel provider (e.g. one airline). Alternatively, the mobile application may be developed by a third party for use with more than one provider (e.g. airlines) or more than one type of provider (e.g., airlines and hotels). The travel user uses the mobile application to conduct activities when disconnected from or when connected to one or more services “in the cloud”. Agent software20acts as a bridge between the travel user and providers.

For example, a travel user may perform some activities using the mobile application without requiring a connection to a provider server24. The smartphone completes such activities using information locally stored in the smartphone. The mobile application later sends any required information to a provider server24when a connection is established. For other activities, the mobile application may require a connection.

With reference toFIG. 4A, an example screen shows avatar30holding three buttons associated with three transaction choices, including a make reservation button60, a check reservation status button62, and a check-in button64. Avatar30may shake each button to prompt a user to choose. Further, avatar30may nod following a travel customer selection of one of buttons60-64to convey acceptance of a selection.

In step42, agent software20makes one or more reservations under travel customer control. Example reservations include airline, rental car, hotel, and/or other services.

The travel customer selects make reservation button60held by avatar30by touching the screen of the smartphone over button60. Avatar30may then display a calendar70showing dates with cost information (FIG. 4B). The travel customer then selects one of the date/cost combinations by touching the screen of the smartphone over the selected date/cost combination.

Agent software20may leverage information that a travel customer would desire in making a journey. That information may include Information from travel providers used during the journey (e.g. airline flight status), information needed to conduct a transaction (e.g. purchase an upgrade), information incidental to the travel customer's journey (e.g. weather, traffic), information related to the purpose for the journey (e.g. meeting location and other individuals known to the travel customer making the same journey).

The degree of personal involvement by the travel customer can vary based upon preferences in profile22. Agent software20is capable of using preference information in profile22to make decisions on behalf of the travel customer. Agent software20may update profile22after each activity as “learning” so that it can make decisions based upon past experience. Regardless, avatar30makes tasks easier and more intuitive.

For example, agent software20assists the travel customer in completing the details of the itinerary and payment, and arranges all stages, including transport to an airport, the flight reservation, the rental car reservation upon arrival, and the hotel reservation. Avatar30makes the process more intuitive to the travel customer. Using graphics-based dialogues including avatar30, agent software20prompts the travel customer to input the relevant information. For example, agent software20may display avatar30pulling out a passport80from a briefcase and holding the passport (FIG. 4C), with a subsequent customer input82to enter the passport information into the mobile application (FIG. 4D).

Alternatively, the travel customer may provide only necessary pieces of information to agent software20and then agent software20provide the details for the reservations.

For example, the travel customer may using the mobile application enter a desired arrival time at a hotel in a specific destination city on a specific date. Agent software20obtains the current location from profile22and makes all necessary flight and rental car arrangements. Agent software20may then provide payment when required from the travel customer's digital wallet.

As another example, agent software20may cause avatar30to display a dollar or other currency symbol along with a question mark, prompting the travel customer to approve a payment (FIG. 4E). The payment method may be either input by the travel customer or stored in the system within a passenger profile22or digital wallet or other such storage method.

In step44, agent software20interacts with provider servers24for status messages. For example, agent software20obtains flight status information from an airline provider server24by selecting check reservation status button62inFIG. 4A.

Agent software20acts as a “trip monitor” and is capable of recognizing itinerary elements such as flights, hotel room details, etc., and initiating actions without first receiving travel customer input. From available data, agent software20can compute a travel event sequence, alert the travel customer to predetermined events, respond to changes or interruptions, and request travel customer input, when necessary.

If agent software20detects no expected modifications to any stages of the itinerary, then the travel customer follows the itinerary as originally planned. If, on the other hand, agent software20receives information that a stage is expected to be modified, as when the planned flight will be cancelled, agent software20, through one or more applications18, modifies the stage, as by booking another flight. When agent software20acts on behalf of the travel customer to modify the itinerary, avatar30communicates that a change has been made through a series of icons and dialogues. For example, avatar30may display an exclamation point with a button100to display details. When pressed by the travel customer, the changed information is displayed in a box102for review (FIG. 4F).

Agent software20may actively pursue such information, as by periodically contacting the airline provider server24, and inquiring whether the flight is expected to be timely. Alternately, the airline, or other provider of a stage, can notify agent software20if a deviation from the scheduled flight is expected to occur. For example, the airline can send an e-mail message.

In step46, agent software20determines that a modification in the itinerary must be made based upon a comparison of travel customer preferences with current travel information from travel providers and modifies the itinerary. Agent software20may make new travel arrangements without involving the travel customer. Alternatively, agent software20may alert the travel customer and walk the travel customer through possible selections provided by agent software20as in step42. When agent software20acts on behalf of the travel customer to modify the itinerary, avatar30communicates that a change has been made through a series of icons and dialogues. For example, avatar30may display an exclamation point with a button to display details, similar toFIG. 4F. When pressed by the travel customer, the changed information is displayed for review.

Modifications may be based upon events, such as flight cancellations; however, actual cancellation may not be required for obtaining a substitute itinerary.

Agent software20may obtain a substitute flight based upon receipt of the report of a three hour expected delay. Avatar30may communicate information to the travel customer more promptly than the travel provider.

As another example, if an airline reports a three hour delay on a heavily traveled day, a business rule within agent software20may define this event as being eligible for proactive modification. In other words, agent software20may apply a different set of rules for certain circumstances so as to minimize the impact of travel disruptions upon the travel customer.

Making new travel arrangements involving modifications to one travel stage may require modifications of other stages. For example, a new flight reservation may require a change in rental car arrangements. Agent software20detects the need for this change by consulting profile22for travel customer preferences involving, for example, acceptable limits on delays, such as the layover delay, limits on costs, limits on time-durations of travel stages, limits on distances between hotels and sites to be visited during other stages, etc. Avatar30may communicate these change events through a combination of graphic and dialogues.

Agent software20may also be used to bridge the gap between one travel supplier and another. For example, agent software20may notify a hotel provider when a travel customer will be arriving a day later based upon location and other information provided from the travel customer's smartphone to the hotel provider's server.

A version of agent software20and avatar30may be incorporated into travel agent and provider software, providing the same level of non-verbal communication enjoyed by the travel customer to providers.

In step48, agent software20alerts the travel customer to the change in flight and displays a new itinerary.

In step50, agent software20interacts with the airline provider server24to check-in for the flight and displays an indication that check-in has been completed.

In step52, agent software20interacts with the rental car provider server24to check-in for the rental car and displays an indication that check-in has been completed.

In step54, agent software20interacts with the hotel provider server24to check-in and pay for a hotel room and displays an indication that check-in has been completed.

Additional Example Activities

In a first example transaction, a travel user is departing from JFK airport when a flight is canceled. Agent software20recognized the cancellation was departing from JFK and knows that there are other metropolitan airports in the area that could be available. Agent software20identifies an eligible flight departing from Newark (EWR) and searches for transportation between JFK and EWR. Agent software20knows the travel user's preference is for speed and minimal wait, so agent software20chooses a helicopter flight for $150 over a 3 hour drive in traffic in a $75 town car. Agent software20confirms the new flight and stores a boarding pass on the travel user's smartphone, selecting the preferred seat and requesting an upgrade on behalf of the travel user. Finally, agent software20uses avatar30to communicate all of the relevant details to the travel user in clear, simple dialogue with the help of icons and graphics where useful.

In a second example transaction, a travel user is making a trip to Atlanta for a business meeting. Agent software20looks at the travel user's calendar and contact list. Agent software20consults other itineraries registered in the system and compares them with the travel user's list of preferred contacts. If a match is found, agent software20alerts the travel user that a preferred contact is traveling on the same flight or will be at the same meeting and offers to make dinner arrangements. If accepted, agent software20extends an invitation to the other travel user via that individual's own version of agent software20.

In a third example transaction, a travel user asks agent software20to make dining reservations for a user meeting. Agent software20looks out at the period in question, compares prospective restaurant menus against the travel user's preferences, and checks to ensure the selected location has availability and accepts the travel user's corporate credit card.

In a fourth example transaction, a travel user's flight is canceled. Agent software20knows that the travel is at her home airport and that the travel user's preference is to rebook travel for the next day. In addition to making the flight and rental car changes, agent software20recognizes that the hotel's booking system requires verbal confirmation of last minute hotel changes. Agent software20dials the hotel directly, and in a synthesized voice, carries on a reverse-automated voice response conversation with a hotel agent such as: “I am an agent, calling on behalf of Susan Jones who has a reservation for tonight. The confirmation number is ABC123. Susan Jones' flight is canceled and she would like to cancel tonight's hotel reservation. Susan is expected to arrive tomorrow and keep the rest of her reservation. If you have questions, please contact Susan directly at 212-555-1212. Do you understand?” If the agent replies “Yes” then agent software20notifies the travel user that the change was successful.

In a fifth example transaction, a travel user speaks to agent software20: “Agent, don't seat me next to a talker if the airline offers social network integration.” The travel user may set a tolerance for certain duration. Agent software20records the instructions and attempts to comply in making the reservation.

In a sixth example transaction, a travel user is assigned a non-preferred seat due to lack of availability. Agent software20can reach out in gate area for other agent software users that might want to exchange seats. When a willing trade is found, agent software20communicates with the travel provider that people wanting to change seats. If the travel provider agent cannot accommodate they can put out incentive to others on flight to switch seats in exchange for loyalty points, miles, or some other perk. This incentive is transmitted from the travel provider to travel users by agent software20. In a similar fashion, agent software20can also transmit a request for seat companionship.

In a seventh example transaction, a travel user arrives in advance of the car rental being ready. Agent software20notifies the travel user of the delay. In order to expedite the rental preparation, agent software20also notifies the agency that the travel user is in the vicinity.

In an eighth example transaction, agent software20recognizes that two co-workers are traveling together. Agent software20finds locations nearby to return a second car if the two co-workers combine to use the same car after pickup.

Although the present invention has been described with particular reference to certain preferred embodiments thereof, variations and modifications of the present invention can be effected within the spirit and scope of the following claims. For example, the invention has applicability to other transaction environments in addition to travel.