Title: Store, retrieve, and access entity-specific data in widgets using | Community | Zoho Projects

Title: Store, retrieve, and access entity-specific data in widgets using | Community | Zoho Projects

Data storage - Overview

Storing data related to the extension you are working on is essential. It can be saved as key-value pairs for an entity or extension, known as entity and extension properties, respectively. Data can be saved for the following entities using entity properties: projects, tasks, issues, and milestones. Similarly, using extension properties, data can be recorded for an app and stored for the extension.

Support and Limitations

The entity properties allow you to store, retrieve, update, and delete data for an entity, while the extension properties allow you to do the same with an extension. Learn more about data storage functions that can be performed using entity and extension properties.

The data stored for an entity using entity property will be retained if the extension is uninstalled. However, when an extension is uninstalled, any data stored using the extension property is lost. You can refer to the limitations of entity properties and limitations of extension properties for additional details.

Scenario

A manufacturing firm uses Zoho CRM to manage its production and sales units, and also uses Zoho Projects for task management. Customers of the firm may raise cases of the"feature request" type to the solution experts for an enhancement or a request for a new feature for the existing products. The solution expert logs these requests as cases in Zoho CRM and begins working on the feature request through a task in Zoho Projects. In this way, the Zoho CRM solution expert who is the task owner in Zoho Projects can handle and manage the development-related activities to provide the feature as a solution to the customer through the Zoho Projects task.

Additionally, multiple customers may request the same feature for a product. In this scenario, it would be easier for the task owner or solution expert to keep track of all their CRM cases related to a feature request in one space, so that whenever a requested feature is completed, this can be communicated with customers of these tracked cases.

What can be done to ease the solution expert/task owner work?

The task owner would benefit from viewing a list of all their open Zoho CRM cases from inside the Zoho Projects task tab. This would allow them to view and associate the cases related to the feature request they are working on from within the task.
Once they have completed the feature enhancement and come up with a solution for the request, they can simply preview all of the Zoho CRM cases related to that feature request from within the task itself and offer an update to the customers.

Goal: Ease user experience by allowing them to view and associate Zoho CRM cases within the task details tab.

Solution

To accomplish this goal, we are going to use data storage along with a few other features in our extension.
  • First, allow the task owner to view case-specific details from the list of CRM cases. For this, we can create a task details tab widget named "CRM Cases". In this widget, we can include a drop-down menu and select a case to access case-specific details. This can be accomplished using the widgets approach explained earlier in this post.
  • Using the data storage concept, store the associated case for the task entity, allowing the task owner to view it as "Associated CRM Cases" alongside the drop-down selection the next time the widget loads. This enables the task owner to associate several cases with the task and view them all in a single widget.                                                              

Required components
  • A connection between Zoho Projects and Zoho CRM needs to be established to establish a secure integration between the products.
  • An extension configuration process includes:
  1. Creating an extension.
  2. Configuring the plugin manifest.
  3. Setting up the widget code.
  • Display all open Zoho CRM cases of the task owner as a drop-down list in a task details widget tab called "CRM Cases", and thereby allow the task owner to choose a case for which they want to view further details.
  • Implement the modal box feature to display case-specific details of the chosen case and also allow the task owner to associate the case to the task through a button in the modal box
  • Store the associated case for the task using the data storage concept (entity.store) in the modal box.
  • Display the associated cases by retrieving (entity.retrieve) it from the stored data and having them displayed as part of the widget along with the drop-down that displays the open cases.
Let's explore these components now.

Connection

We have created a connection to establish a secure integration between Zoho Projects and Zoho CRM. You can refer to this post for detailed guidance on establishing a connection.
                                                                  
                                     

Extension configuration

Extension creation: We have created a new extension for Zoho Projects. Learn more about the steps to create an extension

                                      

Plugin-manifest.json configuration: Once the extension was created, we configured the plugin-manifest.json file to include the created connection and a widget. For detailed understanding on configuring the plugin-manifest.json file, refer to our earlier post.
For our extension use case, the plugin-manifest.json file is configured as shown in the below screenshot.
                                     
                                                                  
Setting up the widget code

