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.
Zoho Desk Resources
-
Desk Community Learning Series
-
-
-
-
-
-
-
-
-
Sticky Posts
Tip 37: Time Log Restriction in Zoho Projects
Timesheet in Zoho Projects helps you big time in entering log hours for the tasks and issues and approving them. Now, with the new Time Log Restriction option, you can set daily and weekly log hour limits. You can restrict users from entering extra log hours than the permissible limit. The limits are restricted to 24 hours per day and 168 hours per week by default based on business hours. To customize, navigate to Task & Timesheet settings under Portal Configuration in Zoho Projects setup and enable
Rename Task Module To Suit Your Project
Task Module in Zoho Projects gives a comprehensive view of all the action items, known as Tasks, across all projects. However, different industries may use alternative terminology for similar processes, which might not always be recognised when labelled
Project Billing with the Staff Hours Method in Zoho Projects
The Staff Hours Billing Method in Zoho Projects allows you to bill your clients based on the actual time spent by each team member on a project, at the rate set for each user. This is useful for projects where different skill sets are needed and service
Achieve Full Financial Control by Tracking Both Cost Budget and Budgeted Hours
Zoho Projects now supports tracking budget with both Cost Budget and Budgeted Hours simultaneously across all modules (Based on Project, Phase, Task, or User). Why Track Both? Tracking both cost budget and budgeted hours provides a more holistic view
🎉 Celebrate Zoho Projects’ 18th Birthday with Us! 🎉
Hello Zoho Projects Community, We’re thrilled to announce that Zoho Projects is turning 18 today! To mark this milestone, we’re hosting a special AMA (Ask Me Anything) event starting at 3 PM IST today and running until 3 PM IST tomorrow. This is your
Zoho CRM Plus Resources
Zoho Books Resources
Zoho Subscriptions Resources
Zoho Projects Resources
Zoho Sprints Resources
Zoho Orchestly Resources
Zoho Creator Resources
Zoho WorkDrive Resources
Zoho Campaigns Resources
Zoho CRM Resources
Writer Get Started. Write Away!
Writer is a powerful online word processor, designed for collaborative work.