We recently launched Air Charter Amy for PlaneViz, a private jet charter broker. This is the story of how and why we built her and lessons learned so far.
Better early than late. Blue Nile, the jewelry website, was founded in 1999 when ecommerce was a new and pretty crude experience. Today it’s the #1 jewelry site. For chatbots and A.I. today is 1999.
Prefacing the development story, here are some takeaways for chatbot builders
- Conversation UI. A chatbot is a conversation UI. Conversation is equity. Marketing automation and broadcasts are not conversation.
- Business case. There should be a clear line of site between chatbot, more sales and/or lower costs. Otherwise it’s a science fair project.
- Visual Design. Keep it tight. Avoid wordy buttons that will be truncated by a phone display. For example, try “Question?” in place of “Do you have a question?”
- Language. Keep messages brief and set enough time between them for the user to read and grasp each one.
- Exit. Have some means to hand off to a human when the bot doesn’t understand or when the user wants to communicate with a real person.
Amy is a Facebook Messenger chatbot who guides users through predefined conversation flows and answers questions about private jet charter.
I am a co-founder of Scormi, Amy’s developer, and I also run air charter site PlaneViz. Amy’s development was and is guided by a clearly understood business purpose.
Chatbot Business Case
Like any other technology, a chatbot consumes resources to build, operate, and improve. That being reality, there should be a clear line of sight between chatbot and net income.
Amy has a two-fold business purpose. For PlaneViz, she’s a virtual sales assistant who can provide oft-repeated information about jet charters and can also gather information need to start a quote.
For Scormi she’s a proof of concept helpful in framing conversations with organizations interested using a chatbot and AI to engage with customers.
For example, if connected to a dispatching system Amy could automatically notify a customer of a delay, suggest options, and handle the response without human involvement. Amy can’t autonomously do that yet but future versions will.
Air Charter Amy is Conceived
Amy congealed out of the dust of a head on collision between AI and a dashboard analytics application we were working on. You can read about that in Jumping the Curve. Basically, AI is the future and analytics dashboards are not.
Meanwhile, my aviation blog PlaneViz had been sitting untouched for 18 months while I occasionally wondered what to do with it. The site began as an aviation classifieds project and I had Amy created for branding.
The classifieds didn’t catch on but the site continued as a blog/magazine and 5 years later had a steady flow of visitors from decent search rankings. With that, I just couldn’t pull the plug on it.
Part of my daily routine is reading the latest AI developments, which includes chatbot/virtual agent articles. The thought occurred to reincarnate PlaneViz as a jet charter site, then build a bot to engage with customers and to explore more sophisticated uses with the jet operators.
A.I. vs. Guided Conversation
There are two types of chatbot: those that are AI powered and those like Amy that use guided conversations sprinkled with a little natural language understanding capability.
AI-powered bots require large amounts of data from which they can learn. They’re well suited for call centers and other situations where it’s available.
A guided conversation chatbot doesn’t require data because the bot guides the conversation and the likely questions it will face are built right into it.
Bots with minimal data can be taught but they cannot learn. That’s not to say guided conversation chatbots are inferior, just that they have a different use case.
This first version of Amy is built on a conversation flow. For a chatbot, conversation is any kind of dialog that takes place between chatbot and user including tapping a button in response to the bot.
Making a Chatbot
In the beginning I used a spreadsheet to plan the chatbot conversation flow. Mercifully, a contact told me about botsociety.io, a visualization tool that enables bot creators to easily build a working mock-up without coding. It really expedited development.
The top benefit of a working mock-up is that it turns abstract conversation flows into a real UX/UI. Designers and developers can then experience the chatbot just as the end-user will.
Using Botsociety saved a lot of development time since I was able to work out most design and conversation issues before we started making the prototype. It might not be obvious but even a simple Facebook Messenger bot has design considerations.
Language style is one of them.
Smartphone messaging between people is the epitome of informal language. Cueing off that, I kept Amy’s language style friendly, informal, and concise. I probably spent more time on trimming conversation than on anything else.
For this proof of concept we limited natural language processing (NLP) to the FAQ section and a few hidden responses to random questions like “who made you?”
In general, NLP receives your question, derives the probable meaning of it, and returns a relevant answer. If there isn’t enough data for the AI to learn from then you can get frustrating outcomes. “What about pets?” is a predefined question that triggers a corresponding, predefined answer. All good. The same user intent “Can I bring a dog?” is not understood.
I choose Chatfuel for the development platform because it’s well suited for a guided conversation chatbot and easy to use.
Moving from Botsociety to Chatfuel was a snap. (After my opening paragraphs I’m sure you too are cringing at the site of that Broadcast icon in the Chatfuel menu.)
I chose Facebook messenger to be the UI for this version. Connecting Chatfuel to Facebook is one-click-easy and Messenger is widely used. I don’t really know if people who charter private jets use Facebook but my thinking is that those people have people.
A Facebook page can be configured to capture all conversations between Messenger and its users. The conversation will appear in the Page inbox, which makes it possible to observe how people are interacting with Amy.
It’s important to have a conversation exit strategy to a real person. The bot might not understand something or the user might want to engage with a person.
As we get a data flow from increased use of Amy we can add language variations that strengthen her natural language understanding. Whether that’s a manual or machine learning process depends on the amount of data in play and the chatbot platform.
For our human hand-off we use a Chatfuel feature that suspends chatting with Amy and offers the user the option to send a message to the Air Charter Amy Facebook page inbox. From that point a human can chat with the user, if available, or respond as soon as possible.
To invoke the Chatfuel conversation exit shown below I responded to an Amy question with a word she knows nothing about. Understanding what’s going on here has been Amy’s biggest sticking point with early users.
If you choose to deploy your chatbot on platform that permits custom coding then you can create a hand-off that is smoother and suits your workflow. Chatfuel’s stop chat feature isn’t the most intuitive or fluid but that’s the trade-off between coding and not coding.
Facebook Messenger users can try Air Charter Amy in Messenger by searching for Aircharteramy in the Messenger app. Please type “test” in the additional notes dialog if you follow the Get a Quote conversation path so I can distinguish between test quotes and real ones.
For now we’re only validating email address and telephone number since Amy sends quote request information to a person for further action.
Validation will be required when Amy is connected to 3rd party databases. Chatbot data validation is more challenging than website data captured due to its conversational nature. It’s worthy of it’s own article.
The next step for Amy is to autonomously provided a private jet charter quote. To do it requires that Amy interface with NLP for handling the dialog and flight scheduling and pricing databases.
We are already working on it.