Extension Pointers for Integrating Zoho CRM with Zoho services #2: Handle and manage your Zoho CRM cases efficiently by integrating Zoho Projects and associating cases with tasks

Extension Pointers for Integrating Zoho CRM with Zoho services #2: Handle and manage your Zoho CRM cases efficiently by integrating Zoho Projects and associating cases with tasks

Integrating customer relationship management and project management contributes to the development of an overall effective business management strategy. 

You can integrate Zoho CRM and Zoho Projects through extensions to achieve your desired functionalities and manage your business from a single location. The previous post in the 'Integrating Zoho CRM with Zoho services' series described how to register your Zoho application and retrieve the client credential in order to connect Zoho CRM to the Zoho service of your choice through an extension. In this post, we'll look at how to integrate Zoho CRM with Zoho Projects, along with an example.

Let's consider a scenario in which support representatives handling cases in Zoho CRM need to forward cases that are registered as feature requests to the development team for further consideration and analysis. The representatives can create a task in Zoho projects with the necessary details from the Zoho CRM Cases module by clicking a button from within Zoho CRM. This will make the transition process easier and help to handle cases more efficiently. Now, let's see how this can be achieved using extension.

Creating a connector for Zoho Projects and adding connector APIs
  • Create a new connector in your extension for Zoho Projects using the Connectors feature under Utilities in the left panel of the Zoho Developer console. 
Note: Zoho Projects follows OAuth2.0 protocol for authentication mechanism. You can refer to this post to understand the steps to register Zoho Projects and retrieve your client credentials.


The connector details for our example are:

Request Token URL
https://accounts.zoho.com/oauth/v2/auth?scope=ZohoProjects.portals.READ,ZohoProjects.users.READ,ZohoProjects.tasks.CREATE,ZohoProjects.projects.READ,ZohoProjects.tasks.READ&access_type=offline
Access Token URL
https://accounts.zoho.com/oauth/v2/token?
Refresh Token URL
https://accounts.zoho.com/oauth/v2/token?
Scopes
ZohoProjects.portals.READ,ZohoProjects.users.READ,ZohoProjects.tasks.CREATE,ZohoProjects.projects.READ,ZohoProjects.tasks.READ


The Zoho Projects REST APIs added for our example are mentioned below.

Connector API Name
Method type
URL
Get Portals
GET
https://projectsapi.zoho.com/restapi/portals/
Get Project Users
GET
https://projectsapi.zoho.com/restapi/portal/${portalid}/projects/${projectid}/users/
Create task
POST
https://projectsapi.zoho.com/restapi/portal/${portalid}/projects/${projectid}/tasks/?name=${name}&description=${description}&priority=${priority}&person_responsible=${person_responsible}
Add comment for task
POST
https://projectsapi.zoho.com/restapi/portal/${portalid}/projects/${projectid}/tasks/${taskid}/comments/?content=${content}

Note: You can refer to this post to understand the detailed steps involved in creating a connector, adding the connector APIs, and associating it with the extension.

Creating a button in Cases module and associating the custom function to it
  • Create a button called "Create Task for Case" using the Links & Buttons feature available in the Componentssection of the Zoho Developer console, then associate a custom function to perform the desired action. 
Create Task for Case - Button function code

