Hello Everyone,
A custom function is a software code that can be used to automate a process and this allows you to automate a notification, call a webhook, or perform logic immediately after a workflow rule is triggered. This feature helps to automate complex tasks and calculations.
Considering the following customer use case:
Some customers want to automatically create a project when a deal is closed in Zoho CRM.
We've been given a particular request to establish an automation that sends an automated email to the Owner of the deal associated with the created Project at every 25% completion of the project.
The following code can fulfil this requirement. Create a connection with the scopes "ZohoProjects.clients.ALL, ZohoCRM.modules.ALL, ZohoProjects.projects.READ" to Replace ‘connectionprojects’ with the connection name. Click this link below to learn how to create the connection. Attached a screenshot of the Arguments.
endPointV3 = "https://projects.zoho.com/api/v3/portal/";
// scopes: ZohoProjects.clients.ALL, ZohoCRM.modules.ALL, ZohoProjects.projects.READ
projectsAPIEndPoint = "https://projectsapi.zoho.com";
module = "Deals";
projectDetail = invokeurl
[
url :projectsAPIEndPoint + "/api/v3/portal/" + portalId + "/projects/" + projectId + "/crm/" + module.toLowerCase()
type :GET
connection:"connectionprojects"
];
if(projectDetail.get("deals").size() > 0)
{
dealId = projectDetail.get("deals").get(0).get("id");
response = zoho.crm.getRecordById("Deals",dealId);
toMailId = response.get("Owner").get("email");
projectDetail = invokeurl
[
url :projectsAPIEndPoint + "/restapi/portal/" + portalId + "/projects/" + projectId + "/"
type :GET
connection:"connectionprojects"
];
projectPercent = getAllProjectResponse.get("projects").get(0).get("project_percent").toNumber();
percent = projectPercent % 25;
if(percent == 0)
{
sendmail
[
from :zoho.loginuserid
to :toMailId
subject :"Project is reached " + projectPercent +"% "
message :"message"
]
}
}
return "success";