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.
Let's take the below User Requirement -
When the project status is updated to 'Completed' but the tasks are still in 'open' status, customer wants to send an email alert to the respective task owners informing them to close the tasks.
The code below will help you to achieve this requirement.
Note:: Please refer to this post to access custom function feature within Zoho Projects.
// TODO: Please create a connection for the Zoho Projects service with the scopes "ZohoProjects.task.ALL". Replace 'xxxxxxxxx' with the connection name. Click this link below to learn how to create the connection.
// only 100 tasks can be updated with status close
indexValue = 0;
// index starts 0
rangeValue = 100;
// range starts 1
endPoint = "https://projects.zoho.com/restapi/portal/";
// Get All Tasks
taskParameter = Map();
taskParameter.put("status","notcompleted");
taskParameter.put("index",indexValue);
taskParameter.put("range",rangeValue);
taskResponse = zoho.projects.getRecords(portalId,projectId,"tasks",taskParameter,0,"*********");
if(taskResponse.containKey("tasks"))
{
tasks = taskResponse.get("tasks");
for each task in tasks
{
owners = task.get("details").get("owners");
for each user in owners{
if(!user.get("name").equalsIgnoreCase("Unassigned")){
sendmail
[
from :zoho.loginuserid
to :user.get("email")
subject :"Complete the Tasks!"
message :"Kindly complete the open tasks assigned to you."
]
}
}
}
}
return "success";
Creating custom functions in Zoho Projects is straightforward and well-documented. Zoho provides a range of built-in functions that you can use as a starting point, and you can also easily define your own functions using Zoho's scripting language, Deluge. Give it a try and see how it can save your time and boost your productivity!
Watch this space for more such custom function codes.