Hello Everyone,
Here we are again with another requirement that was fulfilled utilizing the Project Custom Functions.
A Custom Function is a user-written set of code to achieve a specific requirement. Set the required conditions needed as to when to trigger using the Workflow rules (be it Tasks / Project) and associate the custom function to it.
Requirement:-
With the available Zoho Projects and CRM integration, Projects created in Zoho Projects should be manually associated to the Deals if needed from the Deals module in Zoho CRM. One of our customers would like to automatically create a Deal in Zoho CRM with the name of the project when a project is created in Zoho Projects. Also, they wanted to associate the project with that Deal.
This automation was implemented using Custom Functions in Zoho Projects along with Project Workflow Rules.
Custom function code:-
acctId = "XXXXXXX";
acctDetails = zoho.crm.getRecordById("Accounts",acctId.toLong());
mp = Map();
mp.put("Deal_Name",projectName+"1");
mp.put("Account_Name",acctId.toLong());
mp.put("Owner",ifnull(acctDetails.get("Owner"),"").get("id"));
mp.put("Amount",ifnull(acctDetails.get("Annual_Revenue"),"0.0").toDecimal());
mp.put("Stage","Qualification");
mp.put("Closing_Date",today.toDate().addDay(5));
create = zoho.crm.createRecord("Deals",mp);
dealId = create.get("id");
mp.clear();
mp.put("name",projectName);
mp.put("project_owner","");
datalist = List();
datalist.add(mp);
datamp = Map();
datamp.put("data",datalist);
resp = invokeurl
[
type :POST
parameters:datamp.toString()
connection:"YYYYYYY"
];
return "success";
Make sure to replace XXXXXXX with the Account Id in Zoho CRM and YYYYYYY with the Zoho OAuth connection link name which has the scopes: ZohoProjects.portals.ALL, ZohoProjects.projects.ALL, ZohoCRM.modules.ALL. Check this link to learn how to create the connection. Please find the screenshots of the list of parameters to be mapped and sample workflow rules for reference.