Power of Automation :: Streamline notification on Zoho Cliq channel on project creation.

Power of Automation :: Streamline notification on Zoho Cliq channel on project creation.

Hello Everyone,

A Custom function is a user-written set of code to achieve a specific requirement. Set the required conditions needed as when to trigger using the Workflow rules (be it Tasks / Project) and associate the custom function to it.

One of our customers would like to get notified in the Cliq channel once the project is created along with the project owner, creator and project prefix id details. We already have a Gallery custom function available with the name - Send message to Cliq channel. Minor changes have been implemented to incorporate the project owner's information into the Gallery code, fulfilling the customer's requirement.

Below custom function should be associated with the Project workflow rule along with the trigger condition as "on creation" so that once the project is created, notification would be triggered in the mapped Cliq channel.

Custom function code:-

projectCreateContent = "[user] has created a new project [projId] [projectName] and assigned [projectOwner] as the owner of the Project";
projectUpdateContent = "*[user]* has updated the [action] of the project [projId] from *[pre-value]* to *[post-value]*";
projectBulkUpdateContent = "*[user]* has updated project [projId]";
projectBulkUpdateSubContent = "[action] from *[pre-value]* to *[post-value]*";
projectDeleteContent = "*[user]* has deleted the project *[projectName]*";
projectsDomainURL = "https://projectsapi.zoho.com/restapi";
messageContent = "";
if(!projectAffectedFields.isNull() && projectAffectedFields.contains("edits"))
{
action = projectAffectedFields.get("action");
user = projectAffectedFields.get("user");
projectDetailResp = invokeurl
[
url :"https://projects.zoho.com/restapi/portal/" + portalId + "/projects/" + projectId + "/"
type :GET
connection:"xxxxxxxxx"
];
projectInfo = projectDetailResp.get("projects").get(0);
if(action == "Creation")
{
url = "[" + projectInfo.get("key") + "]";
projectCreateContent = projectCreateContent.replaceAll("[user]",user.get("name"),true);
projectCreateContent = projectCreateContent.replaceAll("[projId]",url,true);
projectCreateContent = projectCreateContent.replaceAll("[projectName]",projectName,true);
messageContent = projectCreateContent.replaceAll("[projectOwner]",owner,true);
}
else if(action == "Update")
{
if(projectAffectedFields.get("edits").size() == 1)
{
url = "[" + projectInfo.get("key") + "]";
projectBulkUpdateContent = projectBulkUpdateContent.replaceAll("[taskId]",url,true);
projectBulkUpdateContent = projectBulkUpdateContent.replaceAll("[user]",user.get("name"),true);
for each fields in projectAffectedFields.get('edits')
{
subcontent = projectBulkUpdateSubContent;
projectBulkUpdateSubContent=projectBulkUpdateSubContent.replaceAll("[action]",fields.get("field_name"),true);
projectBulkUpdateSubContent=projectBulkUpdateSubContent.replaceAll("[pre-value]",fields.get("old_value"),true);
projectBulkUpdateSubContent=projectBulkUpdateSubContent.replaceAll("[post-value]",fields.get("new_value"),true);
projectBulkUpdateContent=projectBulkUpdateContent + " " + projectBulkUpdateSubContent;
}
messageContent = projectBulkUpdateContent;
}
else
{
fields = projectAffectedFields.get("edits").get(0);
projectUpdateContent = projectUpdateContent.replaceAll("[user]",user.get("name"),true);
projectUpdateContent = projectUpdateContent.replaceAll("[action]",fields.get("field_name"),true);
projectUpdateContent = projectUpdateContent.replaceAll("[pre-value]",fields.get("old_value"),true);
projectUpdateContent = projectUpdateContent.replaceAll("[post-value]",fields.get("new_value"),true);
messageContent = projectUpdateContent;
}
}
else if(action == "Deletion")
{
projectDeleteContent = projectDeleteContent.replaceAll("[user]",user.get("name"),true);
messageContent = projectDeleteContent.replaceAll("[projectName]",projectName,true);
}
}
info "message:" + messageContent;
chat = zoho.cliq.postToChannel("channel name",messageContent,"yyyyyyyyy");
info chat;
return "success";

Make sure to replace xxxxxxxxx with Zoho Projects connection name and yyyyyyyyy with Zoho Cliq connection name in the above code. Also, update "channel name" with the Zoho Cliq channel name. Screenshot of the list of parameters to be mapped is attached for reference.

With the custom function code provided above, allowed our customer to efficiently utilize Project custom functions within Zoho Projects. This facilitated the monitoring of project creation in the Zoho Cliq channel, ultimately boosting their business productivity.

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.

      • Sticky Posts

      • Auto-update the Successor Task Status.

        Hello folks! We have come up with a new use case for custom function to help you automate the workflow of your tasks. Users can write their own Custom Functions using deluge and call them from a workflow. Consider a scenario where the status of the successor
      • Collaborate Visually with Whiteboard in Zoho Projects

        Whiteboard in Zoho Projects allows you to collaborate visually by creating diagrams, annotating designs, and sketching project workflows using shapes, text, and images within project modules. Team members can work simultaneously, improving productivity
      • Introducing Projects 8.0 - Focusing on Ease-of-Use and New Features

        Hello everyone! It's time for the reveal of the 8th version of Zoho Projects! This year our focus has been on minimizing the learning curve and improving the ease-of-use of the tool, so anyone new to Projects can hit the ground running and existing users
      • Manage Documents with SharePoint Extension in Zoho Projects

        SharePoint is a digital platform to store and manage your documents. Multiple users can work on the same document simultaneously, which enhances your team's productivity. By installing the extension in Zoho Projects, users can access the documents seamlessly
      • Work agile in Zoho Projects! The much-awaited Zoho Sprints integration is in the making.

        Let your teams work in both classic and agile methodology using our integration with Zoho Sprints. We made sure you get the best of both worlds with this integration. You can scale through teams irrespective of what methodology they use and make sure they work with speed and flexibility. And, you can do it all from one place- Zoho Projects.  Why this integration is a benefit?  This integration mostly helps in managing classic and agile practices together. Most organizations use a mix of both classic