Nifty came up during an ideation session while brainstorming for a chat-bot submission that we could enter in the AWS competition. As technology enthusiasts, we tend to get easily lost in the big bad world of finance. Nifty emerged from a much sought-after need to provide financial knowledge and information to users who are not well versed in handling their savings and investments. The Indian financial market offers a variety of instruments for its citizens to invest in and a traditional savings-oriented environment has seen individuals invest their money usually in safe and low-risk options. However, with time, the financial landscape of the country has changed and more and more people are exploring all classes of financial instruments that provide better-than-average returns and results. Nifty was initially planned to provide such a platform where users could enter their financial preferences and Nifty would suggest financial strategies specific to each user. However, due to the enormity of financial avenues and the constraints of the delivery time for the competition, we decided to limit Nifty to providing tax saving information to Indian users.
What it does
Nifty is a nifty little bot that helps an Indian citizen chose an appropriate tax saving option. The purpose of Nifty is to act as a user’s personal tax saver recommender. Nifty analyzes financial preferences to help users choose an appropriate option to reduce their tax liability. Nifty provides a subset of options specified by the Indian Government that can be used for the purpose of tax planning to save tax - these include ELSS (Equity Linked Savings Scheme), NSC (National Savings Certificate), PPF (Public Provident Fund) and Tax-Saving Fixed Deposits.
How I built it
- Nifty has been built using the Amazon Lex UI that was used create the various intents and slots.
- Node.js was chosen as the language for development of the lambda functions for implementation of the fulfillments and hooks that control the conversational flow.
- DynamoDB has been used as the NO-SQL database to store data required by the bot.
- Slack API has been used to retrieve user related information.
- Storage and usage of content via MS Excel in lambda.
- Use of servlerless framework for building and deploying bot lambda to AWS.
Challenges I ran into
Response Card - It took us some time to figure out how to show response cards with the bot. The in-built bot testing UI doesn't support the response card yet.
Returning User Journey – To implement this functionality, we maintained user data in DynamoDB and recognized the user by using the slack user Id.
WIKI Integration – A Nifty user can ask Nifty several questions related to the various tax-saving instruments. These include information such as meaning, key features, advantages, etc. of each instrument – we refer to this content as the Nifty WIKI. The entire WIKI conversation is handled through one intent in which multiple slots and utterances have been defined and a combination of two slot values is used to determine the correct response to the user query. We faced issues with the utterances where slot values were not unique. For example, a "what" in any slot value was replaced by the word "what" in all other utterances.
Confirm Intent - During the course of development, we determined more than one confirmation intent is not supported. However, using elicit slot, we managed to use confirmation intent multiple times.
Data in a tabular format - We wanted to depict fund data in a tabular format. We figured out that there is not simple way to accomplish this currently - it can be achieved by showing the data as an image. This hasn’t been implemented yet because of time limitation.
Number of Lambda functions - We have used one lambda function for the entire bot conversation handling. However, we have maintained different lambda functions for each intent which was complicated to manage and deploy.
Accomplishments that I'm proud of & What I learned
- serverless compile and deployment
- Wiki integration driven by the excel sheet contents.
- Familiarization with the AWS ecosystem.
What's next for Nifty
The next avenue that we would like Nifty to cater to is the Mutual Funds market in India.