The Ultimate Guide To Designing A Chatbot Tech Stack

Sébastien Fourault
Chatbots Magazine
Published in
9 min readAug 31, 2017

--

If you’re working in the chatbot business (consulting, development, UX design…), this conversation may sound familiar:

Client — “What is the best technology to power my bot ?”

Me — “It’s not only 1 tech but a stack of multiple technologies. Each tech solves a problem, so it depends on your project.”

Client — “Ok so what do you advise me ?”

Me — “To answer that, I need to ask you the 10 holy chatbot questions !”

In this article, I detail my personal framework to co-design with your client the most efficient chatbot tech stack.

The Chatbot Landscape Is a Mess… Really

A Chatbot Landscape by KeyReply

As you can see, there’s so many players doing so many different stuff. Thus, it’s really hard for a client to have an idea of the right price he should pay for a chatbot.
Result: price for a chatbot project falls somewhere in between $5K and $500K. (Sometime for the same bot quality. WTF?!)

Every tech player argue to propose “the chatbot solution”, so even for tech people it’s hard to distinguish platforms, frameworks, NLP technologies, messaging players, code-free bot builders…

How To Choose The Right Tech Stack?

The Rules Of The Innovation Game

When designing a bot, keep in mind the 3 core dimensions of innovation : your product must be desirable, viable, feasible.

Those 3 criteria should guide your benchmark when choosing a tech : is it user friendly? does it have all the features you need ? for what price? …

Choosing Technologies Is The 3rd Step Of a Bot Project

  1. Identify the right use case and the right scope with your client : sometime projects are not feasible technically, not really useful, or even too expensive. Don’t hesitate to start small and scale up !
  2. Design the conversation flows (you can use RealtimeBoard a great collaborative mindmapping tool, or BotMock)
  3. Choose the most appropriate tech stack
  4. Develop in agile methodology using sprints, test with beta-users, improve the bot flow, the knowledge base, the bot personality…
  5. Scale up, follow analytics/KPI and compare to objectives you want to achieve

During step 1 and 2, you should gather all the info you’ll need to select the best technologies.

  • First, make sure your client understand the stakes of choosing the right technologies
  • Then, ask him the proper questions to make the most judicious choices

How To Explain The Technologies Powering a Chatbot?

  • Users interact through a device on a messaging platform, his message is processed through NLP.
  • Then the bot can launch an action, answer with realtime information from a database/API, or handover to a human.
  • The more message he receives, the more the bot improves : it’s called machine learning. Sometime a human helps the bot, it’s called supervised learning.

My drawing is really basic but has proven pretty efficient to explain non-tech people the key concepts/techno behind a bot :)

The 10 Vital Chatbot Questions

Here are what I consider to be the 10 subjects any botmaker need to tackle before choosing which technical solutions will power his bot.

The 10 chatbots questions

#1 — Messaging Interface

Which messaging platform(s) do you focus on ? Where are your users ? Should your service be accessible by everyone or only a certain group of users ? What device will they use to chat ? (smartphone, laptop, voice…)

  • Facebook Messenger, Kik, Telegram, Allo, Line, Viber… are great for mobile usages and if you want to quickly access lots of users (1.2 billion potential users on messenger)
  • WeChat is the major platform if you focus on Asian users
  • Slack is great to focus startups and developers (especially ChatOps usages)
  • Skype and Microsoft Teams are more for a corporate usage : chatbot for employees of a big company, with high data privacy issues
  • Whatsapp currently ban bots, but rumors say they will soon invite enterprises on the platform
  • Twilio enables you to send SMS, ideal for users that don’t have a smartphone or if you’re not sure which messaging platform they are willing to use
  • iMessage if most of your users own iPhones
  • A simple web widget if you plan to integrate the bot to a website
  • Twitter direct messages / tweets for communities based on twitter or to make a one-to-one conversation public and shareable
  • Amazon Echo, Google Assistant or MS Cortana if you want to use voice instead of messaging (I call them voicebots, in opposition to chatbots)

#2 — Graphical Botflow Building

4 code-free bot building platforms
  • The advanced technologies involves coding or configuring technical tools but are often more powerful.
  • The code-free technologies enable anyone to modify the bot with a graphic interface through drag&drop, but can be less customizable. We can mention Chatfuel, Converse.ai, Motion.ai, Smartly.ai, FlowXO, Octane.ai, Sequel, Gupshup…

The key question is : do you need non-tech people to be able to modify in real-time the content of the bot ? If the content often changes and you want to give autonomy to business people, consider all solutions with simple graphic interfaces.

#3 — Fluid Conversations

Is your bot a basic QnA or does it act like a real person ? (sending multiple messages, proposing options…)

