void automation.SEND_NEWLEAD_AGREEMENT_ON_RENEWAL(Int leaseID) { try { ///////////////////////-get renewal lease id------/////////// Expiring_leasesDetails = zoho.crm.getRelatedRecords("Related_List_Name_1","Leases",leaseID); info Expiring_leasesDetails; for each leaseDetail in Expiring_leasesDetails { lease_id = leaseDetail.get("id"); } info lease_id; //////////////////////------get renewal lease info-----//////////// lease_detail = zoho.crm.getRecordById("Leases",lease_id); // info lease_detail; opp_id = lease_detail.get("Opportunity").get("id"); // info opp_id; oppData = zoho.crm.getRecordById("Deals",opp_id); info oppData; siteid = oppData.get("Site").get("id"); info "siteid: " + siteid; //////////--------- siteinfo = zoho.crm.getRecordById("Accounts",siteid); initial_lead_inspection_result = siteinfo.get("Initial_Lead_Inspection_Result"); info initial_lead_inspection_result; /////////////////////////////////////////////////////////////////// oppName = oppData.get("Deal_Name"); info "opp name: " + oppName; siteName = oppData.get("Site").get("name"); info "siteName: " + siteName; if(oppData.get("Property_Manager") != null) { propertyManager = oppData.get("Property_Manager").get("name"); pm_id = oppData.get("Property_Manager").get("id"); } info "pm:" + propertyManager; /////////////////////////////////////////////////////////////////////////////// petPolicyCharges = oppData.get("Pet_Policy_Charges_USD"); waterMonthlyCharges = oppData.get("Monthly_Water_Charges_USD"); info waterMonthlyCharges; info petPolicyCharges; if(waterMonthlyCharges == null || waterMonthlyCharges == 0) { waterMonthlyCharges = "Water utility (Monthly Charges) will be charged on actual consumption."; } else { waterMonthlyCharges = "Constant of $ " + waterMonthlyCharges + " will be charged for water utility per month residing in the property."; } if(petPolicyCharges == null || petPolicyCharges == 0 || petPolicyCharges == 200) { petPolicyCharges = "200"; } info "Test Only"; /////////////////////////property manager Email/////////////////////// NewAccessTokenRequest = invokeurl [ url :"https://accounts.zoho.com/oauth/v2/token?refresh_token=1000.0d787bd93f09618b2dbd194ce87a3ac4.c64ff75b9cb389b49ebf42844e9673f3&client_id=1000.6S03ETCF3SEM8YHEQ9BUGXDK6O7Q1H&client_secret=418fb1c600b10085070ca461e6a5e2b8c4a0632133&redirect_uri=https://clevelandbricks.com/&grant_type=refresh_token" type :POST ]; NewAccessToken = NewAccessTokenRequest.get("access_token"); //---------------------------Authtoken--------------------------------------- Authtoken = Map(); Authtoken.put("Authorization","Zoho-oauthtoken " + NewAccessToken + ""); Org_Data = invokeurl [ url :"https://www.zohoapis.com/crm/v2/users/" + pm_id type :GET headers:Authtoken ]; info "pm_id" + pm_id; info Org_Data; propertyManagerEmail = Org_Data.get("users").get(0).get("email"); info "Property Manager Email: " + propertyManagerEmail; //////// ///------------------GET INFO FROM NEW LEASE--------------//////// leaseTerm_months = lease_detail.get("Least_Rental_Term_Months"); leaseTerm_days = lease_detail.get("Lease_Term_Number_of_Days"); monthlyRent = lease_detail.get("Monthly_Rent"); paymentTerms = lease_detail.get("Payment_Terms"); leaseStartDate = lease_detail.get("Lease_Start_Date").toString("MM/dd/yyyy"); leaseEndDate = lease_detail.get("Lease_End_Date").toString("MM/dd/yyyy"); ////////////////////////////////////GET INFO FROM OPP/////////////////////////////////////// securityDeposit = 0; tenantName = ifnull(oppData.get("Contact_Name").get("name"),""); tenantId = ifnull(oppData.get("Contact_Name").get("id"),""); tenantEmail = zoho.crm.getRecordById("Contacts",tenantId).get("Email"); info "Primary tenant Email: " + tenantEmail; //------------------------------------------------------------------------ coTenant1Data = oppData.get("Sub_Contact_1"); coTenant2Data = oppData.get("Sub_Contact_2"); coTenant3Data = oppData.get("Sub_Contact_3"); coTenant4Data = oppData.get("Sub_Contact_4"); totalTenant = 1; coTenants = {1,2,3,4}; for each data in coTenants { count = oppData.get("Sub_Contact_" + data); if(count != null) { totalTenant = totalTenant + 1; } } info "Total Tenant/s = " + totalTenant; /////////-------------------------------lead+lease------------------------------------- if(initial_lead_inspection_result = "Fail") { info "initial_lead_inspection_result=failed"; if(totalTenant == 1) { templateResp = zoho.sign.getTemplateById(53924000002918479); info "fail 1 tenant"; //old was } else if(totalTenant == 2) { templateResp = zoho.sign.getTemplateById(53924000002918253); info "fail 2 tenants"; } else if(totalTenant == 3) { templateResp = zoho.sign.getTemplateById(53924000002918031); info "fail 3 tenants"; } else if(totalTenant == 4) { templateResp = zoho.sign.getTemplateById(53924000002916523); info "fail 4 tenants"; } } else { info "pass or blank"; if(totalTenant == 1) { templateResp = zoho.sign.getTemplateById(53924000002918659); info "pass 1 tenant"; //old was } else if(totalTenant == 2) { templateResp = zoho.sign.getTemplateById(53924000002918839); info "pass 2 tenants"; } else if(totalTenant == 3) { templateResp = zoho.sign.getTemplateById(53924000002919039); info "pass 3 tenants"; } else if(totalTenant == 4) { templateResp = zoho.sign.getTemplateById(53924000002919261); info "pass 4 tenants"; } } ///////////////////////////////////////////////////////////// templateRec = templateResp.get("templates"); actionRec1 = templateRec.get("actions").get(0); actionRole1 = actionRec1.get("role"); actionId1 = actionRec1.get("action_id"); actionType1 = actionRec1.get("action_type"); eachActionMap1 = Map(); eachActionMap1.put("recipient_name",tenantName); eachActionMap1.put("recipient_email",tenantEmail); eachActionMap1.put("action_type",actionType1); eachActionMap1.put("action_id",actionId1); eachActionMap1.put("role",actionRole1); eachActionMap1.put("verify_recipient","false"); //////////////////////////////////////property manager///////////////////////////////////// if(totalTenant == 1) { actionPM = templateRec.get("actions").get(1); } else if(totalTenant == 2) { actionPM = templateRec.get("actions").get(2); } else if(totalTenant == 3) { actionPM = templateRec.get("actions").get(3); } else if(totalTenant == 4) { actionPM = templateRec.get("actions").get(4); } // else if(totalTenant == 5) // { // actionPM = templateRec.get("actions").get(5); // } PMRole = actionPM.get("role"); PMId = actionPM.get("action_id"); PMType = actionPM.get("action_type"); PMMap1 = Map(); PMMap1.put("recipient_name",propertyManager); PMMap1.put("recipient_email",propertyManagerEmail); PMMap1.put("action_type",PMType); PMMap1.put("action_id",PMId); PMMap1.put("role",PMRole); PMMap1.put("verify_recipient","false"); //////////////////////////////--------------------------/////////////////// actionMap0 = Map(); fieldTextData = Map(); field_boolean_data = Map(); //------------------------------------------------------------------------- //-------------------------------------------------------------------------- if(coTenant1Data != null) { coTenant2 = coTenant1Data.get("name"); coTenant1Id = coTenant1Data.get("id"); coTenantEmail2 = zoho.crm.getRecordById("Contacts",coTenant1Id).get("Email"); actionRec2 = templateRec.get("actions").get(1); actionRole2 = actionRec2.get("role"); actionId2 = actionRec2.get("action_id"); actionType2 = actionRec2.get("action_type"); eachActionMap2 = Map(); eachActionMap2.put("recipient_name",coTenant2); eachActionMap2.put("recipient_email",coTenantEmail2); eachActionMap2.put("action_type",actionType2); eachActionMap2.put("action_id",actionId2); eachActionMap2.put("role",actionRole2); eachActionMap2.put("verify_recipient","false"); fieldTextData.put("Tenant-2 2b",coTenant2); // fieldTextData.put("co tenant 01",coTenant2); fieldTextData.put("co tenant 001",coTenant2); } if(coTenant2Data != null) { coTenant3 = coTenant2Data.get("name"); coTenant2Id = coTenant2Data.get("id"); coTenantEmail3 = zoho.crm.getRecordById("Contacts",coTenant2Id).get("Email"); actionRec3 = templateRec.get("actions").get(2); actionRole3 = actionRec3.get("role"); actionId3 = actionRec3.get("action_id"); actionType3 = actionRec3.get("action_type"); eachActionMap3 = Map(); eachActionMap3.put("recipient_name",coTenant3); eachActionMap3.put("recipient_email",coTenantEmail3); eachActionMap3.put("action_type",actionType3); eachActionMap3.put("action_id",actionId3); eachActionMap3.put("role",actionRole3); eachActionMap3.put("verify_recipient","false"); fieldTextData.put("co tenant 2",coTenant3); // fieldTextData.put("co tenant 02",coTenant3); fieldTextData.put("co tenant 002",coTenant3); } if(coTenant3Data != null) { coTenant4 = coTenant3Data.get("name"); coTenant3Id = coTenant3Data.get("id"); coTenantEmail4 = zoho.crm.getRecordById("Contacts",coTenant3Id).get("Email"); actionRec4 = templateRec.get("actions").get(3); actionRole4 = actionRec4.get("role"); actionId4 = actionRec4.get("action_id"); actionType4 = actionRec4.get("action_type"); eachActionMap4 = Map(); eachActionMap4.put("recipient_name",coTenant4); eachActionMap4.put("recipient_email",coTenantEmail4); eachActionMap4.put("action_type",actionType4); eachActionMap4.put("action_id",actionId4); eachActionMap4.put("role",actionRole4); eachActionMap4.put("verify_recipient","false"); fieldTextData.put("co tenant 3",coTenant4); // fieldTextData.put("co tenant 03",coTenant4); fieldTextData.put("co tenant 003",coTenant4); } if(coTenant4Data != null) { coTenant5 = coTenant4Data.get("name"); coTenant4Id = coTenant4Data.get("id"); coTenantEmail5 = zoho.crm.getRecordById("Contacts",coTenant4Id).get("Email"); actionRec5 = templateRec.get("actions").get(4); actionRole5 = actionRec5.get("role"); actionId5 = actionRec5.get("action_id"); actionType5 = actionRec5.get("action_type"); eachActionMap5 = Map(); eachActionMap5.put("recipient_name",coTenant5); eachActionMap5.put("recipient_email",coTenantEmail5); eachActionMap5.put("action_type",actionType5); eachActionMap5.put("action_id",actionId5); eachActionMap5.put("role",actionRole5); eachActionMap5.put("verify_recipient","false"); fieldTextData.put("co tenant 4",coTenant5); fieldTextData.put("co tenant 04",coTenant5); fieldTextData.put("co tenant 004",coTenant5); } //--------------------------------------------------------------------------- fieldTextData.put("site name",siteName); fieldTextData.put("opportunity name",oppName); fieldTextData.put("lease term",leaseTerm_months + " Months"); if(leaseTerm_days != null && leaseTerm_days != 0) { fieldTextData.put("lease term",leaseTerm_months + " Month/s and " + leaseTerm_days + " Days"); } fieldTextData.put("monthly rent","$ " + monthlyRent); fieldTextData.put("security deposite","$ " + securityDeposit); fieldTextData.put("lease start date",leaseStartDate); fieldTextData.put("lease end date",leaseEndDate); fieldTextData.put("tenant name",tenantName); // fieldTextData.put("tenant name 1",tenantName); fieldTextData.put("site name1",siteName); fieldTextData.put("lease start date 1",leaseStartDate); fieldTextData.put("lease end date 1",leaseEndDate); fieldTextData.put("lease start date 2",leaseStartDate); fieldTextData.put("mo",leaseTerm_months + " Months"); ///////////////// if(leaseTerm_days != null && leaseTerm_days != 0) { fieldTextData.put("mo",leaseTerm_months + " Month/s and " + leaseTerm_days + " Days"); } fieldTextData.put("rent per month","$ " + monthlyRent); // fieldTextData.put("tenant name 1",tenantName); fieldTextData.put("tenant name 2",tenantName); fieldTextData.put("property manager",propertyManager); fieldTextData.put("water_monthly",waterMonthlyCharges); fieldTextData.put("pet_charges",petPolicyCharges); /////////////////////////////////////// ///////////-------new changes phase 2 lead----///////////// fieldTextData.put("By_PMname",propertyManager); ////////////////////------section 4 ---site info------////////////// Site_type = siteinfo.get("Account_Type"); if(Site_type == "Single Unit") { field_boolean_data.put("Single_Family",true); } else if(Site_type == "Multi Unit") { field_boolean_data.put("Multi_Family",true); } else if(Site_type == "Apartment") { field_boolean_data.put("Apartment",true); } ///////////////////////////////////------add new INFO IN SECTION 13 ---------------//////// // siteinfo = zoho.crm.getRecordById("Accounts",siteid); u_vendors = siteinfo.get("Utilities_Vendors"); // info siteinfo; otherapps = ""; all_apps = siteinfo.get("Appliances"); info all_apps; for each machine in all_apps { info machine; if(machine == "Dishwasher") { field_boolean_data.put("L-Dishwasher",true); } if(machine == "Stove/Oven") { field_boolean_data.put("L-StoveOven",true); } if(machine == "Washing Machine") { field_boolean_data.put("L-WashingMachine",true); } if(machine == "Dryer") { field_boolean_data.put("L-dryer",true); } if(machine == "Microwave") { // field_boolean_data.put("L-other",true); otherapps = otherapps + machine; fieldTextData.put("13a other",otherapps); } if(machine == "Refrigerator") { field_boolean_data.put("L-Refrigerator",true); } if(machine == "Air Conditioner") { // field_boolean_data.put("L-other",true); otherapps = otherapps + machine; fieldTextData.put("13a other",otherapps); } // info fieldTextData; } /////////////////////---------------ADD INFO IN SECTION 12 -NEW-------------////////// if(u_vendors != null || u_vendors != "") { for each utility in u_vendors { Type_of_Service = utility.get("Type_of_Service"); Payment_Responsibility = utility.get("Payment_Responsibility"); if(Type_of_Service == "Electricity") { fieldTextData.put("12.Electric",Payment_Responsibility); } if(Type_of_Service == "Gas") { fieldTextData.put("12.Gas",Payment_Responsibility); } if(Type_of_Service == "Water") { fieldTextData.put("12.Water",Payment_Responsibility); } if(Type_of_Service == "Sewer") { fieldTextData.put("12.Sewer",Payment_Responsibility); } if(Type_of_Service == "Trash") { fieldTextData.put("12.Trash",Payment_Responsibility); } if(Type_of_Service == "Landscaping") { fieldTextData.put("12.Landscaping",Payment_Responsibility); } if(Type_of_Service == "Snow Plow") { fieldTextData.put("12.Snowplow",Payment_Responsibility); } if(Type_of_Service == "HOA") { fieldTextData.put("12.HOA",Payment_Responsibility); } } } /////////////////////////////// info waterMonthlyCharges; info petPolicyCharges; temp_map = Map(); temp_map.put("field_text_data",fieldTextData); temp_map.put("field_boolean_data",field_boolean_data); actionMap0.put("field_data",temp_map); // actionMap0.put("field_data",{"field_boolean_data":field_boolean_data}); fieldList = List(); if(totalTenant == 1) { fieldList.add(eachActionMap1); fieldList.add(PMMap1); } else if(totalTenant == 2) { fieldList.add(eachActionMap1); fieldList.add(eachActionMap2); fieldList.add(PMMap1); } else if(totalTenant == 3) { fieldList.add(eachActionMap1); fieldList.add(eachActionMap2); fieldList.add(eachActionMap3); fieldList.add(PMMap1); } else if(totalTenant == 4) { fieldList.add(eachActionMap1); fieldList.add(eachActionMap2); fieldList.add(eachActionMap3); fieldList.add(eachActionMap4); fieldList.add(PMMap1); } else if(totalTenant == 5) { fieldList.add(eachActionMap1); fieldList.add(eachActionMap2); fieldList.add(eachActionMap3); fieldList.add(eachActionMap4); fieldList.add(eachActionMap5); fieldList.add(PMMap1); } ////////////////// // fields=map(); // fields.put("field_data",{"field_text_data":fieldTextData}); // fields.put("field_data",{"field_boolean_data":field_boolean_data}); // // //// // actionMap0.put("field_data",fields); // actionMap0.put("field_data",{"field_boolean_data":field_boolean_data}); //////////////// actionMap0.put("actions",fieldList); submitMap = Map(); submitMap.put("templates",actionMap0); parameters = Map(); parameters.put("is_quicksend","true"); parameters.put("data",submitMap); info "Parameters: " + parameters; // ////////////////////-----------------lead+lease-------------////// if(initial_lead_inspection_result == "Fail") { info "fail, create using template"; if(totalTenant == 1) { response = zoho.sign.createUsingTemplate(53924000002918479,parameters); info "Here: 1 agree"; info response; } else if(totalTenant == 2) { response = zoho.sign.createUsingTemplate(53924000002918253,parameters); } else if(totalTenant == 3) { response = zoho.sign.createUsingTemplate(53924000002918031,parameters); } else if(totalTenant == 4) { response = zoho.sign.createUsingTemplate(53924000002916523,parameters); } } else { info "pass or blank create using template"; if(totalTenant == 1) { response = zoho.sign.createUsingTemplate(53924000002918659,parameters); info "Here: 1 agree"; info response; } else if(totalTenant == 2) { response = zoho.sign.createUsingTemplate(53924000002918839,parameters); } else if(totalTenant == 3) { response = zoho.sign.createUsingTemplate(53924000002919039,parameters); } else if(totalTenant == 4) { response = zoho.sign.createUsingTemplate(53924000002919261,parameters); } } info "Template: " + response; ///////////////// if(response != null) { lease_update_map = Map(); lease_update_map.put("Lease_Status","Sent"); lease_update_map.put("Lease_Document_Status","In Process"); update_lease = zoho.crm.updateRecord("Leases",lease_id,lease_update_map); } docxId = response.get("requests").get("request_id"); info "Document ID: " + docxId; mpdocx = Map(); mpdocx.put("renewal_document_id",docxId); update = zoho.crm.updateRecord("Deals",opp_id,mpdocx); info "Deal: " + update; /////////////////////////////////////////////////////////////////////////////// } catch (e) { sendmail [ from :zoho.loginuserid to :"erp@clevelandbricks.com","rabia@erphub.biz" subject :"Send new agreement on Renewal/ CRM" message :"Name: " + oppName + " Leaseid " + lease_id + " Root Cause: " + e ] } }
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