// accountID = 3241967000000998225;
////////////////////////////////////////////
products = zoho.crm.searchRecords("Products","((Account_ID:equals:" + accountID + ")and(Product_Active:equals:true))");
classifications_list = List();
classifications_vs_catergories = Map();
catergories_vs_issueType = Map();
issueType_vs_recIds = Map();
///////////////////////////////////////////////////////////
for each  pro in products
{
	productName = pro.get("Product_Name").getPrefix("-");
	if(productName == null)
	{
		finalProductName = pro.get("Product_Name").trim();
	}
	else
	{
		finalProductName = productName.trim();
	}
	info finalProductName;
	queryMap = Map();
	queryMap.put("select_query","select Products, Classification, Problem_Category, Issue_Type, Required_Info_Type, Instructions, Multi_Option_Question, Output_Message, Output_Action, KB_Article from ChatBot_Actions where Products like '%" + finalProductName + "%'");
	response = invokeurl
	[
		url :"https://www.zohoapis.com/crm/v4/coql"
		type :POST
		parameters:queryMap.toString()
		connection:"zoho_crm"
	];
	// 	info response;
	//////////////////////////////////////////////////////////
	if(!isNull(response))
	{
		data = response.get("data");
		for each  val in data
		{
			products_list = val.get("Products").toList();
			if(products_list.contains(finalProductName))
			{
				classification = val.get("Classification");
				ProblemCategory = val.get("Problem_Category");
				IssueType = ifnull(val.get("Issue_Type"),"Empty");
				recId = val.get("id");
				///////////////////////////////////////////////
				if(!classifications_list.contains(classification))
				{
					classifications_list.add(classification);
				}
				////////////////////////////Classificaiton VS Categories/////////////////////////////
				if(classifications_vs_catergories.containKey(classification))
				{
					categories_list = classifications_vs_catergories.get(classification);
					if(!categories_list.contains(ProblemCategory))
					{
						categories_list.add(ProblemCategory);
						classifications_vs_catergories.put(classification,categories_list);
					}
				}
				else
				{
					categories_list = List();
					categories_list.add(ProblemCategory);
					classifications_vs_catergories.put(classification,categories_list);
				}
				//////////////////////////////////////////////////////////////////////////////
				////////////////////////////Categories VS Issue Types//////////////////////////
				keyCombination_issueType = classification + "/" + ProblemCategory;
				if(catergories_vs_issueType.containKey(keyCombination_issueType))
				{
					issueType_list = catergories_vs_issueType.get(keyCombination_issueType);
					if(!issueType_list.contains(IssueType))
					{
						issueType_list.add(IssueType);
						catergories_vs_issueType.put(keyCombination_issueType,issueType_list);
					}
				}
				else
				{
					issueType_list = List();
					issueType_list.add(IssueType);
					catergories_vs_issueType.put(keyCombination_issueType,issueType_list);
				}
				keyCombination = classification + "/" + ProblemCategory + "/" + IssueType;
				issueType_vs_recIds.put(keyCombination,recId);
			}
		}
	}
}
returnMap = Map();
returnMap.put("classifications",classifications_list);
returnMap.put("classificationsVsCategories",classifications_vs_catergories);
returnMap.put("catergoriesVsIssueTypes",catergories_vs_issueType);
returnMap.put("issueTypeVsrequireInfo",issueType_vs_recIds);
return returnMap;