There is plenty of solutions that are built on a question-answer base like QNAmaker from Microsoft, Operator by Intercom… so no need to build something too complex.
If you only need an interactive FAQ, it can be done in few minutes with those simple tools !

#4 — Rich & Interactive Content

Structures messages used in conversational UX design

Is your bot only with text or do you plan to use different types of structured messages ? (images, buttons, quick replies, lists, templates…)

In certain use cases you are forced to use only text, especially if you target SMS channel (old people, digital-reluctant segment, countries in development without smartphones…). Or if you plan to plug the bot on several messaging platforms that don’t propose the same template structures.

#5 — NLP (Natural Language Processing)

Do you REALLY need NLP ?!
I often hear people talking about how they really need their chatbot to be supersmart, full of AI, almost human.

Actually, most use cases don’t even need NLP as they just follow a simple flowchart !

For example, a chatbot that let you browse a product catalog and eventually give you the opening hour of the shop, don’t need a complex NLP solution. It can be achieved with buttons, quick replies and a good menu.

The 6 biggest NLP platforms

If you intend to build a real conversation, you definitely need NLP ! Here are above the 6 biggest NLP platforms, owned respectively by Facebook, IBM, Google, NuanceGroup, and Miscrosoft. I also add Recast, a french startup proposing a collaborative approach to NLP.
After doing my benchmark, my personal favourite is API.AI : simple, let you put your answers in the platform, small-talk feature, supervised learning, support many languages… But again, this is only personal :)

#6 — Supervised Learning

How humans help achatbot to be smarter over time

A chatbot is nothing without a human team, to improve his conversation flow, to add new intents, to enrich his knowledge base… It’s called supervised learning or training and it can be done live or after the conversation.
We can observe different pratices :

  • Live coaching : when the bot is not confident enough or if it doesn’t recognise any intent, a human is solicited to help him qualify the right intent.
  • Daily training : every day an operator goes through all the conversations and confirm/deny the intent qualified by the bot.
  • Weekly improvment : every week, the team gather and prioritise all the new features that would be interesting to add. Listen and observe your users, they will have unexpected behaviours that you need to adapt to.

#7 — Human Handover

Can you afford to have a real human always ready to takeover the conversation ? (when the bot don’t understand, or when a user wants to)
In many cases it’s really what will make an automated chatbot become an amazing experience for a customer.
Once again if you plan to integrate a human in the loop, be sure to include the right tech solution. For example :

  • Facebook messenger enables you to see all the conversations in your page manager. And they recently announced a handover protocol for developers
  • Operator from Intercom seems to be designed to let a human interfere in the conversation
  • Chatfuel proposes a button to begin a “live chat session”
  • Dashbot have a human takeover feature

#8 — API Integration

If you need to integrate third-parties via webservices, make sure your tech stack supports it. For example Chatfuel enables you to connect to Zappier, but most WYSIWYG platforms can’t connect to external webservices.
The most flexible is to code the bot logic yourself and to use REST APIs.

#9 — Language Support

Depending on the user targeted, the language criteria can be decisive. Most platforms handle English very well, but not all of them include other languages. And sometime the language is supported but the performances are not that good. To make your choice, you can find a comparative table in this article.

#10 — Pricing

Of course you should consider the price of all that softwares solutions and anticipate your user growth. In this article you can find all the prices for the licences. The business models you can find are mostly :

  • Free (with or without watermark)
  • Freemium (free until X messages/users or pay for advanced features)
  • Pay per messages / API request
  • Pay per users on platform
  • Subscription

My Favourite Stack ?

And… that’s it ! You should now be able to decide which stack to propose to your client and an estimation of its price over time :)

Currently my favourite stack is :

  • API.ai for NLP and Supervised Learning : great small talk feature, best platform for French language, beautiful interface…
  • Dashbot for Analytics and Human Takeover : very detailed stats, easy integration, transcripts… (analytics platforms benchmark here)
  • Botpress as a NodeJS framework : it’s quick to setup and pretty flexible
  • FbMessenger for messaging interface : 1.2 billion users, great conversational UX
  • Airtable as a database that can be updated by non-tech people (and sometime MongoDB if needed)
  • And many APIs depending on the project (Spotify, Youtube, Google Maps…)

If you need inspiration, there is a good initiative that tries to reference all the bot stacks : http://stack.botsfloor.com/ (currently in BETA)

Thanks for reading :)

I hope this quick article will help some of you. And please do not hesitate to give me feedbacks if you think of something I missed ;)

If you liked it, please share this with your Medium friends and hit that 👏 button below to spread it around even more :)

--

--

Mobile & Assistant Specialist @Google #Voice #Chatbots — Developer, Designer, Startuper with passion 👏