Now that we've set up the other components, let's move on to writing our widget code and incorporating the data storage and modal box feature.
Displaying CRM cases in "CRM Cases" task tabPlease find the index.html code snippet attached in the post.
  • In the code snippet, the current Zoho Projects user's email is retrieved using the current_user instance of zohoprojects.get JS SDK method and saved in a variable called "currentuseremail".
  • The user's CRM org ID and their CRM cases are then fetched by invoking the Get Organization Details and Get Records APIs, respectively, using the Zoho Projects request JS SDK method. Certain mandatory parameters must be passed to the SDK method to invoke the mentioned CRM APIs, such as the third-party URL, data object, and connection. If you require further details on how the Zoho Projects Request method works, you can refer to our earlier post, which explains the working and the required parameters for invoking this method in detail.
  • From the Zoho CRM get records API response, a drop-down list is generated in the widget, with the Zoho Projects task owner's open CRM cases.
  • The end-user can select a value from the drop-down list to view the case-related details. This selected value (the selected case) is then fetched. When the Get Case Details button is clicked, a modal box instance is created and opened using the modal.create and instance methods. When the modal box opens, the selected case ID value is emitted using the emit method and the keyword "stored-files".
  • Using the emitted values, the case details is populated in a modal box, and if the solution expert finds that the case is related to the feature request handled in the Projects task, the case ID is saved using the entity.store method and associated with the current task. (This is addressed in the casedetails.html code in the next section).
  • The associated value stored in the modal box using the entity.store method is then retrieved in the index.html page using the entity.retrieve method. Using the retrieved associated case ID, when the widget loads, the Zoho CRM Get Records API is invoked again. From the response, the unclosed cases and the cases which have the email ID as that of the current Zoho Projects user's email address (fetched earlier and saved in variable currentuseremail) are filtered and displayed as the "Associated CRM cases" in the widget.

Modal box to display the details of the chosen case - Please check casedetails.html code snippet attached in this post
  • In the code snippet, the value emitted from the index.html, using the emit method for the keyword "stored-files" is received by the on method in the modal box UI. Using the received value, a hit is made to the Zoho CRM Get Records APIs using the Zoho Projects Request Method again.
  • The essential details are retrieved from the case-specific details returned by the Zoho CRM Get Records API and displayed to the task owner for reference. These details allow them to check on the case and associate it with the current Zoho Projects task if it is related to the feature request.
  • If the case is associated, the associated case value ID is saved with the entity.store property.
  • This stored and associated value is then received and retrieved using the entity.retrieve in index.html, from which the Associated CRM cases value are populated in the widget as mentioned earlier. This is addressed in the index.html code in the previous section.
Now that we have completed the setup and have all the extension components ready, let's go ahead and see the output.

Sample output: 

                                     

In this example, we used the data storage for an entity feature to save task-related data and retrieve it when needed. Similarly, we can store data for an app to perform various storage functions such as save, retrieve, update, and delete. We hope you found this information useful. Keep following this space for more insights!

Sign up for a Zoho Developer account and start developing extensions for Zoho Projects using Sigma.


