Power of Automation :: Automatically associate the team upon project creation.
A Custom function is a user-written set of code to achieve a specific requirement. We should create a connection with required scopes. Then, set up work flow rules criteria and associate a custom function to that workflow rule.
Requirement:
One of our customers wanted to associate a specific Team to the project based on the Group name field selected.
For example, the customer wants to automate Team association to the project based on the group chosen . If the group name is "Real Estate", then automatically associate the "Real Estate" Team to the project.
We have utilised Project level custom function to achieve this.
Custom function code:-
// Connection Scopes: ZohoProjects.projects.ALL, ZohoProjects.portals.ALL, ZohoProjects.users.ALL
// Update the connection name 'connectionprojects'
// project Group name should be same as team name
endPoint = "https://projects.zoho.com/restapi";
projectGroupName = projectGroup.get(0).get("name");
teamIds = List();
userInfo = invokeurl
[
url :endPoint + "/portal/" + portalId + "/usergroups/"
type :GET
connection:"xxxxxxxxxx"
];
usergroups = userInfo.get("userGroups");
if(userInfo.containKey("userGroups"))
{
for each group in usergroups
{
if(group.get("groupObj").get("group_name").equalsIgnoreCase(projectGroupName))
{
teamIds.add(group.get("groupObj").get("group_id"));
break;
}
}
associateUserGroupParam = Map();
associateUserGroupParam.put("groupids",teamIds);
associateUserGroupParam.put("projid",projectId);
associateUserGroupParam.put("notify",true);
associateUserGroupParam.put("needv3response",true);
associateUserGroupsResponse = invokeurl
[
url :endPoint + "/portal/" + portalId + "/usergroups/associategroups/"
type :POST
parameters:associateUserGroupParam
connection:"xxxxxxxxxx"
];
}
return "success";
Make sure to replace "xxxxxxxxxx" in the above code with the connection link name. Screenshot of the list of parameters to be mapped along with sample workflow rule are attached for reference.
Implementing a combination of Project custom functions and workflow rules allowed us to eliminate the need for manual intervention and reduce the time required for the process.
We hope you found this post useful. If you have any questions or wondering if your requirement could be met using custom functions, feel free to share them in the comments section below.