How we’re using Bots at Domain

Bots are all the rage in tech right now. They are the antithesis to virtual reality (VR) in that VR is all about the bling, while bots have no bling at all. Bots are all about pure functionality wrapped in a chat API. No graphic design, no UI. Just doing things.

One of our senior tech guys recently quipped that this is exactly why managers love bots – because at the most basic level, they’re that easy.

In a superficial survey I’ve identified eight active bot projects at Domain. Five out of eight of them are written using Python. The remainder are Node.js and Ruby. We’ve had a go-live rate of 75 per cent, which is remarkably rapid ROI. In the words of one bot builder; “seeing other people add my bot to new [Slack] channels made me happy.” The ones that haven’t gone live yet are likely to still go live in some expanded form.

The fundamental architecture of bots revolves around connecting web services and webhooks with each other. The bot component is a text / chat API in the middle of the web services. These architectures lend themselves very well to cloud hosted environments. We have all eight hosted in AWS in some form or another, with the majority being on EC2. Only one of them is using docker and running in a containerized environment, while another is running on Heroku.

  • There is a Cambrian Explosion of bot frameworks happening, and we’re seeing at least experimental use of the following frameworks:
  • howdy.ai – trainable bot framework
  • Lita.io – a ruby based bot framework, originally inspired by Github’s open-source bot framework called Hubot
  • Facebook Bot Platform – used for the Domain chatbot that you can interact with on Facebook
  • Wit.ai – text based bot framework with intent parsing
  • Microsoft’s bot framework – a useful framework that includes the ability to create Skype bots. This was recently in the IT press.

When looking at the intent behind the bots we’ve built, we see two universal themes: Firstly, the ability to complete chatops style actions from Slack. Secondly, to perform basic functions without interrupting a user’s context. An example of this would be querying Home Price guide via Facebook Messenger, without ever leaving Facebook.

Some of the Chatops functions we have built include:

  • A bot that helps with certain Android related tasks
  • The ability to query our AWS account to get info on ASG’s directly from Slack.
  • Integrating third party SMS alerting into our Slack incident channel
  • We’ve also integrated the Google Vision API with Domain listings, and it’s possible to interact with it through Slack.
  • Where should bots be used?

One of the primary drivers of our bot projects has been the early adopter mindset. Most people working on bots are looking for ways to create genuinely useful bots to release to customers. Our Android Lead highlighted a couple of questions that showed where a bot could be useful:

  1. Which system or website do you hate having to go into and use and/or check?
  2. What type of simple but repetitive tasks do you have to do that you think should require less steps and/or time?

Tedious, repetitive tasks are in all likelihood going to be the first to be automated away by bots. This would include a large swathe of the tasks we currently use contact centres to resolve, which would free our CX teams up to focus on how to add more value to our customers

Two of the key considerations for building bots that will be more useful are the ability to retain context in a conversation, and the ability to learn and adapt to natural language. The way a programmer describes something is very often different to the way an end-user would.

According to the people building them, the biggest benefits of bots revolve around saving time by automating everyday tasks. In the Chatops context, one developer remarked; “bots bring information and processes from disparate systems to a central place where our team is already communicating, without the need to jump into external systems.”

Another of our developers remarked “Slackbots are great as developer tools. Primarily because developers love the command line, and this essentially allows us to “share” our scripts with everyone in Slack.”

“Consumer bots have a ways to go before they become mainstream. China is the furthest ahead with WeChat being one of the strongest platforms. The usability of the bots tied strongly with the e-commerce hooks make it a strong ecosystem to buy/sell/discover.”

As I see it, the power of bots is in tying natural language processing, machine learning, all our microservices and state/context retention together. I believe our next step will be to build a smart NLP bot that interacts across multiple platform – Slack, Skype, Whatsapp, Facebook… Wherever it can sniff out new people to chat with.