Finance Republic - 2018

Developing a Conversational AI-Based Financial Advisor

Developing a Conversational AI-Based Financial Advisor

Introduction

Product
An AI-based Robo-Advisor who acts like a professional financial advisor to help users make smart investment decisions.

Challenges Faced
The beta version of the app was focused on catering to only a niche segment of users, the main challenge company faced was to provide value to a wider range of users. As a designer, my main challenge was setting up a process which can be used to create conversation flows for training the Bot.

Product
An AI-based Robo-Advisor who acts like a professional financial advisor to help users make smart investment decisions.

Challenges Faced
The beta version of the app was focused on catering to only a niche segment of users, the main challenge company faced was to provide value to a wider range of users. As a designer, my main challenge was setting up a process which can be used to create conversation flows for training the Bot.

Product
An AI-based Robo-Advisor who acts like a professional financial advisor to help users make smart investment decisions.

Challenges Faced
The beta version of the app was focused on catering to only a niche segment of users, the main challenge company faced was to provide value to a wider range of users. As a designer, my main challenge was setting up a process which can be used to create conversation flows for training the Bot.

Research

Steps followed

  1. User Interviews: Sample of 20 users

  2. Domain Study

  3. Competitive Analysis

Who are our users?

Our potential users fall into the following categories.

Our potential users fall into the following categories.

Our potential users fall into the following categories.

Our potential users fall into the following categories.

Insights received after talking to Users

Stock Related

  • Traders and swing traders expressed their issues about acquiring information from multiple sources and compiling it to track the market.

  • Lack of accessibility of financial experts and planners.

  • Users avoided taking the help of investment advisors as they found their services too expensive.

  • All our users felt that investing in stocks requires a lot of effort.

  • Novices didn't show interest in investing in stocks, as they found it difficult to track.

  • Most users who invested in stock used Sharekhan or Zerodha.

  • Users often took investment advice from friends and family

Mutual Funds Related

  • Users found mutual funds ambiguous

  • Users were unaware that there are two kinds of plans direct & regular.

  • Most investors of mutual funds were unaware that regular plans give you lesser returns.

  • Users felt that investment advisory services give biased opinions.

  • Traders and swing traders felt that investing in mutual funds would yield lesser returns.

  • Most users displayed a genuine interest in investing in Mutual Funds, especially Investors and Novices.

Domain Focus

We decided to focus our research and efforts on learning about Mutual Funds due to the growing interest in Mutual funds investment.

What is the main problem with Mutual Fund investment?

Problem: Ambiguity of Mutual Funds

Affects People who want to invest in mutual funds.

Impact: Getting a biased recommendation from Brokers. Lack of transparency in regular plan brokerage platforms. Difficulty making an investment decision. Lack of Returns after investing.

The ideal solution provides: Instant access to an unbiased guide to mutual funds

Understanding how mutual funds work?

On what basis are mutual funds recommended to a User?

Any form of mutual funds recommendation is given based on these factors. By assessing these factors an advisor will be able to determine the risk profile of a user.

Exploring mutual funds advisory service

To understand what sort of service the Chat-Bot should perform it was important to understand the service given by a Human investment advisor and the understanding they have towards their customers.

I had signed up for the following apps and spoke to a few investment advisors as a potential customer to get a first-hand experience of their service

  1. Arthyantra

  2. Finedge

  3. Fisdom

  4. Scripbox

  5. FundsIndia

  6. MoneyFrog

  7. 5nance

I notice a pattern in which their investment advisors were providing their recommendations for Mutual Funds Investment. This is the outline recommendation flow I noticed while speaking to advisors from the mentioned platforms. Although there were variations in approach the results were all the same.

Reccomendation flow

Analysis

Now that I have an understanding of mutual funds, my next step was to understand where our beta-chatbot was going wrong.

Heuristic Evaluation

To identify areas where the chatbot was failing, I performed a Heuristic Evaluation of the chatbot after testing it thoroughly. I have documented my findings here.

Analysing the Chat-Logs

Here are a few snippets of conversation I picked out from the chat logs which contained conversations from 100 of our beta users.

For an engaging conversation, the BOT should avoid having open-ended statements.
**User**: Stock specific news
**Bot** Title: NEWS 06:58:20 PM
**User** Ok
**Bot** Hi!::11 06:59:14 PM

Considering error scenarios is a must. In this scenario, we can see the bot is unable to provide a relevant response due to a user typo.
**User**: DSP balanced fund
Bot: Hybrid funds (also called Balanced Funds) are a type of mutual funds that buys a combination of common stock, preferred stock, bonds, and debentures, to provide both income and capital appreciation while avoiding excessive risk.::28 03:19:07 PM
User: which stock di you recommend
**Bot**: Here is what indiatimes has to say, Description : 08:20:32 AM

