Exploration about chatbots

Victor Parpoil
ALLOHOUSTON
Published in
5 min readJul 25, 2018

Cet article a été traduit en Français sur notre blog :

As we were going to meet a customer and talk about chatbots, I did a short exploration to discover the possibilities offered by AI driven assistants, aka chatbots.

I had some background on chatbots because I tend to watch technology as it rises, especially in the digital area. One talk that could give you a taste of chatbot use in a business environment is the one given at Xebicon’17 by Horgix. He automated the bug tracking process for a company, using slack, Dialogflow and custom code connecting to Jira.

I started my journey looking for platforms that would directly solve my customer issue, which is:

We have a problem with the sales team that keep asking questions about product technical specifications by email. We are flooded by simple questions that could be answered automatically for most part by an AI. We think a chatbot could help…

I found a good number of companies that provide chatbots for customers so they can track their order or ask questions, but I found no company solving the exact issue I was looking for, focusing on business uses. Also, a lot of corporate websites of chatbot builders I crossed were using a technical lingo which made me feel their solution were complex ones.

Facing this, I felt I needed to dive into the ecosystem to understand how to build a chatbot with the existing technologies and platforms. I decided to take a use case to automate using a bot and to try to implement it.

Use case of a chatbot

At Le Square, we have a pool of twelve meeting rooms that anyone can book in a shared google calendar. This calendar worked very well at first because rooms weren’t booked all the time, so it was easy to lookup for an empty room. Now, the filing rate has increased a lot, and it’s way more difficult to find out which room is available (and the new layout for daily view in Google calendar doesn’t help).

Which one of the 12 rooms is available?

I decided I will create a bot in Slack that would assist me when I needed a room: lookup the shared agenda to help me decide which room to book and guide me to book the room.

I started googling around and found quite a lot of ressources talking about bots. I was looking for a benchmark between platforms to support my choice of a platform. I found this article which stands out on search results but which is outdated: things move really fast in the AI world, companies appear and disappear almost every day. I then thought ProductHunt could help me, without success (maybe I should have asked on Quora…) [edit: as of today July 25th, I got several propositions of platforms on PH]. My requirements were the existence of an API and multilingual support.

After some more search, I can attest that api.ai has great references around the web. It was bought by Google in late 2016 to become Dialogflow. I decided I would go with them because it seemed to have all I needed plus I felt like sticking within the Google environment would help to integrate google calendar into my logic.

Some cons about using Dialogflow

First drawback of the acquisition by Google : the forum discuss.api.ai is in readOnly mode since it has moved to a google forum (which look not as nice and familiar as the discourse interface) and a lot of the search results point over there. You feel like excavating archives from your cave and diving into outdated documentation to try to understand the issue you are facing (plus I just noticed the content is going to be deleted “The content and site will remain available until June 15th 2018”)

Second limit I experienced in Dialogflow is that the timeout set for the bot to answer a query is quite short: 5 seconds. This is good because it forces you as a bot designer to make your bot answer quickly to requests, which provides an enhanced user experience. However, it is a serious limitation while developing the bot, because you may want to have first a functional Proof Of Concept (POC) before looking for optimizations. Hence, you are forced to optimize your code first, before knowing that the bot will be able to deliver the value to the final user. I have read that some other platforms don’t have this limitation, but I cannot confirm it yet.

Third and last, the official documentation is very thin, not much examples or guides. I was also quite surprised to find so few online tutorials about Dialogflow.

Pros of using Dialogflow

  • The user interface of the bot configuration is really great!
  • Guides on connection multiple platforms to operate the chat part (Slack, Skype, Facebook Messenger, etc) were easy to use and quite well documented. I used Slack with success but had to do it twice to make it work.
  • The Firebase function integration works well and allows you to deploy functions in the cloud easily so you can connect some user intents to external API requests. However, the time to deploy is quite long and debugging could be made easier. Understanding the nodeJs fulfillment library was not very easy and gave me some hard times.

Final Thoughts

I managed to have a fully functional bot in about one (long) day so I’m quite happy with my setup (Dialogflow + firebase functions, code here).

Bot in action: with a few questions I can book a room in my shared agenda

However, I lost a lot of time while debugging because of the lack of documentation and relevant answers on forums or stack overflow. I think I might try the Microsoft bot framework for my next bot.

I would love to read what you think, so please comment and discuss bellow!

--

--