//Fetching the current record details and retrieving the necessary field information
response = zoho.crm.getRecordById("Cases",case.get("Cases.ID").toLong());
Name = response.get("Subject");
Name = zoho.encryption.urlEncode(Name);
Description = response.get("Description");
Description = zoho.encryption.urlEncode(Description);
Priority = response.get("Priority");
Comments = response.get("Internal_Comments");
Comments = zoho.encryption.urlEncode(Comments);
dynamic_map = Map();
/*Fetching the values for Portal ID and Project ID CRM variables which are obtained as part of the settings widget*/
portalid = zoho.crm.getOrgVariable("xxx__Portal_Id");//The api name of the CRM variable for Portal_Id
projectid = zoho.crm.getOrgVariable("xxx__Project_Id");//The api name of the CRM variable for Project_Id
dynamic_map.put("portalid",portalid);
dynamic_map.put("projectid",projectid);
//Invoking the connector API to retrieve the users present in the project 
resp1 = zoho.crm.invokeConnector("xxx.zohoprojects.getprojectusers",dynamic_map);
response1 = resp1.get("response");
users = response1.get("users");
rolelist = List();
/*retrieving the ID of the user with admin role in the project to be assigned as the person responsible for the task*/
for each value in users
{
if(value.get("role") == "admin")
{
id = value.get("zpuid");
}
}
dynamic_map = Map();
portalid = zoho.crm.getOrgVariable("xxx__Portal_Id");
projectid = zoho.crm.getOrgVariable("xxx__Project_Id");
dynamic_map.put("portalid",portalid);
dynamic_map.put("projectid",projectid);
dynamic_map.put("name",Name);
dynamic_map.put("description",Description);
dynamic_map.put("priority",Priority);
dynamic_map.put("person_responsible",id);
/*Invoking the connector API with the necessary parameters passed to create a project task */
resp = zoho.crm.invokeConnector("xxx.zohoprojects.createtask",dynamic_map);
response2 = resp.get("response");
tasks = response2.get("tasks");
//Retrieving the task id from the response of create task API
for each ids in tasks
{
id1 = ids.get("id");
}
dynamic_map = Map();
portalid = zoho.crm.getOrgVariable("xxx__Portal_Id");
projectid = zoho.crm.getOrgVariable("xxx__Project_Id");
dynamic_map.put("portalid",portalid);
dynamic_map.put("projectid",projectid);
dynamic_map.put("taskid",id1);
dynamic_map.put("content",Comments);
//Invoking the connector API to add a comment to the task 
response3= zoho.crm.invokeConnector("xxx.zohoprojects.addcommentfortask",dynamic_map);
caseinfo = {"Solution":url};
response4 = zoho.crm.updateRecord("Cases",case.get("Cases.ID").toLong(),caseinfo);
return resp;

Note: In our example, the project's administrator is assigned as the person responsible for the task that is to be created in Zoho Projects. We have considered that there is only one admin for a project, who can then assign the task to the appropriate developer.

Obtaining Portal ID and Project ID

According to our example, cases from Zoho CRM need to be associated as a task to a particular project in Zoho Projects. You can find in the above code that the variables Portal ID and Project ID (dynamic variables used in connector APIs) are used while invoking APIs. The values of these variables are specific to a user and thus these values can be obtained from the user during extension installation and stored in CRM variables to be easily retrieved when required.

The variables Portal ID and Project ID are created as CRM variables with the Variable Status as Hidden in the extension.Their values are obtained as follows:



Creating a Settings Widget: We have created a settings widget in our extension in order to retrieve the user-specific portal ID and project ID, and to set the values to the CRM variables.

Settings Widget js code snippet

Util={};
var portalidvalue;
var projectidvalue;
//Subscribe to the EmbeddedApp onPageLoad event before initializing the widget 
ZOHO.embeddedApp.on("PageLoad",function(data)
{
var data = {
}
//Invoking the connector API to get portals of the user and populate them in a select list
ZOHO.CRM.CONNECTOR.invokeAPI("testextensioncrm.zohoprojects.getportals",data)
.then(function(dataa){
response = dataa.response;
responsejson=JSON.parse(response);
portal=responsejson.portals;

for (i = 0; i < portal.length; i++) 
{
portalid=portal[i].id_string;
portalname=portal[i].name;
var portallist = document.getElementById("portallist");
var option = document.createElement("OPTION");
option.innerHTML = portalname;
option.value = portalid;
portallist.appendChild(option);
}
})

/*Fetching the projects associated to the portal selected on click of the "Get Projects" button*/
Util.getproject=function()
{
portalidvalue=document.getElementById("portallist").value;

var data = {

"portalid" : portalidvalue
}
/*Invoking the connector API to get projects of the user with respect to the portal chosen and populate them in a select list*/
ZOHO.CRM.CONNECTOR.invokeAPI("testextensioncrm.zohoprojects.getprojects",data)
.then(function(dataa){
response = dataa.response;
responsejson=JSON.parse(response);
project=responsejson.projects;
$('#projectlist').empty();
for (j = 0; j < project.length; j++) 
{
projectid=project[j].id_string;
projectname=project[j].name;
var projectlist = document.getElementById("projectlist");
var option = document.createElement("OPTION");
option.innerHTML = projectname;
option.value = projectid;
projectlist.appendChild(option);
}
})
}
/*Updating the values of the portal ID and project ID selected in the select list to the CRM variables*/
Util.getvalues=function()
{
portalidvalue=document.getElementById("portallist").value;
projectidvalue=document.getElementById("projectlist").value;
var variableMap = { "apiname": "testextensioncrm__Portal_Id", "value": portalidvalue};
ZOHO.CRM.CONNECTOR.invokeAPI("crm.set", variableMap);
var variableMap = { "apiname": "testextensioncrm__Project_Id", "value": projectidvalue};
ZOHO.CRM.CONNECTOR.invokeAPI("crm.set", variableMap);
});
});
}
})