It is important to have the “help” “what can you do” or “what can I ask for” buttons during the conversation so the user has easy access to the BOT functions.
**User:** great. now what
**Bot** Here is what HuffingtonPost has to say 09:27:17 AM
**User**: what all do you know?
**Bot**: I get all the data on stocks & mutual funds, in real-time, from very reliable sources., Also, I have my web crawlers (like Google) using which I keep an eye on everything written on top Financial websites & even on twitter and facebook.

Acknowledgement is very important. It is essential to acknowledge what the users are saying even if it’s irrelevant information.
**User**: do u know saurabh
**Bot**: Here is what indiatimes has to say, Description : “You buy high quality companies in 21 10:19:05 AM

It is also important that the BOT initiates the conversation with either a statement like “ how can I help you today” or “Have you heard about the news today"
**User**: hi
**Bot** Title: NEWS:28 05:56:11 PM


Maintaining Context: During the conversation, the users might break the flow and try to come back to it, at this point the BOT should confirm the user's intent.
**User**: HDFC
**Bot**: I not only provide you the data but also give my recommendations on the stock. Why dont you explore these options., Trading Symbol : HDFC Stock Name= Housing Development Finance Corporation Limited High= 1737.9 Low= 1708.0 Open= 1736.9 Close= 1722.3 Price= 1711.05 ChangeABS= -11.25 ChangePerc= -0.65::25 09:50:23 AM
**User**: Fundamentals (it possible that the user meant Fundamentals of HDFC )
**Bot**: Fundamental analysis gives you a sense of true value of a stock. I can provide.....09:50:34 AM

Since most users these days are becoming conscious of how their data is being used. Every time the user says something like “Why should I trust you” it is important to keep one of those bubble buttons which redirects the user to the “terms & conditions page”.
**User** why should i trust you ?
**Bot** Your data is totally safe. It won’t be shared with anybody, ever. Also, we follow industry best practices when it comes to data security.::15 10:42:10 AM

During the conversation especially when the User explores a feature for the first time, it’ll be helpful if the BOT can guide the user as to how he can use the feature to prevent error scenarios.
**User: how do I set alert notifications for a stock?
Bot: Enter the price at which you want to set the trigger::27 08:24:01 AM (a specific way of putting across a query can prevent error inputs from the users)
User: trigger for escorts if it crosses below 700 and above 800 ( bot can only take one input at a time )
Bot: Trigger has been set, you would be notified when price of ESCORTS go above 800! Current price is 749.75, People who actively trade just love this feature. For any stock, set a trigger at a particular price and as soon as the price is hit - I would send you a notification. Try it out.::27 08:24:43 AM

Execution

These are the steps I took in developing the chatbot.

  1. Personality Development: Building a Bot persona.

  2. Artificial Intelligence: Depending on the use case and type of conversation, AI can be applied to execute the BOT persona.

  3. Conversational Scripting: This step involves creating conversation flows for different aspects and implementing BOT personality behind each flow.

  4. Interactive Elements: Once the flows are created, interactive elements can be applied to enhance the conversation experience.

  5. Context & Memory: This aspect enriches the functioning of the BOT giving it human-like functions.

Building a BOT Persona

Defining the Ideal Bot

Today Humans adapt to machines, where there is a learnability curve to overcome and the ideal machine is one with no learnability curve to achieve. When it comes to conversing the first thing a user primarily wants is to be Understood. A user feels understood by the Bot when the Bot acknowledges every input of the User. Acknowledgement is not the same as having a response for each input.

Defining the personality of the bot

Bot Identity

Bot Persona

How does an AI Chatbot work?

Pattern Matchers
Bots use pattern matching to classify the text and produce a suitable response for the customers. A standard structure of these patterns is “Artificial Intelligence Markup Language” (AIML).

Chatbots respond to anything relating it to the associated patterns. But it can not go beyond the associated pattern.

Defining a Use Case

Let's consider Meera's story

Experience map

Chat Architecture and Scripting
The aspects of conversation scripting are

  1. Onboarding

  2. Functional Scripting

  3. Error Handling

  4. Feedback

  5. Help & Support </aside>

Onboarding

Onboarding is the first interaction users see from the bot—it could be a message that the bot sends to the installing user. It sets the first impression and tackles a set of tasks that can best be accomplished at the start of the conversation.

Different approaches we can take while onboarding the users to the app.

A good bot should cover all these three aspects at some point during the conversation.Different approaches we can take while onboarding the users to the app.

Onboarding script for two different scenarios
Considering Meera's scenario.

