humane.chat: hybrid messaging application.

The last couple of years chat- and voice bots were all the rage.  For a project last year we developed a hybrid messaging client that relied on traditional bot technology for smart suggestions and partial conversation automation. The project is specifically tailored for smaller chat operators that  are focussed on quickly building a feature rich conversations that rely on API interactions.  A typical conversation would include many human-to-human interaction with about 20 percent fully automated conversations 40 percent of the conversation based on smart suggestions, while the remaining 40 percent would be regular live chat.

We created an application for a client that focussed on blending two modes of communication.

Hybrid chat and messaging

Hybrid chat is a term that deserves some explanation. We believe that bots (either chat or voice) perform quite poorly. However we had the idea that combining humans and robots would in fact perform quite well. Specifically mixing human and bot interactions completely. So, we decided to use the existing bot application Dialogflow to give suggestions based on earlier learned feedback.

Stack

We used the following components to build a feature rich hybrid messaging app. We decided to use several common packages to bootstrap the application fairly quickly.

Messaging front-end

VueJS stack including several Vue plugins, notably VueX & Vuetify and finally auth0 to handle authentication easily.

Typical front end for the humane.chat application

Back-end

  • Docker
  • NodeJS
  • SocketIO
  • Elastic Search
  • Dialogflow
Backend of the application

What was the (messaging) problem?

Our client asked for a solution to be able to send reminders for a webinar through personalized messaging channels. Attendence of the webinar was under twenty percent of the subscriptions and we sought to boost that with our product.

What solution did we create?

We employed lean principles to quickly create a messaging application in which man and machine could collaborate to conduct conversations with customers. One specific example was aimed at enrolling customers into a webinar.  First we would target potential customers with specific facebook ads aimed at starting a conversation. Then we would send them an automated welcome message with two buttons. One to ask any question and one that said that they wanted to enrol in a live webinar. This would trigger an automated response that would ask them their email adress. If they would reply with their email the backend would then call an API endpoint of webinar geek enrolling them in the webinar. The API would reply with a personal link which, in turn, was forwarded to the customer.

Thus it became possible to enroll a customer into a personlized webinar without leaving facebook or the conversation. This however, was not the goal. By enrolling the clients through messaging it became possible to send them automated reminders. Which in turn boosted the attendance rating of the webinars.

Lessons about messaging

We learned it is really easy to integrate bots into a normal conversation. The main drawback was the face that dialogflow's API's were ill suited for being used as a suggestion engine. One specific example is that dialogflow supports a maximum session time of twenty minutes while during chat or messaging it can take a lot longer to respond. This is a technical difficulty we had to overcome. We fixed it by replaying the conversation if the conversation went over the twenty minute treshold enforced by Dialogflow.

Moreover we learned that elasticsearch is quite resource hungry. It uses quite a bit of RAM to function properly.

Resulting messaging application

The result and current proposition is live at https://humane.chat/ feel free to contact us to get a quote for using the application or integrate it in your app or site.