Conversational Commerce. BOTs and AI
Thomas Jay
Senior Java Spring Boot, Gen AI, API, Python Architect/Developer focused on Performance and Security, building Agile teams and delivering products.
We've come a long way in the last 30 years. A formal SOA and ESB system that never fully delivered on all the promises, new web technology and of course the mobile app explosion. I've worked for large fortune 100 companies as well as startups and its always the same, jump onto the bleeding edge technology before your competitors. Keeping up with the Jones's is not the only play today but to beat your competition you need to jump ahead with some awesome technology but be careful of the sharp edges.
We've moved into the NEXT stage of computing. Having a great UI is old school, how about NO UI!
CHAT is the new UI
More and more people today are using chat style apps as the primary means of communications. SMS and Facebook make up a significant amount of this platform, add in SnapChat here and there and you left with a small whole that is exploding at an unreal rate, that's BOTS and AI based chat, from customer service pop-ups on web sites to full fledged Chat Bots integrated in social messaging.
Today the technology is so simple, if you can create a messaging system that supports 1 million concurrent connections (Think XMPP but enhanced) and then add in a bit of Natural Language Processing (NLP - I started using this 35 years ago for military apps) and then add in one of a few dozen platforms or roll your own if your a technology company (Tensor Flow, Open NLP, Amazon LEX, IBM Watson, Google Cloud, etc.) and you have the core foundation. But these technologies leave you wanting more, you need to add your domain knowledge and vocabulary, this is the key to success and adding true AI value to your system.
Try to create one experience for the customer, if the customer comes into a retail store and you have a sales person greet them remember that this is an expectation so mirror this online to a small extent, if the sales person remembers what they have ordered then this is a great icebreaker for any chat solution.
Customers want to be empowered not powerless, they don't want to end up in an endless loop in chat system, give them an option to talk to a human.
Machine + Human will be the winning team in AI
Today you want to win a customer, provide service and retain existing customers, ask your customers what they want, yes ask them for input, you might be surprised by the answer. Just don't ask them, look at the chat interactions online and see what they are typing, might be some gold in those messages!
Personalized Service - It's what your customers want and expect.
Its all about service, the more personalized the better. You don't want to show someone a toaster who purchased one last week from you, be careful that you don't track your users activity and then expect them to continue the same activity, just because I looked at a toaster last week and purchased one does not mean I am still looking for one.
Segmentation of customers may not work for a Chat interaction, look a like categorization can also be a false indicator.
Each Customer is Unique.
Engage your customers in real time, if you need to check on something try to do it while they are on the chat line, keep listening to what they are saying and learn.
By Capturing and reviewing you can learn what the customer needs are and measure your interface to allow you to address the touch points to be more successful. Yes that's a lot of words but what does it mean in a Chat based world? Pretty simple, monitor every chat interaction that your customers have, add a rating at the end of the chat and ask the customer if this provided the information or desired outcome, there is a reason so many sites have that little survey at the bottom of the page, get this real time feed back but most important have a HUMAN read all the chats, critical things will pop up like seeing that user ask if you have something in a different size not just a different color, this can make or break the Chat system, if you see the users entering a one word command like "Back", "Menu" or "Restart" then they understand they are they are using an automated system, if they are entering text like "I don't understand why I can't find this in blue or red" then you should think about educating your users, maybe simply by saying up front that this is an automated system but you can get a human at any time by just saying Human, this lets people that are comfortable with a Chat based system fly thru your system and others get connected to a human so both have a great experience.
Customers understand that a brand or service company needs information and they want to make the decision about what to share, don't just blast a questioner to them but walk them thru collecting data in a more personal way that explains why you need this information (Like asking a size range so you don't show products not available in those sizes) and you will see you obtain much more information as well as better quality of data.
Be careful in your interface and monitor Sentiment, Attitudes, Behaviors and most important Context. If your customer is getting mad or having a bad attitude then maybe its time to connect to a human, if the behavior is bad then maybe a human needs to connect with them outside the system.
Context is King
If your customer is shopping for shoes and then starts looking at candy bars, there is no reason to show them new Nike's, as the conversation moves so does CONTEXT, make sure you are Context Aware on all your messages, some system allow you to have follow up messages, make sure you track context as well, it might be embarrassing to offer "Extra Large Size" to someone who was looking at candy bars and it now looking at Sweat Pants.
Define your users Persona, might not be the same as an in-store and maybe not the same a general web, Chat Persona could be very different so think it thru.
Use Chat as an Engagement Tool, its not just support or ordering, this of it as another way to engage the customer or prospect.
Once you start building your system you will need to make some decisions about technology, there is plenty to choose from. I've been in the business for some time and been involved in many many chat and support system. Understand what is possible and what is not, what you can create, what you don't want to create and what you must create.
All the successful system I have developed involved leverage Micro Services Architecture such as NLP-as-a-Service. This removes one of the most complex components and hardest to maintain. Its pretty easy to write an NLP with open source components that works well in English but when you start adding other languages the complexity grows, there are many fantastic NLP as a service like API.AI, Amazon LEX, IBM Watson, etc. to choose from. Most NLP systems will allow you to define an "Intent" based on core conversations and map "Context" into the conversation.
Chat is one component but "Dispatch" is another, Dispatch will allow you to drive your conversations to the correct tools, there are lots of canned solution that allow you to add a widget to your web site or connect to Facebook Messenger but in reality you loose control, what if you want to have a Chat Bot for 99% of the requests but the 1% for critical support need to talk with a human. Very few canned system have that capability. What if you want to change vendors, having a vendor like IBM or Google connected directly to you website or Facebook account might not be what you want if you need to add or change to another vendor. If you use a "Dispatch" pattern then you just monitor the type of message and dispatch to the correct end point, it quickly allows you to be in control of the messages and where they get processed.
Set Expectations
On any Chat Bot / AI system the user will expect complete conversational interaction at the same level as any human, maybe even more advanced. Remember the Turing test? (Big obsession for me in college way back when) It's the competition for computer AI developers to try to get a set of judges to interact with two things behind a curtain, one is a person and one is a computer. The idea is to have the judges rule that the computer is the human. Its pretty simple these days to win these competitions if there is a set of rules that include possible conversations, but in real life you don't control the conversation! That being said, its one of the largest challenges in what is now considered AI to include a broader understanding of language. So set the expectations of the users early, have a message up front like "I can help you search for Flights and Hotels and answer questions about purchased flights and delays" this sets context parameters No reason for the user to ask about company hiring policy after you presented the possible context's that are available to converse with in the system.
Mobile Apps vs BOTs
Many people see a distinction between Mobile Apps and BOTs, I see no distinction. A mobile app could be a travel summary app that includes a messenger feature that connects to a search engine and support for a company or could be a stand alone messenger app. It should not matter, if you design the back end property with a dispatcher then any message that comes in from a mobile app can be routed as needed vs a message from a web site. You might find that the input processing is almost identical but the output differs, for example on Facebook Messenger you can display items as cards and the user can page thru them and select them as well as adding buttons for more information or for actions, simpler integration might request a yes or no input. Same functionality but different presentations of the same data.
Designing Conversational Commerce
Using a Chat Bot and AI solution might not do anything for your company, having the ability for someone to ask about your address or phone number might be cool but not too useful to the end user.
Lets look into a real conversation for a Flight Search.
User: I want a flight from San Francisco to Las Vegas leaving Friday afternoon and returning Sunday afternoon for one adult in economy class.
Wow, what a great customer. We identified the Intent (Flight) the Origin (SFO) the Destination (LAS) as well as Departing Time and Returning Time (Must be a round trip) and that there is only one adult and they are looking for a low cost economy flight. This is everything we need to search for flights, in a couple of seconds I can present the user with a few options, if they like one you can take a credit card and issue them a ticket. But this is not reality, there are so many things that normally happen other then this "Happy Path".
Most likely the Conversion is like this:
User: I want to fly
BOT: Where would you like to fly from and to?
User: Maybe San Francisco to LAS
BOT: OK great, when would you like to depart SFO?
User: In the afternoon
BOT: OK, What day in the afternoon?
User: Friday
BOT: Great Leaving Friday in the afternoon.
BOT: When would you like to return?
User: Sunday so I can be at work Monday
BOT: OK, Sunday, any time work OK for you?
User: As late as possible
BOT: OK, later in the day.
BOT: Is this just for you or will you have other passengers traveling with you?
User: Just me
BOT: Is Economy class OK
User: Yep
BOT: OK, I'm searching for a Flight from SFO leaving Friday afternoon to LAS returning Sunday evening for one adult flying Economy class. Searching now.
BOT: Here are three options.....(presents 3 options)
User: I forgot, I have my Mom too so I need another person
BOT: I'm sorry, I don't understand.
You just lost this customer because you do not understand "Follow Up" messages within the same CONTEXT.
SUMMARY
If you have an online support center that handles 100 calls per hour, maybe you can target 75% of these calls to a well designs BOT/AI. That's a massive savings in human capital and a huge success on customer support for the user. Consistent user experience always payoff.
Since a BOT can not fully replace a human yet, there are a few things that can be done to help fill the gaps.
Creating a Conversational Commerce solution using BOT's and AI is possible with today's off the shelf technologies with a bit of integration. You want to have the AI helping shoppers find the products they want and recommend additional items as well, you need to have a personalized but most important is "Contextual Context" so maintaining the correct "CONTEXT" of the discussion is the big win today. Ad in a bit of predictive context and sentiment analysis and your a long ways into the solution.
So you have been playing around with some of the tools in the market but they are all missing something. You can get a basic conversation flow working but some of the details fall short, this is normal and will take time to resolve these issues. Is there a magic bullet to solve them? YES there is!
The Missing Link
Don't forget to integrate the CHAT system into your domain, this means if the user is looking up product by your domain specific words then maps them into the system. for example when people look for a Flight they might say "San Francisco" or "San Francisco International Airport" or simply "SFO" all these key words must equate to "SFO" for a flight search, this means I need a "Hook" into my system to seed these values or look them up in the "Intent" rules. Most system have some level of "Web Hooks" or API that will allow this. The major components will then be the Response and Action. If you have a domain the requires product search, then the Response from the user will need to Trigger a Search and generate the Response, this is normally done as a "Web Hook" as well. You will have context information such as the "ACTION" to perform like "Product Search" after the search you can return the information to the user. There should be keys available for the user to create an event, this might be text that says Yes I want it or a button that says buy this one. The event will create an "ACTION" on your system for example to purchase a flight and then return the flight details to the user in the chat as well as email.
Any solution you create MUST have the integration into your DOMAIN, this normally consist of access to your database and trans actional system Since you need to be careful for various reasons such as security you want to make sure you work with a solid vendor and have everything behind SLL, most vendors now require HTTPS for all Web Hooks.
I'm asked all the time what is the magic bullet, this is it. Having the proper integration into your DOMAIN, I would normally think you have external API's for partners to search and purchase your products. Think of a Chat / AI system as as partner that you need to integrate with and the simplest way of doing this today are API's.
Summary
Don't worry about the complexity,,its only software. Creating the Conversational Commerce for your company is not as hard as it appears. Give it a try, ask for help (I'm always available). Think of 2 things you want to fulfill in Chat, maybe order status and support or maybe product search. Think about how to do this manually or on the phone. Sketch out the interactions between the conversation and the systems. Think of this as an SOA project and the Conversation flows from component to component, this is exactly what happens and how it should happen. Think of rules and how messages should be gated, what context is needed and where follow up context is needed and most important give the user a way to get out or "Restart" the flow, maybe a way to connect with a "Human" as well.
Good luck and feel free to share your experiences with me.