Although in this use-case, the user was able to ask the BOT what she wants but by keeping an open-ended approach a user has all the freedom to ask any sort of query. If the BOT is unable to answer such queries it creates a weak first impression.

Functional Scripting

A conversation with a BOT can be task-related or topic related.

Let’s consider the current use case
Our user has been onboarded onto the app. She is now interested in getting advice regarding the mutual fund's investment. Her end-goal is to make MF investment.

Task To Accomplish
Invest in Mutual Funds

Going back to Meera's scenario with the bot

Divergent Scenario
The previous scenario that we just went through is what we call an 'Ideal Scenario' or a 'Happy flow'. But when talking about a fluid chatbot, the users may not always stick to the expected output.

Let us consider the following use case

A conversation with a novice like Meera may look like this,

It is very possible that Meera (novice) who has a lack of knowledge or opinion about different domains of finance may not know what she wants.

Whereas an investment expert like Daniel may have the following response

Someone like Daniel who is a trader may be interested in both domains of investment.

To avoid conversations which don’t go according to the ideal flow. It is important to make the BOT queries as specific as possible.

Error Handling

Error Inputs are queries asked by a user for which the bot doesn’t have an answer.

Example of Error Inputs
1. Random Inputs
2. Asking the bot to perform an untrained task
3. Information about different domains of investment (other than stock and MF).
4. Expressing intent which the bot has content for but the input form is too complex for the bot to understand.
5. Small talk

Let us consider someone like Daniel, a stock trader and Investment Expert who will ask more specific Finance Based questions.

Help

It is important that a BOT has a help option, showing the users what it can do. One of the important aspects of this particular flow is the BOT should be able to introduce this feature automatically every time the user is stuck. Help can be in terms of content and functionality.
A user can simply ask the BOT questions like “What can you do?” Or “How can you help me?” In such a case a Bot should be trained with an Intent called HELP to give an appropriate response to such queries.

Feedback

Feedback is a way for users to provide you with information about their experience with the bot. By collecting feedback from the user the BOT the makers of the bot can work on improving the experience of the bot.

When to obtain feedback?

  1. User is Satisfied

  2. User is not Satisfied or frustrated

We know the user is satisfied or frustrated by analysing the sentiments of the conversations. We can use certain keywords to understand the intent of the user to solicit feedback from him/her.

Capturing Sentiments in a quick manner
Let's go back to the conversation the BOT had with Meera.

By having a thumbs up and thumbs down button, the user will be able to provide quick feedback to the BOT’s response. These buttons should only be introduced at the end of the task.

By recording and tracking the number of upvotes and downvotes we will be able to determine the overall sentiment behind a conversation.

Interactive Elements (UI)

Context

It is difficult to maintain context when it comes to conversing with a bot. A lot of BOTs are designed as request/response systems. Although that is relevant for certain use cases and tasks, a BOT which acts as a financial advisor should understand the context. It is challenging to create a BOT which understands context. As mentioned earlier that for BOT it is important to acknowledge all of the user intents.

Memory

When it comes to Memory, there are certain pieces of information about the user that the BOT must remember about to maintain context in conversations.

Information about the User the BOT should remember

  1. Risk Profile

  2. User’s experience with Investments

  3. Transactions made through the BOT.

  4. His/her portfolio

Conclusion

From my experience working on this project, I have come to understand that creating an effective experience of chatbot takes many iterations. As there is countless possibilities for how the user chooses to interact with a bot. Therefore, it is important to constantly review how your users interact with your bot.

Currently, there are no set guidelines for BOT Design but a lot of platforms like Google, Facebook, Microsoft and Slack have shared their research and process of BOT design and development. The research put across by these companies has greatly impacted my work on this project.

Execution

These are the steps I took in developing the chatbot.

  1. Personality Development: Building a Bot persona.

  2. Artificial Intelligence: Depending on the use case and type of conversation, AI can be applied to execute the BOT persona.

  3. Conversational Scripting: This step involves creating conversation flows for different aspects and implementing BOT personality behind each flow.

  4. Interactive Elements: Once the flows are created, interactive elements can be applied to enhance the conversation experience.

  5. Context & Memory: This aspect enriches the functioning of the BOT giving it human-like functions.

Building a BOT Persona

Defining the Ideal Bot

Today Humans adapt to machines, where there is a learnability curve to overcome and the ideal machine is one with no learnability curve to achieve. When it comes to conversing the first thing a user primarily wants is to be Understood. A user feels understood by the Bot when the Bot acknowledges every input of the User. Acknowledgement is not the same as having a response for each input.

Defining the personality of the bot

Bot Identity

Bot Persona

