• Early Learnings with Chatbots.

    Published in: Web Development.

    My team at work has recently been playing with chatbots, trying to understand the technology available, how to use it, and the most appropriate places to use one.

    Chatbot technology

    Chatbots tend to have at least two pieces: a framework for the bot logic itself and channels where the bot interacts with users. Many frameworks have supported channels and APIs that allow custom connections to unsupported channels.

    A third piece common, but not required, is artificial intelligence. A common one is Natural Language Processors (NLP), which takes text and pulls intents and values according to some machine learning, but there are others for speech analysis, parsing FAQ-style data for conversational questioning and answering, and more.

    We surveyed the landscape and found lots of products in the chatbot space, many that blur the edges between the framework, channel, and artificial intelligence pieces. A sampling of the pieces we found are:

    • BotKit
    • Amazon Lex
    • IBM Watson
    • Facebook Wit
    • Google DialogFlow
    • Microsoft Bot Framework
    • Microsoft LUIS
    • Microsoft QnA Maker
    • Microsoft Text Analytics API
    • Microsoft Bing Spell check
    • Microsoft Bing Speech API
    • Microsoft Bing Web Search API

    Our team settled on Microsoft Bot Framework for the framework and Microsoft LUIS for the NLP. We’re a Microsoft environment, so these were natural extensions of the products and services we already use.

    Things that are easy

    After spending some time trying to build some concrete solutions with chatbots, we discovered a few things that are easy to do:

    • Workflows with discrete steps. Any user path that has sequential, distinct steps is straightforward with Microsoft DialogFlow. It has a prompts for different types of data, state management, and input validation all out of the box.
    • FAQ. Microsoft’s QnA Maker makes quick work of any kind of FAQ-style data source, and then uses machine learning to allow the chat bot to handle natural language questions and return relevant answers.
    • Discerning general intent. With LUIS, figuring out, broadly, what the user is wanting to do is easy.
    • Handling common tasks that have a concrete action. Any time you can say “when the user says something along the lines of [x], do [y]” is easy.

    Things that are hard

    Outside of the easy things, there are many things that we want to do, but are hard:

    • Context switching. Let’s say a user is in the middle of a DialogFlow, one of the easy things, but they respond with something that indicates they want to do something else. What happens here? Do you make them finish the DialogFlow? Do you cancel the DialogFlow and lose all of their progress? Do you save the state and return them to it when they’re done with the interruption? Do you ask if they want to return when they’re done? The hard part here is that there isn’t a best approach, all of these could be viable options depending on the user and their context.
    • State management. Our natural conversations are full of micro-state changes. We talk about something, that leads to something else, which then goes back to a previous comment. Tracking the state that matters versus the state that doesn’t is hard.
    • Revising intent. Part of state management, anytime the user has sent a message that has intent, but then wants to revise that intent in a follow up message, this is hard!
    • Natural Language Processing of items with small differences. LUIS is impressive and gives you a lot right out of the box, but training it to differentiate between similar but different intents is difficult.
    • Any tasks that require analysis or nuance. Chatbots cannot replace humans. Anything that requires a human to analyze or understand the intent cannot be done with a chatbot (obviously, right?).

    Early conclusions

    We’re still at the beginning of this whole thing, but some conclusions stand out already. Chatbots are good at handling common, easily understood tasks. As a front-line for customer service, or as a different interaction model around a knowledge base, they can offer users a new, and perhaps better, way of getting the information they need. That’s what we’re keeping an eye out for: user interactions that currently require a person to deliver a concrete answer or solution to a concrete question.


    1. Treating the Web as a “Platform”.

      Published in: Web Development.

      I haven’t previously weighed in on the native apps versus web debate. In fact, I feel that the debate is largely over. It’s not that either has won, but rather that we are using each for its strengths. Today, though, I believe I’ve gained new clarity on the functional delineation between native and web, and […]

    2. Implementing Responsive Images on Goizueta.emory.edu.

      Published in: Web Development.

      A couple of months ago, we implemented responsive images for Goizueta Business School’s website. I want to give a summary of how we did it. Our site is quite large; content and assets are edited by multiple people, managed and overseen by a Marketing and Communications team. A responsive images solution needed to be dead […]

    3. Tonx Coffee Review.

      Published in: Reviews.
      Tonx Quilanga Macchiato

      Tonx is a coffee subscription service, delivering freshly roasted coffee right to your door. I was aware of Tonx through various mentions on Twitter, but was able to give them a try through their Starbucks gift card exchange program, as I had received a Starbucks gift card from Christmas. Overview The service is pretty straightforward; […]

    4. Notes on Luke Wroblewski’s “Mobile Design Now” Workshop.

      Published in: Web Development.

      Luke Wroblewski takes and shares great notes from talks that he attends. They’re big shoes, and I don’t expect to fill them, but here are my notes from Luke’s “Mobile Design Now” talk. The Mobile Opportunity Arguing for Mobile With the growth in mobile, it’s difficult to argue that we shouldn’t address mobile The Mobile […]

    5. A Reflection on Day Two of An Event Apart Atlanta.

      Published in: Web Development.

      The second day of An Event Apart has wrapped up. I would say that only one new theme emerged, a couple of talks tied in with one of yesterday’s themes, and a couple of talks stood on their own ground. Test Everything The dominant theme in today’s talks was the importance of testing. As builders […]

    6. A Reflection on Day One of An Event Apart Atlanta.

      Published in: Web Development.

      Having finished the first day of An Event Apart Atlanta, I’ve come away with a lot of good information. My notes are much more extensive than this post, but these are the common themes I felt emerge from the various talks. The Web is Complicated The largest theme of the day was that the web […]

    7. In Defense of Southern Snow.

      Published in: Life.

      When snow hits the South, it is often accompanied by condescending remarks about the South’s seeming overreaction to “just a little bit of snow.” I don’t argue that we don’t see much snow in the South, or that we take conservative measures with it, but I do think the patronizing commentary on our plight is […]

      Tags: ,
    8. The Pursuit of Home Espresso.

      Published in: Food & Drink.

      For a while now, I’ve known that the biggest factor limiting my home espresso was my grinder: it just couldn’t grind finely or consistently enough. My shots were weak and watery. I compensated by using dark roasted beans and increasing the overall volume, but I knew that’s all I was doing: compensating. I even began […]