//////////////////////////////// Fetching dymamic messages Start ///////////////////////////////////////////////////////////
messages = zoho.crm.getRecords("Chatbot_Messages");
// info messages;
for each dynamic_message in messages
{
if(dynamic_message.get("Type") == "Welcome")
{
welcome_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "HIPAA Disclaimer")
{
hippa_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Chat End")
{
chat_end_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Departments")
{
departments_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Issue")
{
issue_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Connect to Agent")
{
connect_to_agent_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "User Not Identified")
{
user_not_identified_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Other Email")
{
other_mail_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Select Product")
{
select_product_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "No Support Agreement")
{
no_support_agreement_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Category")
{
category_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Read Article")
{
read_article_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Article Found")
{
article_found_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Issue Resolved with Article")
{
issue_resolved_with_article_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Tallk to Agent")
{
talk_to_agent_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Thank You for Information")
{
thank_you_for_information_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Need Further Help")
{
need_further_help_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Thank You")
{
thank_you_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Ticket Created for Team")
{
ticket_created_for_team_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Ticket Created for Reference")
{
ticket_created_for_reference_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Issue Resolved")
{
issue_resolved_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "What Can I Help You")
{
how_can_i_help_you_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Operator Busy")
{
operator_busy_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Classification")
{
classification_message = dynamic_message.get("Message");
}
else if(dynamic_message.get("Type") == "Ticket Not Created")
{
ticket_not_created_message = dynamic_message.get("Message");
}
}
//////////////////////////////// Fetching dymamic messages Ends ///////////////////////////////////////////////////////////
response = Map();
departmentID = visitor.get("department_id");
if(failed_response.get("action").equalsIgnoreCase("forward"))
{
code = cause.get("code").toNumber();
if(code == 1001 || code == 1002 || code == 1003)
{
// Outside business hours // Busy Opertator /// Invalid Operator
response.put("action","reply");
response.put("replies",{operator_busy_message});
if(departmentID == "655171000000007001")
{
// Sales Department
getAccessToken = invokeurl
[
url :"https://accounts.zoho.com/oauth/v2/token?refresh_token=1000.35651ab6143ca5cf40a77d63143f2da4.dc85264b1c57b1203ae869a971598215&client_id=1000.D5KNOCDNNRDIJQO0WUATY3X7DYUUWE&client_secret=efd3a5b025c48fdb46843a14853197ad12b924aa20&grant_type=refresh_token"
type :POST
];
// info getAccessToken.get("access_token");
headerMap = Map();
headerMap.put("Authorization","Zoho-oauthtoken " + getAccessToken.get("access_token"));
// info headerMap;
queryMap = Map();
queryMap.put("select_query","select Issue_Type, Required_Information from ChatBot_Actions where Department = 'Sales'");
response = invokeurl
[
url :"https://www.zohoapis.com/crm/v4/coql"
type :POST
parameters:queryMap.toString()
headers:headerMap
];
// info response;
responseData = response.get("data");
issueTypeList = List();
issueTypeVSRequiredInformation = Map();
for each option in responseData
{
if(!issueTypeList.contains(option.get("Issue_Type")))
{
issueTypeList.add(option.get("Issue_Type"));
}
////////////////////////////IssueType VS Required Information /////////////////////////////
if(issueTypeVSRequiredInformation.containKey(option.get("Issue_Type")))
{
requiredInformationList = issueTypeVSRequiredInformation.get(option.get("Issue_Type"));
if(!requiredInformationList.contains(option.get("Required_Information")))
{
requiredInformationList.add(option.get("Required_Information"));
issueTypeVSRequiredInformation.put(option.get("Issue_Type"),requiredInformationList);
}
}
else
{
requiredInformationList = List();
requiredInformationList.add(option.get("Required_Information"));
issueTypeVSRequiredInformation.put(option.get("Issue_Type"),requiredInformationList);
}
}
// info "issueType = "+issueTypeList;
// info "issuetype vs recquired info ="+issueTypeVSRequiredInformation;
response.put("action","context");
response.put("context_id","salesIssueType");
question = {"name":"issueType","replies":{issue_message},"input":{"type":"select","options":issueTypeList}};
response.put("questions",{question});
tempStoreMap = Map();
tempStoreMap.put("salesIssuetypeVSrequiredInfo",issueTypeVSRequiredInformation);
storeData = zoho.salesiq.visitorsession.set("mediproinc",tempStoreMap,"zoho_salesiq");
}
}
}
return response;