How does an AI Chatbot work?

Pattern Matchers
Bots use pattern matching to classify the text and produce a suitable response for the customers. A standard structure of these patterns is “Artificial Intelligence Markup Language” (AIML).

Chatbots respond to anything relating it to the associated patterns. But it can not go beyond the associated pattern.

Defining a Use Case

Let's consider Meera's story

Experience map

Chat Architecture and Scripting
The aspects of conversation scripting are

  1. Onboarding

  2. Functional Scripting

  3. Error Handling

  4. Feedback

  5. Help & Support </aside>

Onboarding

Onboarding is the first interaction users see from the bot—it could be a message that the bot sends to the installing user. It sets the first impression and tackles a set of tasks that can best be accomplished at the start of the conversation.

Different approaches we can take while onboarding the users to the app.

A good bot should cover all these three aspects at some point during the conversation.Different approaches we can take while onboarding the users to the app.

Onboarding script for two different scenarios
Considering Meera's scenario.

Although in this use-case, the user was able to ask the BOT what she wants but by keeping an open-ended approach a user has all the freedom to ask any sort of query. If the BOT is unable to answer such queries it creates a weak first impression.

Functional Scripting

A conversation with a BOT can be task-related or topic related.

Let’s consider the current use case
Our user has been onboarded onto the app. She is now interested in getting advice regarding the mutual fund's investment. Her end-goal is to make MF investment.

Task To Accomplish
Invest in Mutual Funds

Going back to Meera's scenario with the bot

Divergent Scenario
The previous scenario that we just went through is what we call an 'Ideal Scenario' or a 'Happy flow'. But when talking about a fluid chatbot, the users may not always stick to the expected output.

Let us consider the following use case

A conversation with a novice like Meera may look like this,

It is very possible that Meera (novice) who has a lack of knowledge or opinion about different domains of finance may not know what she wants.

Whereas an investment expert like Daniel may have the following response

Someone like Daniel who is a trader may be interested in both domains of investment.

To avoid conversations which don’t go according to the ideal flow. It is important to make the BOT queries as specific as possible.

Error Handling

Error Inputs are queries asked by a user for which the bot doesn’t have an answer.

Example of Error Inputs
1. Random Inputs
2. Asking the bot to perform an untrained task
3. Information about different domains of investment (other than stock and MF).
4. Expressing intent which the bot has content for but the input form is too complex for the bot to understand.
5. Small talk

Let us consider someone like Daniel, a stock trader and Investment Expert who will ask more specific Finance Based questions.

Help

It is important that a BOT has a help option, showing the users what it can do. One of the important aspects of this particular flow is the BOT should be able to introduce this feature automatically every time the user is stuck. Help can be in terms of content and functionality.
A user can simply ask the BOT questions like “What can you do?” Or “How can you help me?” In such a case a Bot should be trained with an Intent called HELP to give an appropriate response to such queries.

Feedback

Feedback is a way for users to provide you with information about their experience with the bot. By collecting feedback from the user the BOT the makers of the bot can work on improving the experience of the bot.

When to obtain feedback?

  1. User is Satisfied

  2. User is not Satisfied or frustrated

We know the user is satisfied or frustrated by analysing the sentiments of the conversations. We can use certain keywords to understand the intent of the user to solicit feedback from him/her.

Capturing Sentiments in a quick manner
Let's go back to the conversation the BOT had with Meera.

By having a thumbs up and thumbs down button, the user will be able to provide quick feedback to the BOT’s response. These buttons should only be introduced at the end of the task.

By recording and tracking the number of upvotes and downvotes we will be able to determine the overall sentiment behind a conversation.

Interactive Elements (UI)

Context

It is difficult to maintain context when it comes to conversing with a bot. A lot of BOTs are designed as request/response systems. Although that is relevant for certain use cases and tasks, a BOT which acts as a financial advisor should understand the context. It is challenging to create a BOT which understands context. As mentioned earlier that for BOT it is important to acknowledge all of the user intents.

Memory

When it comes to Memory, there are certain pieces of information about the user that the BOT must remember about to maintain context in conversations.

Information about the User the BOT should remember

  1. Risk Profile

  2. User’s experience with Investments

  3. Transactions made through the BOT.

  4. His/her portfolio

Conclusion

From my experience working on this project, I have come to understand that creating an effective experience of chatbot takes many iterations. As there is countless possibilities for how the user chooses to interact with a bot. Therefore, it is important to constantly review how your users interact with your bot.

Currently, there are no set guidelines for BOT Design but a lot of platforms like Google, Facebook, Microsoft and Slack have shared their research and process of BOT design and development. The research put across by these companies has greatly impacted my work on this project.