“Beware though, bots have the illusion of simplicity on the front end but there are many hurdles to overcome to create a great experience. So much work to be done. Analytics, flow optimization, keeping up with ever changing platforms that have no standard. For deeper integrations and real commerce like Assist powers, you have error checking, integrations to APIs, routing and escalation to live human support, understanding NLP, no back buttons, no home button, etc etc. We have to unlearn everything we learned the past 20 years to create an amazing experience in this new browser.” — Shane Mac, CEO of Assist
This is the big one. We worked with one particular large publisher (can’t name names unfortunately, but hundreds of thousands of users) in two phases. We initially released a test phase that was sort of a “catch all”. Anyone could message a broad keyword to their bot and start a campaign. Although we had a huge number of users come in, engagement was relatively average (87% open rate and 27.05% click-through rate average over the course of the test). Drop off here was fairly high, about 3.14% of users had unsubscribed by the end of the test.
Simple chatbots, or bots, are easy to build. In fact, many coders have automated bot-building processes and templates. The majority of these processes follow simple code formulas that the designer plans, and the bots provide the responses coded into it—and only those responses. Simplistic bots (built in five minutes or less) typically respond to one or two very specific commands.
Dan uses an example of a text to speech bot that a user might operate within a car to turn windscreen wipers on and off, and lights on and off. The users’ natural language query is processed by the conversation service to work out the intent and the entity, and then using the context, replies through the dialog in a way that the user can understand.
“Utility gets something done following a prompt. At a higher level the more entertainment-related chatbots are able to answer all questions and get things done. Siri and Cortana you can have small talk with, as well as getting things done, so they are much harder to build. They took years and years of giant company’s efforts. Different companies that don’t have those resources, like Facebook, will build more constrained utility bots.”
This is a lot less complicated than it appears. Given a set of sentences, each belonging to a class, and a new input sentence, we can count the occurrence of each word in each class, account for its commonality and assign each class a score. Factoring for commonality is important: matching the word “it” is considerably less meaningful than a match for the word “cheese”. The class with the highest score is the one most likely to belong to the input sentence. This is a slight oversimplification as words need to be reduced to their stems, but you get the basic idea.
Designing for conversational interfaces represents a big shift in the way we are used to thinking about interaction. Chatbots have less signifiers and affordances than websites and apps – which means words have to work harder to deliver clarity, cohesion and utility for the user. It is a change of paradigm that requires designers to re-wire their brain, their deliverables and their design process to create successful bot experiences.
1. AI-based: these ones really rely on training and are fairly complicated to set up. You train the chatbot to understand specific topics and tell your users which topics your chatbot can engage with. AI chatbots require all sorts of fall back and intent training. For example, let’s say you built a doctor chatbot (off the top of my head because I am working on one at the moment), it would have to understand that “i have a headache” and “got a headache” and “my head hurts” are the same intent. The user is free to engage and the chatbot has to pick things up.
Before you even write a single line of code, it's important to write a functional specification so the development team has a clear idea of what the bot is expected to do. The specification should include a reasonably comprehensive list of user inputs and expected bot responses in various knowledge domains. This living document will be an invaluable guide for developing and testing your bot.
Feine, J., Morana, S., and Maedche, A. (2019). “Leveraging Machine-Executable Descriptive Knowledge in Design Science Research ‐ The Case of Designing Socially-Adaptive Chatbots”. In: Extending the Boundaries of Design Science Theory and Practice. Ed. by B. Tulu, S. Djamasbi, G. Leroy. Cham: Springer International Publishing, pp. 76–91. Download Publication
Do the nature of our services and size of our customer base warrant an investment in a more efficient and automated customer service response? How can we offer a more streamlined experience without (necessarily) increasing costly human resources?  Amtrak’s website receives over 375,000 daily visitors, and they wanted a solution that provided users with instant access to online self-service.
However, the revelations didn’t stop there. The researchers also learned that the bots had become remarkably sophisticated negotiators in a short period of time, with one bot even attempting to mislead a researcher by demonstrating interest in a particular item so it could gain crucial negotiating leverage at a later stage by willingly “sacrificing” the item in which it had feigned interest, indicating a remarkable level of premeditation and strategic “thinking.”

A chatbot (also known as a spy, conversational bot, chatterbot, interactive agent, conversational interface, Conversational AI, talkbot or artificial spy entity) is a computer program or an artificial intelligence which conducts a conversation via auditory or textual methods.[1] Such programs are often designed to convincingly simulate how a human would behave as a conversational partner, thereby passing the Turing test. Chatbots are typically used in dialog systems for various practical purposes including customer service or information acquisition. Some chatbots use sophisticated natural language processing systems, but many simpler ones scan for keywords within the input, then pull a reply with the most matching keywords, or the most similar wording pattern, from a database.