We’ve recently been working on a voice assistant that uses conversational AI to manage bookings and appointments.
In this post, we’re going to look at the nuances involved in virtual agents to manage bookings and appointments, and share how we’ve been able to craft a reliable solution, soon to be rolled out over restaurants across the country.
The customer journey
The following diagram shows a simplified version of the potential customer journeys through the reservation flow.
Let’s break that down into three example journeys.
- Customer requests a reservation, gives the booking details, gives the customer details and the booking is confirmed.
- Customer requests a reservation, gives the booking details and gives their own details. However, the virtual agent isn’t sure it caught the phone number so asks the customer to repeat it. Once the phone number is clarified, the booking is confirmed.
- Customer requests a reservation, gives the booking details but the virtual agent can not understand and so hands the call off to a human agent.
Understanding outcomes: reservation or question?
The first thing the virtual agent needs to do is understand what outcome the customer is looking for – do they want information, or do they want to make a reservation?
Rather than building this as an if-this-then-that style flow, our AI agent analyses whatever the customer says and uses its own understanding of natural language to decide how to move forward with the conversation. There’s no decision to ‘answer question’ or ‘make reservation’, it’s simply able to move in the right direction based on what the customer says.
For example, a customer might say, ‘I’d like to make a reservation, do you have wheelchair access?’ In this instance, the agent is going to understand that it needs to answer the question about wheelchair access before moving forward with the reservation.
Answering customer questions
Even though this AI agent is primarily a booking agent, not every customer who phones in is going to want to make a booking – at least, not without asking a few questions before – or during the process of – making a booking.
When a customer asks a question, it is entered into the model (the ‘brain’ behind the AI). Because the model has a good understanding of natural language, it is able to group that query together with all of the similar queries it has been trained on. The model then finds all of the information it could possibly return as an answer, and ranks it all in order of relevance to the original query. It then picks out the most relevant piece of information and parses it into a semantically correct sentence which it can say to the customer. This entire process happens in a matter of milliseconds.
Taking booking and appointment details
The AI agent uses speech recognition technology to understand what the customer is saying. It then utilises a component called value extraction to pick out the information it needs to complete the booking. The AI agent is then able to use this information to populate the booking in the restaurant’s back end system.
With this particular reservation use case, the agent needs to know the time and date of the booking, as well as how many people are coming, and it’s been programmed to know this. But the customer is still free to give this information in a way that comes naturally to them.
For example, some people might like a simple back and forth as follows:
Customer: I’d like to book a table.
Agent: What date would you like to book for?
Customer: 30th September
Agent: How many people will be dining?
Customer: 2 people
Agent: And what time would you like to come in?
But other people will find this process laborious, and will give all of the information in one go.
Customer: I’d like to book a table for 2 people for 6pm tomorrow please.
Our AI agent is able to pick out the relevant values (2 people, tomorrow, 6pm) from this sentence and use it to make the booking. But if the customer doesn’t volunteer all of the information up front (as in the first example), the AI knows to request the extra information it needs.
Taking customer details
In order to make a booking, the customer needs to provide their full name and telephone number. Our AI agent asks the customer if they’d like to use the number they are calling from as their contact number, or to provide another one.
If the customer chooses to provide another number, the agent uses speech recognition technology to record what the customer is saying, and artificial intelligence to understand nuances such as ‘double 7’, or ‘0 eight hundred’.
Names, on the other hand, are quite a bit more complicated.
The problem with names is that they can be literally anything. The variance in names between different languages is massive. Pair that with the fact that a name can be pretty much anything and you can see why it would be difficult for a machine to pick out what is a name and what is not.
We’ve trained our model on millions of first and last names, but seeing as it would be virtually impossible to list out every name, we also programme our agents to look for instances where names are requested, and break down names into smaller parts for recording. You can read more about how we handle neural language understanding of people’s names here.
Clarification and human handoff
While it would take us some time to completely automate reservations in this way, customers would be unlikely to put up with virtual agents when they fail. I’d love to be able to tell you that they don’t fail, but with so many moving parts, there is always the possibility that things can go wrong.
This particular AI agent will be working alongside human agents, meaning a greater number of calls can be handled, and a customer is never left waiting for someone to pick up. This also means the AI agent can pass the call onto a human agent at any time. The AI agent will continue to learn from its own experiences as well as those of the human agents it works alongside.
Updating restaurant details
This AI agent will be dealing with questions about restaurants, and will therefore need to be able to learn new information about menus, seasonal opening times etc quickly, and via cost-efficient means to the client.
Because the AI agent is searching for responses (rather than following a script), we can feed it new or updated information quickly, at any time. Once that information has been updated, the AI agent will be able to start disseminating it appropriately. This is much more cost effective than rewriting and re-programming an entire chatbot script, and is even quicker than training human agents.
The AI agent will be going live later this autumn (2019). We’ll share more here as we go along.
If you’d like to talk more about using conversational AI to manage bookings and appointments, get in touch with PolyAI today!