Now that the functionality is defined, the extension is published and installed in Zoho CRM account using the private installation URL.


Sample output:

Upon installation of the extension, click the Settings button to go the Settings Widget page, then choose your portal and project where you want the task to be created.



Choose the portal of your choice, then click the Get Projects button to fetch the projects associated with that portal.



Next, click Update Values to set the chosen portal and project ID values to the CRM variables Portal_ID and Project_ID,respectively.



Go to the Cases module. A case of type feature request is present in Cases module.



Click the Create Task for Case button available in the view page of the case detail page.



The necessary details as per the code logic are fetched and created as a task in projects.



The detailed task details page with all the information fetched from the case in Zoho CRM Cases module.



Using this method, you can integrate Zoho CRM and Zoho Projects via an extension and perform functionalities as per your business requirements. We hope you find this information useful. Keep following this space for more inputs!


SEE ALSO



    Access your files securely from anywhere

        All-in-one knowledge management and training platform for your employees and customers.







                              Zoho Developer Community




                                                    • Desk Community Learning Series


                                                    • Digest


                                                    • Functions


                                                    • Meetups


                                                    • Kbase


                                                    • Resources


                                                    • Glossary


                                                    • Desk Marketplace


                                                    • MVP Corner


                                                    • Word of the Day


                                                    • Ask the Experts



                                                              • Sticky Posts

                                                              • Kaizen #198: Using Client Script for Custom Validation in Blueprint

                                                                Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
                                                              • Kaizen #226: Using ZRC in Client Script

                                                                Hello everyone! Welcome to another week of Kaizen. In today's post, lets see what is ZRC (Zoho Request Client) and how we can use ZRC methods in Client Script to get inputs from a Salesperson and update the Lead status with a single button click. In this
                                                              • Kaizen #222 - Client Script Support for Notes Related List

                                                                Hello everyone! Welcome to another week of Kaizen. The final Kaizen post of the year 2025 is here! With the new Client Script support for the Notes Related List, you can validate, enrich, and manage notes across modules. In this post, we’ll explore how
                                                              • Kaizen #217 - Actions APIs : Tasks

                                                                Welcome to another week of Kaizen! In last week's post we discussed Email Notifications APIs which act as the link between your Workflow automations and you. We have discussed how Zylker Cloud Services uses Email Notifications API in their custom dashboard.
                                                              • Kaizen #216 - Actions APIs : Email Notifications

                                                                Welcome to another week of Kaizen! For the last three weeks, we have been discussing Zylker's workflows. We successfully updated a dormant workflow, built a new one from the ground up and more. But our work is not finished—these automated processes are


                                                              Manage your brands on social media



                                                                    Zoho TeamInbox Resources



                                                                        Zoho CRM Plus Resources

                                                                          Zoho Books Resources


                                                                            Zoho Subscriptions Resources

                                                                              Zoho Projects Resources


                                                                                Zoho Sprints Resources


                                                                                  Qntrl Resources


                                                                                    Zoho Creator Resources



                                                                                        Zoho CRM Resources

                                                                                        • CRM Community Learning Series

                                                                                          CRM Community Learning Series


                                                                                        • Kaizen

                                                                                          Kaizen

                                                                                        • Functions

                                                                                          Functions

                                                                                        • Meetups

                                                                                          Meetups

                                                                                        • Kbase

                                                                                          Kbase

                                                                                        • Resources

                                                                                          Resources

                                                                                        • Digest

                                                                                          Digest

                                                                                        • CRM Marketplace

                                                                                          CRM Marketplace

                                                                                        • MVP Corner

                                                                                          MVP Corner









                                                                                            Design. Discuss. Deliver.

                                                                                            Create visually engaging stories with Zoho Show.

                                                                                            Get Started Now


                                                                                              Zoho Show Resources

                                                                                                Zoho Writer

                                                                                                Get Started. Write Away!

                                                                                                Writer is a powerful online word processor, designed for collaborative work.

                                                                                                  Zoho CRM コンテンツ




                                                                                                    Nederlandse Hulpbronnen


                                                                                                        ご検討中の方




                                                                                                                • Recent Topics

                                                                                                                • How to add interviews through API

                                                                                                                  I'm trying to add an interview without much luck. The documentation gives examples of adding just about everything except an interview. However, the issue might be the way I'm formatting it, because the documentation is unclear to me. It seems as if the xml should be passed in the url, which seems unusual. I've tried the data as both plain and character escaped, but nothing seems to work, nor do I even get an error response. https://recruit.zoho.com/recruit/private/xml/Interviews/addRecords?authtoken=***&scope=recruitapi&version=2&xmlData=<Interviews> <row
                                                                                                                • Connection to other user

                                                                                                                  Zoho Cliq handles sharing of Custom OAuth Connections that require individual user logins.
                                                                                                                • How to invite friends on other social media platforms to one of my group chats in arattai?

                                                                                                                  Hello, I have formed chat groups in arattai. I want to invite my friends on other social media platforms like WhatsApp/ FB to one of my groups. Different friends would be invited to different groups. How to share an invite link of one of my groups to
                                                                                                                • Cliq does not sync messages after Sleep on Mac

                                                                                                                  I'm using the mac app of Cliq. When I open my mac after it was in sleep mode, Cliq does not sync the messages that I received. I always have to reload using cmd + R, which is not what I want when using a chat application.
                                                                                                                • Set expiration date on document and send reminder

                                                                                                                  We have many company documents( for example business registration), work VISA documents. It will be nice if we can set a expiry date and set reminders ( for example 90 days, 60 days, 30 days etc.,) Does Zoho workdrive provide that option?
                                                                                                                • Analytics : How to share to an external client ?

                                                                                                                  We have a use case where a client wants a portal so that several of his users can view dashboards that we have created for them in Zoho Analytics. They are not part of our company or Zoho One account. The clients want the ability to have user specific,
                                                                                                                • Payroll and BAS ( Australian tax report format )

                                                                                                                  Hello , I am evaluating Zoho Books and I find the interface very intuitive and straight forward. My company is currently using Quickbooks Premier the Australian version. Before we can consider moving the service we would need to have the following addressed : 1.Payroll 2.BAS ( business activity statement ) for tax purposes 3.Some form of local backup and possible export of data to a widely accepted format. Regards Codrin Mitin
                                                                                                                • Zoho Desk API - Send Reply to CUSTOMERPORTAL

                                                                                                                  Hello! I'll try to send a reply to Customer Portal, But the response is 500 (INTERNAL_SERVER_ERROR in service response). {"Error":"{\"errorCode\":\"INTERNAL_SERVER_ERROR\",\"message\":\"An internal server error occurred while performing this operation.\"}"}
                                                                                                                • Python - code studio

                                                                                                                  Hi, I see the code studio is "coming soon". We have some files that will require some more complex transformation, is this feature far off? It appears to have been released in Zoho Analytics already
                                                                                                                • Issue with open-rate reporting in Zoho Campaigns

                                                                                                                  Hello, Since yesterday I’ve been experiencing an issue with the open-rate reports in Zoho Campaigns. The campaigns I send appear in the reports as if none of the emails have been opened, even though I know they have. To verify this, I replicated the campaign
                                                                                                                • Best practices for managing Project Charters, Business Case and RAID logs within Zoho?

                                                                                                                  Hello everyone, I’m currently refining our PMO setup within Zoho Projects and I’m curious how others are handling high-level governance documentation. We’ve been using the standardized Project Charter, Business Case and RAID frameworks from projectmanagertemplate.com
                                                                                                                • Zoho Books Payroll

                                                                                                                  How am I supposed to do payroll and pay my employees with Zoho Books? I think it's pretty strange that an accounting software doesn't have the ability to perform one of the most common functions in business; paying your employees. Am I missing something,
                                                                                                                • Is It Possible to Convert a Custom Module to a Quote?

                                                                                                                  I recently created a custom module in our CRM environment for RFQs so that our sales team can submit quote requests directly in Zoho rather than by email/phone. This allows for a cleaner overall process, minimizing potential errors and potentially encouraging
                                                                                                                • Proposal: Actionable API Error Messages to Reduce Support Ticket Volume

                                                                                                                  I've encountered a long-standing frustration with how Zoho Creator's API communicates errors to developers, and I'm hoping the Zoho team can address this in a future update. This issue has persisted for over 9 years based on community discussions, and
                                                                                                                • Allocating inventory to specific SO's

                                                                                                                  Is there a way that allocate inventory to a specific sales order? For example, let's say we have 90 items in stock. Customer 1 orders 100 items. This allocates all 90 items to their order, and they have a back order for the remaining 10 items which could
                                                                                                                • Cliq iOS can't see shared screen

                                                                                                                  Hello, I had this morning a video call with a colleague. She is using Cliq Desktop MacOS and wanted to share her screen with me. I'm on iPad. I noticed, while she shared her screen, I could only see her video, but not the shared screen... Does Cliq iOS is able to display shared screen, or is it somewhere else to be found ? Regards
                                                                                                                • Closing the Loop: Why Lookup Asymmetry is Harming Data Integrity in Creator

                                                                                                                  TL;DR: Lookup fields allow users to add new related records inline via the "+" icon, but there's no equivalent ability to edit an existing related record without navigating away and losing form context. Adding a native "Edit" icon—with automatic User
                                                                                                                • Add the ability to Hide Pages in Page Rules

                                                                                                                  Hi, We have Field Rules to show and hide fields and we have page Rules, but we can't hide a page in Page Rules so it isn't completed before the previous page (And then have the Deny Rules to prevent submitting without both pages completed), we can only
                                                                                                                • using the Client script on the load of the form if service no is empty means then i want to make issue relate to is Service

                                                                                                                  using the Client script on the load of the form if service no is empty means then i want to make issue relate to field is Service if Purchae no is empty means then i want to make issue relate to is Purchase
                                                                                                                • Changes to the send mail Deluge task in Zoho CRM

                                                                                                                  Hello everyone, At Zoho, we continuously enhance our security measures to ensure a safer experience for all users. As part of our ongoing security enhancements, we're making an important update on using the send mail Deluge task in Zoho CRM. What's changing?
                                                                                                                • Work Order wont mark as Completed

                                                                                                                  I have a couple of work orders that won't mark as completed even when I've marked the Service Appointments as completed fully.
                                                                                                                • Item name special charaters <>

                                                                                                                  Im trying to input speical characters such as < and > into item name and item description but comes up with following error: Invalid value passed for Item Name and Invalid value passed for Item Description How do i allow speical characters?
                                                                                                                • Zoho Analytics Dashboard - How to hide the user filter

                                                                                                                  I am using the same dashboard template across different external clients and applying a user filter to the data by site URL. How can I hide the user filter in View Mode so the external client won't see the list of other clients in the drop-down menu?
                                                                                                                • Customer Parent Account or Sub-Customer Account

                                                                                                                  Some of clients as they have 50 to 300 branches, they required separate account statement with outlet name and number; which means we have to open new account for each branch individually. However, the main issue is that, when they make a payment, they
                                                                                                                • Kaizen #229: Email-Deal Associations in Zoho CRM

                                                                                                                  Hi All, Welcome back to another week of Kaizen! Emails are a core channel for customer communication in any CRM system. In Zoho CRM, emails can be associated with records across multiple modules. In this post, we will focus on email associations with
                                                                                                                • Action Required: Update Microsoft SQL Server Security Settings Before February 2026

                                                                                                                  Dear Users, We recently deployed security updates in Zoho Analytics that inadvertently caused connection failures for a few customers using Microsoft (MS) SQL Server hosted on older Windows versions (Windows Server 2012, 2012 R2, and 2014). To restore
                                                                                                                • Contacts limit in basic vs standard - what counts? Are customers contacts?

                                                                                                                  I’ve been using books for a number years for my small business. I only ever work with 20 clients at any given time. I do purchase services from a number of vendors to run my business, so there are some comtacts there too. I used to use the basic package,
                                                                                                                • Saving issue

                                                                                                                  First problem I opened a MS word file in writer. after the work is done, it does not save instantly, I waited for like 10min and it still did not save. second problem When I save a file, then file gets saved as another copy. I just did save, not save
                                                                                                                • Automating Employee Birthday Notifications in Zoho Cliq

                                                                                                                  Have you ever missed a birthday and felt like the office Grinch? Fear not, the Cliq Developer Platform has got your back! With Zoho Cliq's Schedulers, you can be the office party-cipant who never forgets a single cake, balloon, or awkward rendition of
                                                                                                                • Create Tasklist with Tasklist Template using API v3

                                                                                                                  In the old API, we could mention the parameter 'task_template_id' when creating a tasklist via API to apply a tasklist template: https://www.zoho.com/projects/help/rest-api/tasklists-api.html#create-tasklist In API v3 there does not seem to be a way to
                                                                                                                • Ability to Set a Unified Tab Order/View for All Users in Zoho Projects

                                                                                                                  Hello Zoho Projects Team, We hope you are doing well. We would like to submit a feature request regarding tab/menu organization in Zoho Projects. Current Behavior: The tab (module) order in Zoho Projects is user-specific. Each user (internal or external)
                                                                                                                • Task Order

                                                                                                                  Hello! I've recently switched to Zoho Projects and a long time user of MS Project, Asana and LiquidPlanner (which has recently been purchased) and I'm running into a frustration I'm hoping someone can assist with. It has to do with how tasks are ordered
                                                                                                                • Automating CRM backup storage?

                                                                                                                  Hi there, We've recently set up automatic backups for our Zoho CRM account. We were hoping that the backup functionality would not require any manual work on our end, but it seems that we are always required to download the backups ourselves, store them,
                                                                                                                • 2026 Product Roadmap and Upcoming Features

                                                                                                                  This is your guide to what is coming in Zoho Vertical Studio throughout 2026. We’ll update this post throughout the year as items move from development to release, and as and when new initiatives are added. Once a feature is released, it will be reflected
                                                                                                                • Vendor legal and DBA names for USA users

                                                                                                                  I would like to hear how Zoho Books users are handling DBA names in the vendor profile. If the Company name in the vendor profile has to be the legal name (line 1 of the W-9), whare are you entering the DBA name (the name that checks are made out to)
                                                                                                                • Zoho Books API invoice email bouncing with 'relaying-issues' error

                                                                                                                  I have waited over 30 days for zoho books uk to assist with the following and i have had no replies or tickets erronously closed. The service has been terrible - very unlike zoho! So i am raising this here hoping that a community member can assist: Hello,
                                                                                                                • Stop the Workarounds: We Need Native Multi-Step Forms

                                                                                                                  After over 17 years of community requests, I'm hoping the Zoho team can finally address the lack of native multi-page form support in Zoho Creator. This has been one of the longest-standing feature requests in the community, with threads spanning nearly
                                                                                                                • Product Updates in Zoho Workplace applications | January 2026

                                                                                                                  Hello Workplace Community, Let’s take a look at the new features and enhancements that went live across all Workplace applications for the month of January. Zoho Mail Zoho People Notifications preview in Zoho Mail Notification emails from Zoho People
                                                                                                                • How do i setup default values for few fields

                                                                                                                  We have few fields in CRM like rate of return, type etc - they can be picklist and standard inut fields. picklist we have choice to set default value. but how do we default some value in input type of fields?
                                                                                                                • We know the company but not the contact

                                                                                                                  We are fairly new to Zoho, part of our marketing stack is we use products like lead feeder to identify which companies are visiting our site. We are able to match this data to salesiq but cannot find a way to add a company name to the salesiq visitor
                                                                                                                • Next Page