Assistants for instant messaging channels

Over recent years, following the advances of Natural Language Understanding (NLU), the market is exploding with chatbot applications. Some are acting like utility chatbots – assisting customers in ordering a pizza, searching for flight tickets, controlling smart home devices and more, while others are informative chatbots – used for weather forecasting, answering domain-specific questions, etc. 

The common theme of the above examples is the nature of the medium over which the communication is made – chat – may it be Facebook Messenger, Telegram, Skype, Slack, or web-based.

Interesting properties of these channels are:

  • The user writes (or speaks) 1-2 short sentences in each interaction with the bot.
  • The user expects an immediate response. The response will be short and to the point.
  • Conversation is a series of multiple interactions (our data shows the average number of interactions per conversation is 20).

The screenshots below demonstrate this point.

Google’s Dialog Flow 

Microsoft LUIS

So, what about email bots?

Instant messaging channels are not alone. For B2B companies, most of the communication throughout the customer lifecycle is done over email – starting from marketing outreach, through to sales processes, closure, support, renewals and more.

All the assumptions listed above, made for chat-based bots, are not relevant when we examine the email channel. This introduces some technical challenges that require the attention of developers.

Here are 5 things that are unique about email-bots and understanding email content, with potential approaches to face them.

 

Focusing on the correct text

Emails are not well structured for automatic processing. An email body is a single block of html,  which can contain past emails from the thread history, the signature of the sender, inline answers to previous questions, confidentiality disclaimers, “think about the environment” footers and other templated texts that may surround the “main” text.

The basis for effective text understanding is a good pre-processing pipeline, which can clean up all the non-relevant content and leave just the text to be analyzed.

Understanding the correct meaning

The way people interact with peers and colleagues over email is very different from how they would do it using instant messaging applications. People often write longer texts, combining multiple points in the same email. They tend to communicate complex ideas with rich language and nuances. A good assistant must be trained to handle these kinds of inputs.

Keeping context in mind

The other side of writing longer, more complex texts is having fewer back-and-forth messages with each user. However, there is still a context for each message the assistant receives from the user. Usually it will contain answers for previously asked questions, and/or questions for the assistant. Keeping the context can help understand the real meaning of the user’s message.

Paying attention to recipients
The context of an email message is influenced also by its recipients. For example, if a user CC’s his colleague to the email, the assistant should take that into consideration on top of the text itself, as it may take the conversation to a different direction. In a cold-email scenario, a user may reply to the assistant saying “I’m not relevant for this email, but I’m copying Mr. Jones who may be interested to hear more”. In this example, having Mr. Jones’ email address from the “CC” field can allow the assistant to continue the conversation with him – just like a human would have done.

Supporting opt-out requests
Users may want to discontinue the conversation at any given time. The assistant can be trained for this specifically and handle opt-out requests gracefully. Sending emails after being asked to stop is both impolite and legally risky.

 

Taking care of the above points gave us at Exceed.ai a solid ground for creating smart assistants that can deal with the unique complexities of email messages. Of course, for a complete conversational experience, the bot answers should be prepared so they deliver the correct messaging and form as a human would have written which has not been covered in this post.

I hope this post will give other bot developers a good head-start for building such applications as well.