def formResponse(sender_id, text):
    msg_type = MessageParser.parse(text)
    responseList = []
    if msg_type == MessageParser.GREETING_MSG:
        message1 = '''Hello, Welcome to IPO Notifier.'''
        message2 = '''You can use following Keywords to get IPO details.
- Upcoming IPO
- Today's IPO, Current IPO
- Recent IPO
- Help.'''
        jsonFormat = generateJSONResposneForText(message1)
        responseList.append(jsonFormat)
        jsonFormat = generateJSONResposneForText(message2)
        responseList.append(jsonFormat)

        if not DBHelper.isSubscribed(sender_id):
            jsonFormat = generateJSONResposneForPostbackButtons(
                '''Do you want to Get Notified when new IPO is going to be listed on BSE or NSE?''',
                'Yes, Subscribe Me', 'Subscribe', "No, Don't Notify Me",
                'Unsubscribe')
            responseList.append(jsonFormat)

    elif msg_type == MessageParser.UNKNOWN_MSG:
        message1 = "I didn't understand that. Try typing Help :P ."
        jsonFormat = generateJSONResposneForText(message1)
        responseList.append(jsonFormat)

    elif msg_type == MessageParser.HELP:
        message1 = '''Use Following Keywords for your task.
- Upcoming IPO
- Current IPO
- Recent IPO
- ipo 'Company name'.'''
        message2 = "To get latest IPO update notifications type 'Subscribe'."
        if DBHelper.isSubscribed(sender_id):
            message2 = "To unsubscribe from getting IPO update notifications type 'Unsubscribe'."
        jsonFormat = generateJSONResposneForText(message1)
        responseList.append(jsonFormat)
        jsonFormat = generateJSONResposneForText(message2)
        responseList.append(jsonFormat)

    elif msg_type == MessageParser.UPCOMING_IPO:
        ipolist = IPOHelper.getUpcomingIPO()
        for ipoData in ipolist:
            jsonFormat = generateJSONResposneForIPO(ipoData)
            responseList.append(jsonFormat)

    elif msg_type == MessageParser.ALL_IPO:
        ipolist = IPOHelper.getLast6IPO()
        for ipoData in ipolist:
            jsonFormat = generateJSONResposneForIPO(ipoData)
            responseList.append(jsonFormat)

    elif msg_type == MessageParser.IPO_NAME:
        ipoName = MessageParser.parseIPOName(text)
        ipolist = IPOHelper.getIPObyName(ipoName)
        if not ipoName:
            ipolist = IPOHelper.getRunningIPO(False)
            msg1 = "Try ipo 'company name'."
            msg2 = "By the way here is the running IPO List"
            jsonFormat = generateJSONResposneForText(msg1)
            responseList.append(jsonFormat)
            if ipolist:
                jsonFormat = generateJSONResposneForText(msg2)
                responseList.append(jsonFormat)

        for ipoData in ipolist:
            jsonFormat = generateJSONResposneForIPO(ipoData)
            responseList.append(jsonFormat)

    #gives list of running ipo
    elif msg_type == MessageParser.TODAYS_IPO:
        ipolist = IPOHelper.getRunningIPO(False)
        for ipoData in ipolist:
            jsonFormat = generateJSONResposneForIPO(ipoData)
            responseList.append(jsonFormat)

    elif msg_type == MessageParser.UNSUBSCRIBE:
        DBHelper.updateuser(sender_id, '0')
        message1 = "We're sad to see you go. You can type 'Subscribe' any time if you want to get updates again."
        jsonFormat = generateJSONResposneForText(message1)
        responseList.append(jsonFormat)

    elif msg_type == MessageParser.SUBSCRIBE:
        DBHelper.updateuser(sender_id, '1')
        message1 = "You are successfully subscribed. We will notify you for latest IPO news and updates."
        jsonFormat = generateJSONResposneForText(message1)
        responseList.append(jsonFormat)

    elif msg_type == MessageParser.THANKS:
        DBHelper.updateuser(sender_id, '1')
        message1 = "Always happy to serve."
        jsonFormat = generateJSONResposneForText(message1)
        responseList.append(jsonFormat)

    if not responseList:
        message1 = "Sorry, No Results Found."
        jsonFormat = generateJSONResposneForText(message1)
        responseList.append(jsonFormat)

    return responseList