I have created a amazon lex chatbot that raises the ticket for the organisation. It asks for 5 input fields (empid, name, description, impact, urgency, emailid) and stores in aws lambda. Till now, I have been storing the input fields that I get from chatbot into dynamodb through aws lambda in python. Now,I want to check how many times a particular user has raised a ticket. I am a beginner to database concepts.
Sample conversation.
User:Hi
Chatbot:Enter your id?
User:q123
Chatbot:enter your name?
User:xxx
Chatbot:enter your desc?
User:sdbsb
Chatbot:enter your emailid?
User:xxx@yyy.com
Chatbit:your ticket is raised.
User:I want to check till now the number of tickets I have raised
Chatbot:you have raised 4 tickets till now.
Sample code:
import json
import logging
import re
import http.client
import mimetypes
import boto3
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
def close():
val= {
"dialogAction":
{
"fulfillmentState":"Fulfilled",
"type":"Close",
"message":
{
"contentType":"PlainText",
"content":"Hey your ticket has been raiised"
},
'responseCard': {
'version': '1',
'contentType': 'application/vnd.amazonaws.card.generic',
}
}
print(val)
return val
def lambda_handler(event, context):
dynamodb=boto3.resource('dynamodb')
table=dynamodb.Table('employee')
slots = event['currentIntent']['slots']
empidemployee= event['currentIntent']["slots"]["empidemployee"]
latestdesc= event['currentIntent']["slots"]["latestdesc"]
latestservice= event['currentIntent']["slots"]["latestservice"]
latestimpactvalue= event['currentIntent']["slots"]["latestimpactvalue"]
latesturgency= event['currentIntent']["slots"]["latesturgency"]
basicinfo=event['currentIntent']["slots"]["basicinfo"]
jsonStrings ={
'empidemployee':empidemployee,
'desc':latestdesc,
'service':latestservice,
'impact':latestimpactvalue,
'urgency':latesturgency,
'emailid':basicinfo
}
print(jsonStrings)
table.put_item(
Item=jsonStrings
)
val=close()
return val
return {
'statusCode':200,
'body':'added'
}