Power of Automation::Streamline Associated Teams during Blueprint transition.

Power of Automation::Streamline Associated Teams during Blueprint transition.


Hello Everyone,

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:-

One of our customers wanted to automatically fetch the Task Owner's Team and assign it to the Associated Team field during a Blueprint transition. To achieve this, associate the below custom function code to the "After" section of the blueprint transition. For more details on Blueprint, please refer to this link.

Custom function code:-

zuidList = list();
/*          Get all owners and teams.      */
for each  owner in taskOwners
{
zuidList.add(owner.get("id").toString());
}
getTeamUsers = invokeurl
[
url :endPointV3 + portalId + "/teams/users"
type :GET
connection:"XXXXX"
];
if(getTeamUsers.get("page_info").get("count") > 0)
{
associtedTeams = list();
for each  user in getTeamUsers.get("team_users")
{
info zuidList + " == " + user.get("zuid") + " : " + zuidList.contains(user.get("zuid"));
if(zuidList.contains(user.get("zuid")))
{
associtedTeams.addAll(user.get("associted_teams"));
}
}
associtedTeams = associtedTeams.distinct();
}
/*   Get all associate teams      */
getAssociatedTeams = invokeurl
[
url :endPointV3 + portalId + "/projects/" + projectId + "/teams"
type :GET
connection:"XXXXX"
];
// info getAssociatedTeams;
 associteTeam = list();
for each  teamid in associtedTeams
{
associteTeam.add({"id":teamid});
}
/*   Remove teams that are already associated   */
if(getAssociatedTeams.get("page_info").get("count") > 0)
{
for each  team in getAssociatedTeams.get("teams")
{
if(associtedTeams.contains(team.get("id")))
{
associtedTeams.removeElement(team.get("id"));
}
}
}
// info associtedTeams;
/*   Associate teams to project of not added   */
if(associtedTeams.size() > 0)
{
params = Map();
params.put("team_ids",associtedTeams);
info params;
associateTeamToProject = invokeurl
[
url :endPointV3 + portalId + "/projects/" + projectId + "/associate-teams"
type :POST
parameters:params
connection:"XXXXX"
];
info associateTeamToProject;
}
/*   Associate teams to task of not added   */
if(associteTeam.size() > 0)
{
params = Map();
params.put("teams",{{"add":associteTeam}});
info params;
associateTeamToTask = invokeurl
[
url :endPointV3 + portalId + "/projects/" + projectId + "/tasks/" + taskId
type :PATCH
parameters:params.toString()
connection:"XXXXX"
];
info associateTeamToTask;
}
return "success";

Make sure to replace XXXXX with the Zoho Projects connection link name along with scopes ZohoProjects.tasks.UPDATE, ZohoProjects.teams.ALL. Check this link to learn how to create the connection. Please find the screenshot of the parameters to be mapped.

We hope you found this post useful. If you have any questions, feel free to share them in the comments below.


      • Sticky Posts

      • Update on V2 API End-of-Life Timeline

        Dear Users, Earlier this year, we shared the launch of the V3 APIs and requested users to migrate from the older V2 APIs by December 2025. We have received valuable feedback from our users and partners regarding their migration timelines. We are happy
      • Automation Series: Auto-assign Task Followers

        As task progresses, several users are required to stay aware of the updates to plan their upcoming work items efficiently. Manually adding users as followers for an active task might create additional overhead. With this automation, followers can be added
      • WhatsApp Business Integration for Zoho Projects

        Delivery channel plays a decisive role in how quickly certain project updates translate into immediate actions. A release is ready to go live. An issue is marked critical. An approval is pending. These moments are less about tracking and more about timely
      • Enhanced Collaboration and Global Web Tabs

        Hello Users, We are rolling out two key enhancements in Zoho Projects that will be part of our November release. Here’s what to expect: 1. Collaboration Section in the Left Navigation Panel What’s new? All communication and interactive tools will be grouped
      • Choosing the Right Automation in Zoho Projects

        In any project, different types of actions are needed at different points. Some projects require control on how tasks move, some require reacting to updates, and some require executing additional actions beyond the task. Automation in Zoho Projects is