Late last year, we embarked on a hack day to explore different chatbot frameworks. Our developers were divided up into groups, each of which focused on a particular chatbot framework. This series details what our developers discovered as they got hands-on with the different platforms. First up is Chatfuel, which was investigated by my myself, Wayne, Rob, Jakub and Stu.
What is Chatfuel?
Chatfuel is a cloud-based, visually-led development tool built by Facebook. It powers a range of chatbots for a number of leading organisations worldwide – from TechCrunch and Trivago, to Nestlé and Reebok.
With this framework, users can build bots by arranging blocks of functionality – for example, to show text, display a gallery, ask questions to collect data, show images or call an API. Once the bot has been built, it’s possible to add AI, allowing it to respond appropriately to questions and texts entered by users.
At least that was the theory. On paper this should have been a really easy chatbot development framework, especially compared to the groups working with Dialogflow and the Microsoft Bot Framework.
It was up to us to find out whether the proof of the pudding was really in the eating…
Chatfuel – what is it good for?
One of the things that stood out most about Chatfuel was its user interface. The tools and visual method of creating the key functional aspects of the chatbot meant it was very easy and straightforward to get started quickly. As soon as we had designed the structure and functionality of our bot, we found that we were able to implement it all within Chatfuel very quickly.
Chatfuel’s JSON plugin allowed us to integrate our bot with the cat and dog API feeds from Battersea Dogs and Cats Home. We had to build an intermediary layer to turn the data into another format. To do so, we used a micro service hosted on Azure to carry out a conversion. Other Chatfuel plugins support integrations such as Google custom search and RSS feeds.
One of Chatfuel’s major bonuses is that it’s free to use, so ideal for us getting to grips with using chatbots. We also found the process of publishing the bot onto Facebook Messenger was very simple – when it works.
The down sides of building with Chatfuel
As you might expect, the drawback of working on a free model is that you’ll be shown some annoying ads and Chatfuel branding appears in your bot. Both of these can be removed by upgrading to Chatfuel PRO – starting from $30 a month.
The platform is also limited to Facebook and Messenger only. This was quite a considerable contrast to the other groups working with Dialogflow and Microsoft Bot Framework, who were able to port or publish bots on other chat networks.
While plugins allow integration of external data and functionality, there are limits in what they can do and how returned data can be used. This was especially noticeable when compared to the more development-rich frameworks.
The worst thing, however, was when it simply stopped working. On one occasion, the system froze for our team member whose Facebook account we were using to build the bot. A quick look on the forums showed this to be a common problem and, unfortunately, we were in a position where we had to start all over again.
What did we learn?
Being quick to work with, Chatfuel allows ideas and functionality to be prototyped quickly, as long as it can be realised with the out-of-the-box components offered. The overall lifecycle from idea inception to getting a working bot can be very fast indeed.
However, where integration of external data is required, code must be written, hosted and integrated into the platform in an appropriate way. Chatfuel’s plugin architecture makes this possible, but it has its limitations. For example, JSON plugin items cannot be easily hooked into Chatfuel’s AI elements, resulting in a menu-driven bot rather than a conversational one.
We concluded that all things being considered, Chatfuel makes a good bot prototyping platform, or could be used for small-scale and simple production bots that are appropriate for Facebook Messenger. After the disaster of starting over again, however, this isn’t a platform we’d be revisiting for client projects!