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









                          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 #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
                                                          • Kaizen #152 - Client Script Support for the new Canvas Record Forms

                                                            Hello everyone! Have you ever wanted to trigger actions on click of a canvas button, icon, or text mandatory forms in Create/Edit and Clone Pages? Have you ever wanted to control how elements behave on the new Canvas Record Forms? This can be achieved
                                                          • Kaizen #142: How to Navigate to Another Page in Zoho CRM using Client Script

                                                            Hello everyone! Welcome back to another exciting Kaizen post. In this post, let us see how you can you navigate to different Pages using Client Script. In this Kaizen post, Need to Navigate to different Pages Client Script ZDKs related to navigation A.
                                                          • Kaizen #210 - Answering your Questions | Event Management System using ZDK CLI

                                                            Hello Everyone, Welcome back to yet another post in the Kaizen Series! As you already may know, for the Kaizen #200 milestone, we asked for your feedback and many of you suggested topics for us to discuss. We have been writing on these topics over the


                                                          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

                                                                                                            • Cannot connect mail accounts to Thunderbird

                                                                                                              Hi Support - I'm attempting to add my mail accounts to Thunderbird but I'm getting an unable to login to server error. I tried to use the password associated with my account I received the unable to login error. So I went into Zoho Accounts and generate
                                                                                                            • Alias Email Id already exists

                                                                                                              Hi, I just verified my domain sesque (dot) com and now I am trying to create the admin account using admin (at) sesque (dot) com, but I am getting an error saying "Alias Email Id already exists". I used to have another Zoho account with this email address,
                                                                                                            • Unable to connect to smtp server, connection timed out

                                                                                                              Hi Team, I am facing below issue, while sending out emails from thunderbird client. It used to work, facing this issue from morning. Error: Sending of the message failed. The message could not be sent because the connection to Outgoing server (SMTP) smtp.zoho.com
                                                                                                            • javax.mail.authenticationfailedexception 535 authentication failed

                                                                                                              Hi, I am facing 535 authentication failed error when trying to send email from zoho desktop as well as in webmail. Can you suggest to fix this issue,. Regards, Rekha
                                                                                                            • Issue with Creator's IF logic

                                                                                                              Hi, I found the following code produces unexpected results: if(-1.0 < 0.0000000) {       info "True"; } else {       info "False"; } if(-1.0 < 0.000000) {       info "True"; } else {       info "False"; } The output returned is: False True However, the
                                                                                                            • 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.
                                                                                                            • Client Portal ZOHO ONE

                                                                                                              Dear Zoho one is fantastic option for companies but it seems to me that it is still an aggregation of aps let me explain I have zoho books with client portal so client access their invoice then I have zoho project with client portal so they can access their project but not their invoice without another URL another LOGIN Are you planning in creating a beautiful UI portal for client so we can control access to client in one location to multiple aps at least unify project and invoice aps that would
                                                                                                            • Zoho Creator customer portal users

                                                                                                              Hi, I'm in a Zoho One subscription with our company. I'm running a project now that involves creating a Zoho Creater application and using the Zoho Creator Customer Portal.  At most we need 25 customer portal users. In our Zoho One plan we only get 3
                                                                                                            • DKIM Verification Failed (Namecheap)

                                                                                                              Hi! I have already set up the TXT records in Namecheap but I keep getting the "Verification Failed" pop up. Was wondering if I'm the only one who has this problem and can anyone help me with this? Thanks!
                                                                                                            • Emails stuck in Queue

                                                                                                              Hi there, Since yesterday I have a few out going emails stuck in a queue. It say it will auto retry sending however nothing is happening. It seems to be affecting roughly 50% of my outgoing emails. Please help Thanks
                                                                                                            • Soft Bounce from transational emails from BREVO (Sendinblue)

                                                                                                              I manage the website of a client who uses your EMAIL service for the domain floranativadobrasil.com. And I use the BREVO email service, previously called SendinBlue, to send transactional emails about events specific to the website. All emails sent to
                                                                                                            • Ability to Edit YouTube Video Title, Description & Thumbnail After Publishing

                                                                                                              Hi Zoho Social Team, How are you? We would like to request an enhancement to Zoho Social that enables users to edit YouTube video details after the video has already been published. Your team confirmed that while Zoho Social currently allows editing the
                                                                                                            • Introducing Multi-Asset Support in Work Orders, Estimates, and Service Appointments

                                                                                                              We’re excited to announce a highly requested enhancement in Zoho FSM — you can now associate multiple assets with Work Orders, Estimates, and Service Appointments. This update brings more clarity, flexibility, and control to your field service operations,
                                                                                                            • Getting an error Address not found Your message wasn't delivered

                                                                                                              Hey, I'm trying to configure zoho mail for my website https://businessentity.org/ The email is meredith.karter@businessentity.org I'm able to successfully send the mails but when someone sends an email to above mail, this error shoots up: Address not
                                                                                                            • Support Uploading YouTube Videos Longer Than 60 Minutes

                                                                                                              Hi Zoho Social Team, How are you? We would like to request support for uploading YouTube videos longer than 60 minutes directly through Zoho Social. Your support team informed us that Zoho Social currently cannot upload videos over 60 minutes due to “API
                                                                                                            • Need Faster Help? Try Live Chat Support

                                                                                                              Hello there, We understand that sometimes, whether you’re facing an issue, exploring a feature, or need quick clarification, sending an email and waiting for a response just doesn’t cut it. You need answers, and you need them now. That’s exactly why we
                                                                                                            • Can't deactivate Spell Check

                                                                                                              Hi Community, right now I'm using the Zoho Mail Desktop-Software. So far, so good.. many possibilities. Overall very nice. What is extremely annoying right now, is that we are not able to deactivate the Spell Check feature. And we are barely able to focus
                                                                                                            • Zoho Toolkit Email Signature Generator

                                                                                                              I'm having real issues with the email signature generator with no matter where I host the photo, Zoho doesn't seem to show the photo on the link provided?
                                                                                                            • Company Policy Upload - Request All EE to review and sign

                                                                                                              How can I upload policies into Zoho People and have the employees review them and sign off saying they agree, etc.? Also, if I make a revision to a policy, I would like that changed or updated policy to be distributed or have the employees notified that
                                                                                                            • Zoho Sign Global Settings vs. Template and Document

                                                                                                              Hello, We are running into an issue on a current use case. We already use Zoho Sign. Now that KBA is available, we want to begin using it in our tax delivery process, by allowing clients to sign electronically, but also download a copy of their return
                                                                                                            • Zoho Mail Desktop Crashes on Linux - Ubuntu 24 LTS

                                                                                                              Hi, I have been trying to run the desktop app on Ubuntu for the past few day with no luck. I have tried both the .deb package and the appImage. When I attempt to open the app. It just crashes immediately. The crash error dialog appeared once and I cant
                                                                                                            • Can't login to Zoho mail

                                                                                                              I'm logged into Zoho but when I try to go in zoho mail I get: Invalid request! The input passed is invalid or the URL is invoked without valid parameters. Please check your input and try again. I just set up my mx records and stuff with namecheap a few
                                                                                                            • Zoho IP blocked by SpamCop

                                                                                                              Hi, Many of my emails are blocked and I receive this:  INVALID_ADDRESS, ERROR_CODE :550, ERROR_CODE :spamcop.mimecast.org Blocked - see https://www.spamcop.net/bl.shtml?136.143.188.51. - https://community.mimecast.com/docs/DOC-1369#550 [DGwIYPPSOfWI
                                                                                                            • Can I execute two 'functions' when completing a mail merge from CRM?

                                                                                                              Hi, I have set up a mail merge from CRM Deals to a template. I want a copy of this to be saved in Workdrive, and then a copy also saved back into the deal record from which the merge occurred. I can do both independent of each other, and managed to get
                                                                                                            • Differences between Zoho Books and Zoho Billing

                                                                                                              Without a long drawn out process to compare these. If you were looking at these Books and Billing, what made you opt for one and not the other. Thanks
                                                                                                            • Auto-sync field of lookup value

                                                                                                              This feature has been requested many times in the discussion Field of Lookup Announcement and this post aims to track it separately. At the moment the value of a 'field of lookup' is a snapshot but once the parent lookup field is updated the values diverge.
                                                                                                            • Custom validation in CRM schema

                                                                                                              Validation rules in CRM layouts work nicely, good docs by @Kiran Karthik P https://help.zoho.com/portal/en/kb/crm/customize-crm-account/validation-rules/articles/create-validation-rules I'd prefer validating data input 'closer to the schema'
                                                                                                            • No Ability to Rename Record Template PDFs in SendMail Task

                                                                                                              As highlighted previously in this post, we still have to deal with the limitation of not being able to rename a record template when sent as a PDF using the SendMail Task. This creates unnecessary complexity for what should be a simple operation, and
                                                                                                            • Server error when trying to Data > Sort > Custom Sort

                                                                                                              Been using Data > Sort > Custom Sort for a while, now it has suddenly stopped working. When selecting the same data range and trying to execute, I get "Sorry! There was a problem saving your last edit. Please try again."
                                                                                                            • To Assign a genrated pdf to a file upload field using delug

                                                                                                              content = "<html><body>HTML Content on page One <div style='page-break-after:always'></div> HTML Content on page Two </body></html>"; file = zoho.file.convertToPDF(content); file.setFileName("Name of the file"); <variableName> = <FormLinkName>[ID == input.ID];
                                                                                                            • TArgets To Accounts (Modules)

                                                                                                              How can i set sale target to Customers (Accounts Module)
                                                                                                            • Breaking barriers with multilingual WhatsApp templates in IM

                                                                                                              Ever wondered what it feels like to be greeted in your own language by a brand you love? A “Welcome!” feels nice, but a “¡Bienvenido!” or “स्वागत है!” feels personal. In today’s global world, conversations often need to cross both time zones and cross
                                                                                                            • Super Admin Logging in as another User

                                                                                                              How can a Super Admin login as another user. For example, I have a sales rep that is having issues with their Accounts and I want to view their Zoho Account with out having to do a GTM and sharing screens. Moderation Update (8th Aug 2025): We are working
                                                                                                            • How to share private Opportunities with whole org at an account level

                                                                                                              Opportunities are currently set to private, so our sales team only sees their own opportunities, along with their manager and upper leadership. The need is the ability for the rest of the Org to see the opportunities at an account level, not within the
                                                                                                            • New in Smart Prompt: Record Assistant for contextual assistance, and support for new AI models

                                                                                                              Smart Prompt helps teams stay informed and move faster by providing relevant suggestions where work happens in CRM. With this update, Smart Prompt becomes more adaptable to your organization’s AI preferences. You can now choose which Large Language Model
                                                                                                            • Subform edits don't appear in parent record timeline?

                                                                                                              Is it possible to have subform edits (like add row/delete row) appear in the Timeline for parent records? A user can edit a record, only edit the subform, and it doesn't appear in the timeline. Is there a workaround or way that we can show when a user
                                                                                                            • Problema Verificacion con proveedor NIC.AR

                                                                                                              No puedo realizar la verificación del correo, he seguido los pasos indicados y configurado los MX. Y no puedo verificar el correo. He leido en el foro que otros han tenido el mismo problema. Alguno pudo solucionarlo?
                                                                                                            • How to remove some users in zoho accounts

                                                                                                              How to remove some users in Zoho accounts.
                                                                                                            • Reupload and rename from one field to another field (file upload)

                                                                                                              Hi Everyone, Sorry, i have question to use invoke url for rename and reupload attachments file to another field. Tested on development mode. Zoho C6. Refer to https://www.zoho.com/creator/help/api/v2/upload-file.html look my error notification. Does anyone
                                                                                                            • Unified Inbox for all, including fetched mails

                                                                                                              I fetch mails from different third-parties mailboxes. But I need to switch mailbox too see fetched mails. It's strange. All mailboxes have one shared disk space for own mail and fetched mail, but why do we need to switch mailbox (on the left bottom) to
                                                                                                            • Next Page