Using Google DialogFlow with Bots for Conversational Interactions

In this post I am going to take a quick look a Google's DialogFlow tool.  DialogFlow is a powerful platform for building conversational experiences (CX), more commonly known as ChatBots. 

 Now that RPA has a solid footing in many organizations, both vendors and customers are looking at ways to extend the benefits achieved with RPA to more advanced use cases.  This morphing of RPA has been dubbed by some as Intelligent Automation or HyperAutomation.

 At the end of the post I have included a ton of links for learning more and jumping into DialogFlow.  There are plenty of other flavors out there as well: https://medium.com/voice-tech-podcast/the-9-best-chatbot-development-frameworks-f034be1ff53c

 Like RPA, ChatBots are far from new technology (One of the earliest programs was called ELIZA built in 1966 at the MIT AI lab! https://en.wikipedia.org/wiki/ELIZA), but with Cloud, ML, and investment CX is hitting an enterprise stride with robust platforms and business use cases for large scale execution.  Since ChatBots don’t want to be left out of the hyper-party ;) you may hear newer terms such as conversational interface, conversational UX, Conversational App, or Voice bot.

 One of the key differentiators with these new conversational experience tools is the use of Natural Language Understanding (NLU).  I was familiar with the term NLP or Natural Language Processing but NLU was new to me, https://en.wikipedia.org/wiki/Natural-language_understanding.  NLU utilizes Machine Learning to create models that understand the context and meaning of human interactions much better than previously used static if, then, else rules.

 Some example use cases for CX:

  • Customer service - Account status, incident creation/tracking

  • Commerce - Shopping, Tracking

  • IoT - Automotive, Home Entertainment

  • Surfacing data and insights - HR Benefit Enrollment

 At a high level the CX flow looks like this:

dialogflow-img2.png

Flow of a simple conversation:

○ User initiates a conversation with an Agent (DialogFlow)
- “I want to order 2 pizzas”
○ Agent
- Intent - agent needs to extract and match an intent from the user statement
○ “Order pizza”
- Action
○ Intent kicks off an action - this is where RPA comes in. depending on use case, an RPA bot could be called to initiate the backend ordering process.
- Response
○ “I have placed an order for two pizzas” - Agent receives/generates a response based on context of intent and results of action.
- Awareness
○ "2" = a quantity

For RPA, technology such as DialogFlow, enable RPA teams to put a user-friendly front-end to their bots. This conversational based front-end enables customers, business users, and other human roles to interact with our digital workers outside of the scheduled, locked down RPA control rooms. 

ChatBots provide an input and event trigger mechanism to kick off our bots, do some tedious work and then share the results and confirmation with the requestor.

The mighty glue of the internet, APIs, provides yet again a simple way to push and pull data from a variety of technology layers in the stack.

Building a DialogFlow Agent

Build an agent follows the typical high level project flow of design, develop, distribute. The design and develop phases focus on three primary areas: Intent Matching; Entity extraction; and Dialog Control. Intents are the actions that your target audience will want to execute. Entity extraction deals with identifying things your user mentions in their intents. And then you must handle the flow of the conversation.

Best practices when defining intents:

  • Training phrases should be representative of the use case, target audience, culture

  • Make sure your intents do not overlap

  • Prioritize intents that represent the most common requests

DialogFlow provides all the tools to easily accomplish these three steps. Go to https://developers.google.com/learn/pathways/chatbots-dialogflow to sign up for a free account and resources and give it a go.

Resources

Ed Garabedian