SEE ALSO


    • Recent Topics

    • 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
    • Help with Tickets Endpoint

      Hello Team, I am using the ticket lookup endpoint to retrieve the list of tickets associated with a particular account. GET https://desk.zoho.eu/api/v1/accounts/{accountID}/tickets I want to know if there is a way to filter the tickets to retrieve only
    • How can I view Help Center articles in 'Sandbox' mode?

      I have published some help center articles but when I try to preview the knowledge base page, it says 'We have no content to display'.
    • Mass Update Doesn't Trigger Workflow

      Hello there, I made a workflow in Zoho Desk, and its related to Ticket module, when I update the field workflow triggers, but the problem is when I update the field in Tickets module List View (Mass Update) the workflow isn't triggering. If I can't trigger
    • View Conversation Thread, Including Private Comments, when Replying

      When you compose a reply in Zoho Desk it takes you out of the conversation thread view and into a large composing window. This means that you can't see private comments from the ticket tread or attachments, both of which are frequently handy to reference
    • ZohoDesk API to get conversations count of ticket

      Hi Team, I need information about ZohoDesk API that provides conversations count of ticket. Currently in ticket metrics api (https://desk.zoho.com/DeskAPIDocument#Tickets#Tickets_Getticketmetrics), it is providing only thread count, I need all conversations
    • Using Snippets in Comments

      One of our Agents asked about using snippets in comments. We don't see this as an option at this time, only in reply mode. Is there a way to enable this?
    • Zoho Finance Limitations 2.0 #18: Can't Validate System Date Fields within Books (if empty)

      Throughout books there are system date fields on Purchase Orders, Sales Orders, etc... You can run validation on these BUT ONLY based on the date entered... example: it must be X days after or before Y. However you can't validate the field is a user leaves
    • merge the Multiple POs to single PO if Vendor of PO"s --in Zoho Inventory

      HI Merge the Multiple POs to single PO if Vendor of PO"s are Same ----in Zoho inventory Please provide any work around to achive this .
    • Manufacturing recipes

      How do I add recipes that use our Raw Materials to make a Finished Product? And no one can see the recipe except with permission? Composite product dose not hide the material of use and more importantly the quantity. Will this need to be built in Creator
    • How to associate a document sent in Zoho Sign with an deal in the CRM?

      Hi, often documents are loaded in Zoho sign and sent for signature. These sometimes are linked to a deal in the Zoho CRM and would be nice to see the status of the document within the CRM. I am aware of the integration, but that assumes that the document
    • Introducing Linkthread by Zoho Social — our new link in bio tool

      Hey everyone, We hope you're all doing amazing. We always love bringing features and tools to make your social media marketing journey easier, and today, we've got a brand new tool that we'd like to introduce to you. We know how important it is to make
    • Ask the Experts 18: Supercharge Self-Service: Simplify Support, Empower Customers!

      Welcome to the Ask the Experts Session 18 focusing on Zoho Desk’s Self-Service features! With the AI buzzing around like busy bees, ever thought of how you can incorporate AI into Self service? Explore how Zoho Desk's Help Center, Knowledge Base (KB),
    • Group Sales Inbox with subfolders

      I am looking for the most effective way to create a group inbox.  I am exploring Zoho coming from a CRM where we have a group sales inbox, which is divided into 3 subfolders depending on which language the sender is sending the mail to.  We have an English, Spanish and French email address where,each message is going to one of the subfolders in the main sales inbox. I have only been using the Zoho system for a few days and am trying to set it up the most appropriately and would like to know how this
    • Folders inside Inbox

      Hello, Is there any way to create folders inside an Inbox in Zoho TeamInbox?
    • Op zoek naar professioneel dakwerk in Lochristi?

      Bij Kevin Dakwerken Lochristi ben je aan het juiste adres! Wij bieden een compleet aanbod aan dakdiensten, van nieuwbouw tot renovatie en herstellingen. ✅ Dakrenovatie & Dakisolatie – Bespaar op energiekosten met een goed geïsoleerd dak. ✅ Platte en Hellende
    • Zoho marketing hub integration with WordPress WooCommerce

      Hello All,  I am a Zoho One User and we are using Zoho Marketing Hub we also have a website on Wordpress and we use Woo Commerce as our store.  im looking to find out if Zoho Marketing Hub Integrates with WooCommerce   ideally we would like to create Journeys or campaigns series based on customer behavior such as buying or already have purchased specific products. or if they go to the store but don't buy (abandon cart follow)  i saw that there is a wordpress plugin for Zoho Campaigns https://wordpress.org/plugins/zoho-campaigns/ but
    • Reporting tag as mandatory

      Why we can't set it as mandatory once we need to input it to get the budget affect?  
    • Is it possible to change default payable account for a bill?

      We have a case where we need to change a bill account from the default accounts payable to another account (it can be current asset or current liability, depending on the case). However, Zoho Books has set default account for bills, (accounts payable)
    • Zoho Sign up forms on Wordpress website not working smoothly

      We have set up the forms on the website and linked them to respective email journeys. But when wesubmit the form the email generated/sent to user is not consistent. Sometimes the journey email is sent, sometimes a email verification message is sent ,
    • Recurring Events Not Appearing in "My Events" and therefore not syncing with Google Apps

      We use the Google Sync functionality for our events, and it appears to have been working fine except: I've created a set of recurring events that I noticed were missing from my Google Apps calendar. Upon further research, it appears this is occurring
    • Global Search Custom Field

      I need to be able to search a custom field within a lookup field (see attached screenshot). The custom field will not glean any results
    • Unparsable Date when hour side is 02

      So this is a crazy error I am getting. I got this one 1-2 years ago as well, and specifically added conditional clauses to workaround that. But now I would like to create a topic and see if anyone else is getting this error. Here is how it goes: We have
    • comment dedicated to specific cell?

      We have built a sheet for a customer, in which they can add comments to specific cells. However, when we filter the sheet it seems that the comment does not stick to the content of a cell, but the cell itself. Resulting in us not knowing to what the client
    • An update to improve email delivery | Email Authentication & Relay

      Dear Zoho Recruit Community, We hope this message finds you well. This post is to inform you about an important update regarding the authentication of all email domains in your Zoho Recruit account. Effective 31st March 2025, emails sent using email addresses
    • Can't add company logo and favicon as a superadmin

      I am logged in as the superadmin but can't add company logo and favicon - the fields are greyed out. Any idea as to what the problem could be?
    • Public links for WorkDrive files

      Our company is considering building an app with Creator that allows one to upload files into the WorkDrive through a Creator form, simultaneously collecting information for a content database in Creator. Ideally, we'd like to centralise the entire workflow
    • Creator to WorkDrive workflow | Missing "Upload file" WorkDrive action in Flow or not?

      I am trying to build a Creator app with a form through which files can be uploaded to WorkDrive and simultaneously added to a Creator database. As far as I understood, automating this Creator-WorkDrive workflow can best be done with Flow, offering greater
    • How can I edit the Picklist History?

      I was working with some custom functions in CRM that inadvertently triggered unwanted changes in a picklist history for the Accounts module. It is absolutely essential for the business that I roll these changes in the subform back because they throw off
    • Zoho Desk Partners with Microsoft's M365 Copilot for seamless customer service experiences

      Hello Zoho Desk users, We are happy to announce that Zoho Desk has partnered with Microsoft's M365 to empower customer service teams with enhanced capabilities and seamless experiences for agents. Microsoft announced their partnership during their keynote
    • how to send recurring estimates instead of recurring invoices

      Hello, Is it possible to use the recurring invoice functionality to send recurring estimate to our customers ? We first need to send them an invoice in order to receive their purchase order and then send them the invoice with their purchase order number
    • Petty cash discrepancy

      How do I record a petty cash discrepancy? We had money go missing and need to document that in the books, but I'm not sure how to put that in. It's not an expense, just a loss of cash.
    • Alternative / optional Position

      How do you create an alternative position or an optional position (article) in offers?
    • Option to copy/duplicate Custom Ticket views

      Hi Team, Hope you're all well. I was wondering if you would consider a feature on Custom Ticket views: The option to copy or duplicate an existing custom ticket view It would help tremendously for views with a lot of criteria that could be reused multiple
    • Hundreds of folders or tags (for each client): best practices?

      I'm preparing to switch from Gmail Workspace where each of my clients has their own label, assigned automatically after I manually set it up when someone becomes a customer. I know that those labels can be converted into folders in Zoho Mail, resulting
    • Announcing new features in Trident for macOS (v.1.6.0)

      Hello everyone! Trident for macOS (v.1.6.0) is here with new features to elevate your workplace communication and productivity. Let's take a quick look at them. Create filters from emails . In addition to creating email filters from Mail Settings, you
    • Changing Color Theme of Guided Conversations

      Hello, We have recently added Guided Conversations to one of our websites, but I am wondering if there is a way to customize the color scheme so it matches the appearance of the website? Thank you in advance!
    • How do I add new line and format text in zoho desk ticket?

      I am generating a ticket via API and looking to update "description" field of ticket whenever I need. Is there a document where I can find supported formatting for description field on a ticket.  I need to find: Adding a new line and adding bold text,
    • zet pack not working

      We are using the zet pack command to package our Zoho extension. However, after running the command, the extension gets packed, but the resulting package is empty. We've attached a screenshot for reference. Could you please assist us with resolving this
    • Disable Default Value in Multi-Select field

      Hello, Is there a way to disable the default value feature when setting up a custom Multi-Select field? When creating tickets I would like it so there isn't a value pre-selected in the multi-select custom field that was created.
    • Next Page