//////////////////////////////// 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(); msg = message.get("text"); name = visitor.get("name"); email = visitor.get("email"); phone = visitor.get("phone"); // departmentId = visitor.get("department_id"); ///////////////////////////////////////////////////////// //////////////////////////////////////////////////////// if(operation.equals("chat")) { if(!msg.equalsIgnoreCase("Client Care") && !msg.equalsIgnoreCase("Sales")) { response = Map(); response.put("action","reply"); response.put("replies",{hippa_message,welcome_message,departments_message}); response.put("input",{"type":"select","options":{"Client Care","Sales"}}); return response; } } if(msg.equalsIgnoreCase("Sales")) { chatBotActions = invokeurl [ url :"https://www.zohoapis.com/crm/v2/functions/Fetch_Chabot_Sales_Actions/actions/execute?auth_type=apikey&zapikey=1003.54e865e56692ea2154455b76012a7b71.1a7eab6552466d5f0187d84f8f1785b0" type :POST ]; info "From function = " + chatBotActions; issueTypes = chatBotActions.get("details").get("output").get("issueType"); /////////////////////////////////////////////////// if(!issueTypes.isEmpty()) { /////////////////////Create Session////////////////////////////////// data_mp = Map(); data_mp.put("department","Sales"); set_map = Map(); set_map.put("data_mp",data_mp); temp_store = zoho.salesiq.visitorsession.set("mediproinc",set_map,"zoho_salesiq"); info "Storing data = " + temp_store; ///////////////////////////////////////////////////////////////////// //info show question response.put("action","context"); response.put("context_id","salesIssueType"); question = {"name":"issueType","replies":{issue_message},"input":{"type":"select","options":issueTypes}}; response.put("questions",{question}); } else { // Chat Forward // Sales Department: 810990000000014003 response.put("action","forward"); response.put("department","810990000000014003"); response.put("replies",{connect_to_agent_message}); } } else if(msg.equalsIgnoreCase("Client Care")) { searchContact = invokeurl [ url :"https://www.zohoapis.com/crm/v3/Contacts/search?criteria=(Email:equals:" + email + ")" type :GET connection:"zohocrm" ]; info searchContact; info isNull(searchContact); if(isNull(searchContact)) { /////////////////////Create Session////////////////////////////////// data_mp = Map(); data_mp.put("department","Client Care"); set_map = Map(); set_map.put("data_mp",data_mp); temp_store = zoho.salesiq.visitorsession.set("mediproinc",set_map,"zoho_salesiq"); info "Storing data = " + temp_store; ///////////////////////////////////////////////////////////////////// /////// User Did not Identified //////// response.put("action","context"); response.put("context_id","userNotIdentified"); otherEmail = {"name":"otherEmail","replies":{user_not_identified_message,other_mail_message}}; couldNotIdentify = {"name":"couldNotIdentify","replies":{user_not_identified_message},"input":{"type":"select","options":{"Yes","No"}}}; response.put("questions",{couldNotIdentify}); } else { /////////////// User found /////////////// info "Record Found"; contactDetials = searchContact.get("data").get(0); accountID = ifnull(contactDetials.get("Account_Name"),{"id":null}).get("id"); chatBotActions = invokeurl [ url :"https://www.zohoapis.com/crm/v2/functions/erphub_test/actions/execute?auth_type=apikey&zapikey=1003.54e865e56692ea2154455b76012a7b71.1a7eab6552466d5f0187d84f8f1785b0&accountID=" + accountID type :POST ]; info "From function = " + chatBotActions; classifications = chatBotActions.get("details").get("output").get("classifications"); /////////////////////////////////////////////////// if(!classifications.isEmpty()) { //////////////////////////////////////////////////////////////////////////////////////// searchAgreement = invokeurl [ url :"https://www.zohoapis.com/crm/v3/Contracts/search?criteria=((Account:equals:" + accountID + ")and(Status:equals:Active))" type :GET connection:"zohocrm" ]; info "searchAgreement: " + searchAgreement; activeAgreement = false; if(searchAgreement.size() > 0) { activeAgreement = true; } else { activeAgreement = false; } ///////////////////////////////////////////////////////////////////// classification_rep_list = List(); if(activeAgreement == true) { // classificationText = "Please select a classification"; classification_rep_list.add(select_product_message); } else { classification_rep_list.add(no_support_agreement_message); classification_rep_list.add(select_product_message); } //////////////////////info show question///////////////////////////// response.put("action","context"); response.put("context_id","clientCare"); question = {"name":"classification","replies":classification_rep_list,"input":{"type":"select","options":classifications}}; response.put("questions",{question}); /////////////////////Create Session////////////////////////////////// data_mp = Map(); data_mp.put("accountID",accountID); data_mp.put("activeAgreement",activeAgreement); data_mp.put("department","Client Care"); set_map = Map(); set_map.put("data_mp",data_mp); temp_store = zoho.salesiq.visitorsession.set("mediproinc",set_map,"zoho_salesiq"); info "Storing data = " + temp_store; ///////////////////////////////////////////////////////////////////// } else { // Chat Forward // Client Care Department: 810990000000014005 response.put("action","forward"); response.put("department","810990000000014005"); response.put("replies",{connect_to_agent_message}); } } } else { response = Map(); response.put("action","reply"); response.put("replies",{hippa_message,welcome_message,departments_message}); response.put("input",{"type":"select","options":{"Client Care","Sales"}}); return response; } return response;
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter