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





                                                  Use cases

                                                  Make the most of Zoho Desk with the use cases.

                                                   
                                                    

                                                  eBooks

                                                  Download free eBooks and access a range of topics to get deeper insight on successfully using Zoho Desk.

                                                   
                                                    

                                                  Videos

                                                  Watch comprehensive videos on features and other important topics that will help you master Zoho Desk.

                                                   
                                                    

                                                  Webinar

                                                  Sign up for our webinars and learn the Zoho Desk basics, from customization to automation and more

                                                   
                                                    
                                                  • Desk Community Learning Series


                                                  • Meetups


                                                  • Ask the Experts


                                                  • Kbase


                                                  • Resources


                                                  • Glossary


                                                  • Desk Marketplace


                                                  • MVP Corner




                                                            • Sticky Posts

                                                            • Kaizen #197: Frequently Asked Questions on GraphQL APIs

                                                              🎊 Nearing 200th Kaizen Post – We want to hear from you! 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 #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.
                                                            • Celebrating 200 posts of Kaizen! Share your ideas for the milestone post

                                                              Hello Developers, We launched the Kaizen series in 2019 to share helpful content to support your Zoho CRM development journey. Staying true to its spirit—Kaizen Series: Continuous Improvement for Developer Experience—we've shared everything from FAQs
                                                            • Kaizen #193: Creating different fields in Zoho CRM through API

                                                              🎊 Nearing 200th Kaizen Post – We want to hear from you! 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.
                                                            • Client Script | Update - Introducing Commands in Client Script!

                                                              Have you ever wished you could trigger Client Script from contexts other than just the supported pages and events? Have you ever wanted to leverage the advantage of Client Script at your finger tip? Discover the power of Client Script - Commands! Commands


                                                            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 Writer

                                                                                              Get Started. Write Away!

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

                                                                                                Zoho CRM コンテンツ








                                                                                                  Nederlandse Hulpbronnen


                                                                                                      ご検討中の方




                                                                                                            • Recent Topics

                                                                                                            • Revenue Management: #2 How to compute revenue?

                                                                                                              In our previous post, we discussed the revenue recognition standards under IFRS 15 and ASC 606 and the five-step model. Now, let's examine three distinct business scenarios to see how the standards and model work in practice. This will help you understand
                                                                                                            • External lookup in CRM (as in Books)

                                                                                                              Hello Context: We have a CRM module, similar to Deals, but for Purchasing. Once the PO is created, a link to this PO should be updated in that "deal". In Books, you can add a custom 'external' field which can look up into CRM modules. I'm asked to have
                                                                                                            • "Undo Send" Feature

                                                                                                              Would love it if TeamInbox had an "Undo Send" feature, that gives you 10 seconds or so to "undo" the sending of an email. Many other email clients already have this feature, and my clients really miss it, as it has saved them many times in the past when
                                                                                                            • Better Notes Commenting

                                                                                                              Hi, I'd like to suggest better collaboration tools for NOTES. The current notes section for Accounts, Contacts and Deals is not ideally suitable for any degree of communication or collaboration. When responding to a note, there is no ability to leave
                                                                                                            • Zoho Sites

                                                                                                              Does anyone have experience building Zoho sites or know how I can find someone who does?
                                                                                                            • Zoho Crm Lagging

                                                                                                              Hi Zoho Support Team, Starting from today, my Zoho CRM has been extremely slow and laggy when accessing any pages or modules. This is affecting my work and overall productivity. Could you please help to check if there are any ongoing issues or if there’s
                                                                                                            • Is there a way to reference/attach mails to deals/contacts when the mails haven't come through their contacts normal email and the mail comes through software / app who use their mail system

                                                                                                              There are often system mails that come through systems or other software which use their email addresses since they use their own mail servers to mail. This causes an issue as it does not record the mail in the history of the CRM since the email is not
                                                                                                            • Recommendation

                                                                                                              I give up on Zoho. It's never going to be an all in one solution, their own apps don't even connect. Can any one recommend an alternative at least for the crm / people.
                                                                                                            • CRM - Site/Location

                                                                                                              Hi Zoho, One massive oversight of the Zoho CRM is the inability to add multiple sites or locations to one account. Many organisations have several (in some cases, hundreds) of sites across the country or even the globe. The workaround to this, of course,
                                                                                                            • An unknown error occurred. Please contact support

                                                                                                              Whenever I visit this page I see this. I changed browser and still the same. Can someone from Zoho help me please?
                                                                                                            • How to Streamline Pick & Ship

                                                                                                              Is there a way to streamline the built-in pick and ship process? I guess mostly on the ship side. Our current process allows us to choose shipping super fast. It's an EasyPost plugin for WooCommerce. You have to populate the boxes / weights / shipping
                                                                                                            • How to add, delete or rename the "payment method" drop down?

                                                                                                              When we recorded payment in invoice, there's a "payment method" drop down with choices like cash, bank transfer... We want to add and delete or rename some new selection. How to do such adjustment? Please advice.
                                                                                                            • Smarter data gathering with Query component in Wizards

                                                                                                              Dear All, Introducing the Query Component in Wizards for CRM! A smart search field that saves you time and effort, and helps you manage and gather data more efficiently than ever before. Long and complex record entries can be overwhelming and prone to
                                                                                                            • Introducing teamspaces and team modules in Zoho CRM mobile app

                                                                                                              Hello everyone, We have an exciting update to share in the Zoho CRM mobile app. As part of CRM For Everyone—a new set of features that reflect our vision to democratize CRM and make it accessible for all—teamspaces and team modules are now available on
                                                                                                            • Client Script - change page and/or section background colours

                                                                                                              Hello, Would anyone be willing to help me with a bit of Client Scripting code? I have had a go myself but only been able to alter the form field styles, not the overall page/section/heading styles. I want to set a different page background colour for
                                                                                                            • Client Script | Update - Introducing Subform Events and Actions

                                                                                                              Are you making the most of your subforms in Zoho CRM? Do you wish you could automate subform interactions and enhance user experience effortlessly? What if you had Client APIs and events specifically designed for subforms? We are thrilled to introduce
                                                                                                            • Zoho SalesIQのチャットボット、ブロックのコピー機能

                                                                                                              Zoho SalesIQのチャットボットの構築でドラッグアンドドロップで作成を行っているます。 内容は同じブロックのコピーペースト機能がないみたいなのですが、同一のブロック、同一の複数のブロックをいくつも作成する場合は、皆様はどのように行われていますか? 例えば添付の4つのブロックをまとめてコピーして、別のフローの先につなげる場合です。 教えていただけますと幸いです。よろしくお願いいたします。
                                                                                                            • Questions About Zoho Commerce Member Portal

                                                                                                              Hello, A couple questions about the Zoho Commerce Member Portal: 1. Can I add only specific pages be added to the Members Portal, and not the entire website? 2. When a customer signs up on my Zoho Commerce site, is there a setting that gives me a chance
                                                                                                            • Cancel and refund

                                                                                                              Hi, Yesterday I paid for the Zoho email subscription. Within a few minutes, I realized that the subscription counts one email ID as one user. To make another email ID for the same domain name, I'd have to pay for another user. I emailed right away to
                                                                                                            • Online Payment Fees

                                                                                                              We don't take many online credit card payments so the merchant service provider (PayPal) charges us the 2.9% fee for processing the amount. I would like the ability for the fee to be automatically added to the total amount for "ease of payment". We'd
                                                                                                            • Error occured. please try again!!!

                                                                                                              I created a new list. Added two new contact's email addresses. I try to EDIT either one of them to add their first name, last name and phone number. Whatever I try to edit and update, I get the error message  Error occured. please try again!!! And it doesn't update any of their info. I tried just editing first and last name. Still get the error. No matter what I try to update, I get the error. I tried creating a new list, and adding just one email address and then edit it and also get the error.
                                                                                                            • "Send email as" not work

                                                                                                              Hi team, I currently use ZOHO MAIL services on the MAKE platform (formerly INTEGROMAT). In MAKE I entered my ZOHO MAIL credentials but the problem is that when the emails are sent from the automation in MAKE, the emails do not come in with the name set
                                                                                                            • *UPDATE: ISSUE RESOLVED, SEE HOW FOR HELP* Issue imbedding Youtube Videos

                                                                                                              **UPDATE: RESOLVED** For anyone that is having a similar issue, try this workaround before attempting to have the Zoho techs fix it. I have been in communication with them for weeks about this and they can't seem to fix the issue. Thinking it may have just been my computer or my browser, I tried two different computers on two different networks, each running different versions of Windows, and tried it on Chrome, Firefox and IE; nothing worked. So, needless to say, it's an issue with Zoho somewhere.
                                                                                                            • Backorder For Composite Items

                                                                                                              Hello If i released SO for composite item and use backorder feature of zoho inventory then it should backorder child item items of composite and not composite item.This is basic of backordering.I conveyed this to zoho call center but no solution yet.
                                                                                                            • Paid Support

                                                                                                              We are in the process of creating tiers for our support offerings. There will be three tiers of support available - 2 paid and 1 free. The paid tiers will be purchased in allotted hours. I need to figure out how to a) work in the out of the box SLA, Contracts
                                                                                                            • Where is the desktop app for Zoho Projects???

                                                                                                              As a project manager, I need a desktop app for the projects I manage. Yes, there's the web app, which is AWESOME for cross browser and platform compatibility... but I need a real desktop app for Projects that allow me to enter offline information where
                                                                                                            • Automatically CC supervisor

                                                                                                              Hello,  in our organization agents are replying to tickets and they are required to CC their supervisor on all emails to and from customers.  is there a way to have an email address automatically populate in the CC field when reply to a ticket?  tha
                                                                                                            • Zoho One - White Label

                                                                                                              Releasing a white-label feature for Zoho One, or any software or service, can offer several advantages and benefits for both the company providing the software (Zoho in this case) and its users. Here are some key reasons for releasing a white-label feature
                                                                                                            • Are this Features included in the Road Map

                                                                                                              1. Sync between description/short description in Zoho Books/Inventory and Zoho Commerce: I am unsure how it works now. I belive the description is not pulled. 2. Pick Up: This feature is great. It is added on Zoho Commerce but not on Books/Inventory which
                                                                                                            • Reconciliation - Show Transactions After End Date

                                                                                                              I did a quick search, and I've only seen this brought up indirectly. In the reconciliation interface, transactions dated up to a week after the end date should be available for being reconciled. The use case is pretty simple... many times, transactions
                                                                                                            • Auto populate email field in zoho form

                                                                                                              Hi,  Is there a way the email field in zoho forms can be auto populated based on the name selected from a drop down list?
                                                                                                            • Option to accept and pay for estimate from Public Estimate link?

                                                                                                              Is there any way that our customers can get the Estimate in their email, click on "View Estimate" and from the public link, click Accept and Pay? When they click that, in the background Zoho would create the invoice record in the so that the payment would
                                                                                                            • Kaizen #125 Manipulating Multi-Select Lookup fields (MxN) using Zoho CRM APIs

                                                                                                              Hello everyone! Welcome back to another week of Kaizen. In last week's post in the Kaizen series, we discussed how subforms work in Zoho CRM and how to manipulate subform data using Zoho CRM APIs. In this post, we will discuss how to manipulate a multi-select
                                                                                                            • Easily track referrals with Zoho Forms

                                                                                                              Referral tracking can be a powerful way for businesses to understand where their leads are coming from. With Zoho Forms, tracking the referral sources of your leads is an easy and straightforward process. Here are some tips to help you make the most of
                                                                                                            • Add an email to an existing ticket is not working

                                                                                                              I noticed that in Zoho Desk the funcionality to add an email to an existing ticket is not working using the syntax [##12345##], has the method changed? In red is the syntax we use to add email to an existing ticket As you can see, he did not add the email
                                                                                                            • New CRM to Campaigns Sync Doesn't Continue Making Updates

                                                                                                              Changes made in CRM are not appearing in mapped fields in matching Campaign records after migrating to the new sync process. The only way we've found to get records to update is to call into Support and point out the problem. After convincing Support
                                                                                                            • Zoho Integration with UPS

                                                                                                              I have 2 questions: Firstly, is there a way to notify UPS that we have a package to collect once we have done the shipping label? Secondly, how do I get the tracking number and shipment method onto the Invoice and Package Slip for the customer? Than
                                                                                                            • Cannot log in to IMAP account as of last night

                                                                                                              Hey I've been using MFA with an authenticator for a while and have had to use application passwords for Outlook and Edison Mail on my Android devices. Last night the app passwords started to be rejected on my Android devices so I created new ones for
                                                                                                            • Low Stock View

                                                                                                              We use the Low Stock view frequently as a guide to inform us when to reorder items, but the view is misleading because it does not take into account Purchase Orders that have already been raised. Unless you are aware and check item by item, this can lead
                                                                                                            • Improve History Feature in Zoho Inventory

                                                                                                              At present there is a "history" tab on Zoho Inventory Items, however this only shows a date and time stamp along with the users name. It doesn't say what was changed. What is the value of this if you can't see what was changed? My Ideal is to include
                                                                                                            • Next Page