Extension pointers for integrating Zoho CRM with Zoho products #5: Manage your Zoho CRM project deals with agile methods by integrating Zoho Sprints

Extension pointers for integrating Zoho CRM with Zoho products #5: Manage your Zoho CRM project deals with agile methods by integrating Zoho Sprints

Sprints play a critical role in agile methodology as they involve breaking work down into smaller, deliverable, and implementable pieces to ensure smooth, frequent, and timely delivery.

Zoho Sprints follows the agile project management process. The diagram below depicts an overview of the general hierarchy used in Zoho Sprints.

As a business user, you can create multiple teams if you run multiple firms. Depending on your firm's work, you can create subdivisions within each team as Projects, and within each project, you can further break work down into smaller items known as work items. These work items can be of various types, such as a story, a bug, or a task. Each work item can be assigned a priority of None, Low, Medium, or High, based on its urgency and importance. You can create work items and store them in your project backlog space, and the team can later move the top priority work items from the backlog to your sprint space based on business delivery needs.

With multiple phases involved in the agile life cycle management process, analysis is a significant part where the requirement is analyzed in order to proceed to the next implementation phase. For the demo example, let's look at how we can push a backlog item into Zoho Sprints in order to analyze the deal work and move it as a sprint work item when it's ready for implementation.

Creating a connector for Zoho Sprints and adding connector APIs:

Create a new connector in your extension for Zoho Sprints using the Connectors feature under Utilities in the left panel of the Zoho Developer console. 

Note: Zoho Sprints follows OAuth 2.0 protocols for authentication. You can see how to register Zoho products and retrieve your client credentials here.



The connector details for our example are:

Request Token URL
https://accounts.zoho.com/oauth/v2/auth?scope=ZohoSprints.teams.READ,ZohoSprints.projects.READ,ZohoSprints.sprints.READ,ZohoSprints.items.READ,ZohoSprints.items.CREATE&access_type=offline
Access Token URL
https://accounts.zoho.com/oauth/v2/token
Refresh Token URL
https://accounts.zoho.com/oauth/v2/token
Scopes
ZohoSprints.teams.READ,ZohoSprints.projects.READ,ZohoSprints.sprints.READ,ZohoSprints.items.READ,ZohoSprints.items.CREATE&access_type=offline

Add the necessary connector APIs for your functionality. Please refer to the Zoho Sprints API guide for details. 



The Zoho Sprints REST APIs we added for our example are:

Connector API Name
Method type
URL
Get Teams
GET
https://sprintsapi.zoho.com/zsapi/teams/
Get Projects
GET
https://sprintsapi.zoho.com/zsapi/team/${teamid}/projects/?action=allprojects&index=1&range=10
Get Project Backlog
GET
https://sprintsapi.zoho.com/zsapi/team/${teamid}/projects/${projectid}/?action=getbacklog
Get item types
GET
https://sprintsapi.zoho.com/zsapi/team/${teamid}/projects/${projectid}/itemtype/?action=alldata
Get Project priority types
GET
https://sprintsapi.zoho.com/zsapi/team/${teamid}/projects/${projectid}/priority/
Create item
POST
https://sprintsapi.zoho.com/zsapi/team/${teamid}/projects/${projectid}/sprints/${backlogid}/item/?name=${dealname}&projitemtypeid=${itemtype}&projpriorityid=${priorityid}&description=${dealdesc}

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

Obtaining the IDs required to invoke the CREATE ITEM API through a settings widget

In our example, a backlog item is created in Zoho Sprints inside a particular team's project backlog space. For the item to be created in the right location, it is necessary to pass the
required parameters (team ID, project ID, backlog ID, deal name, item type ID, project priority ID) to the respective API.

Here the "deal name" parameter is obtained by getting the record details of that particular deal using the getRecordById API.

Since the other required parameters are user specific, these values can be obtained from the user during extension installation and stored in CRM variables to be easily retrieved when required. Thus the variables 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 IDs and to set the values to the CRM variables.

Settings widget js code snippet - Please find the attachment for the js code snippet

Creating a workflow in the Deals module and associating a custom function to it:

Consider the following scenario: When a deal is moved to the Needs Analysis phase, a workflow is triggered that pushes the deal-related data as a backlog item into a specific team's project backlog space in Zoho Sprints. To accomplish this, let's create a workflow rule called Create work item using the Workflow feature under the Automate section of the Zoho Developer console, and then associate a custom function called Createitem to perform the desired action.

Createitem - custom function code

/*Fetching the description of the deal to be passed as the backlog item name while invoking the CREATE ITEM connector API */
response = zoho.crm.getRecordById("Deals",deal.get("Deals.ID").toLong());
Name = response.get("Deal_Name");
Name = zoho.encryption.urlEncode(Name);
Description = response.get("Description");
Description = zoho.encryption.urlEncode(Description);
dynamic_map = Map();
//Fetching the parameters required for the invoking the CREATE ITEM connector API 
teamid = zoho.crm.getOrgVariable("testing70__Team");
projectid = zoho.crm.getOrgVariable("testing70__Project");
backlogid = zoho.crm.getOrgVariable("testing70__Backlog_Id");
itemtype = zoho.crm.getOrgVariable("testing70__Item_type");
priorityid = zoho.crm.getOrgVariable("testing70__Priority_Id");
//Mapping the parameters
dynamic_map.put("teamid",teamid);
dynamic_map.put("projectid",projectid);
dynamic_map.put("backlogid",backlogid);
dynamic_map.put("dealdesc",Description);
dynamic_map.put("dealname",Name);
dynamic_map.put("itemtype",itemtype);
dynamic_map.put("priorityid",priorityid);
/*Invoking the CREATE ITEM connector API to create a backlog item inside the respective team's project's backlog*/
resp = zoho.crm.invokeConnector("xxx.zohosprints.createitem",dynamic_map);
info resp;

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



Once the extension is installed in CRM, the user can select their user-specific details through the settings widget and click the Update Values button to update those values to the CRM variables.

                                          

Now, the workflow will be automatically triggered when a deal stage is moved to the "Needs Analysis" phase.



A backlog item is created in the respective team's project backlog space inside Zoho Sprints as per the user specific values provided.



In this example, we have integrated Zoho CRM with Zoho Sprints to achieve an integrated functionality between two products. In a similar way, you can integrate Zoho CRM with other Zoho products to enable smooth functioning and efficient workflows.

We hope this guide to integrating your Zoho CRM account with Zoho Sprints was helpful. Keep following this space for more extension pointers.


SEE ALSO


    Zoho Marketing Automation

              Zoho Pagesense Resources

                Zoho SalesIQ Resources



                      Zoho TeamInbox Resources

                        Zoho DataPrep Resources



                          Zoho CRM Plus Resources

                            Zoho Books Resources


                              Zoho Subscriptions Resources

                                Zoho Desk Resources

                                  Zoho Projects Resources


                                    Zoho Sprints Resources


                                      Qntrl Resources


                                        Zoho Creator Resources


                                          Zoho WorkDrive Resources




                                              Zoho Campaigns Resources

                                                Zoho CRM Resources

                                                        Design. Discuss. Deliver.

                                                        Create visually engaging stories with Zoho Show.

                                                        Get Started Now