Building extensions #9: Store, retrieve, and access entity-specific data in widgets using data storage

Building extensions #9: Store, retrieve, and access entity-specific data in widgets using data storage

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 tab - Please 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

    • Create custom rollup summary fields in Zoho CRM

      Hello everyone, In Zoho CRM, rollup summary fields have been essential tools for summarizing data across related records and enabling users to gain quick insights without having to jump across modules. Previously, only predefined summary functions were
    • Button or Links order

      Is there a way to re-order the buttons or links that are created? Moderation Update: With our recent enhancement to custom button creation from the layout editor, administrators can now reorder custom buttons directly from the layout editor, and this
    • Zoho Books | Product updates | August 2026

      Hello users, July has been an exciting month for Zoho Books! This month, we're excited to introduce HTML PDF Templates, Placeholders as Pills, expanded approval workflows for Sales Returns and Journals, and significant compliance updates across the India,
    • Bulk updating tags

      My organisation handles a number of restricted funds. We previously did this by having a chart of accounts where each restricted fund has its own income and expense accounts. However, our accountant changed this, moving all transactions into accounts
    • How to Convert Emails to PDF Format in Batch

      It is helpful to convert emails into PDF format when you want to save important messages, when you need to share business correspondence, or when you wish to keep email records for future reference. PDF files can be readily opened, printed, and shared
    • Download or Backup Bulk Emails from IMAP Server

      Taking email messages from an IMAP server and saving them is a wise method for ensuring that important emails are kept safe and easy to access. No matter whether you have a business email address or a personal mailbox, keeping a local copy of your emails
    • Months of WooCommerce–Zoho Inventory sync failures and repeated support requests – has anyone experienced this?

      Months of WooCommerce–Zoho Inventory sync failures and repeated support requests – has anyone experienced this? I run a small retail business using WooCommerce and Zoho One. For months, I have been trying to resolve recurring synchronisation failures
    • Kaizen #263: Using Zoho CRM Skill to Build Widgets

      Hello everyone! Welcome back to another exciting Kaizen post. In the previous Kaizen posts, we introduced the zoho-crm skill.md and explored how it can help with Zoho CRM APIs, Client Scripts, complex COQL queries, and Skill to build Queries. In this
    • Zoho notebook No login

      Hello Team, I recently downloaded and installed the latest version of zoho notebook for windows. But I am not able to login without providing any sso or email address. Did you removed the no login feature for this app? This is just a windows app. can
    • Search is completely broken for PC

      I go to note, try to search for "mtga" and it shows 702 results (it's a big note), highlights all letters "m" and I can't find anything. Same for "gathering" - it thinkgs I think only for "g". Looking for "zoho" shows as if I searched only for "z". Using
    • Losing description after merging tickets

      Hello, We merge tickets when they are about the same topic from the same client. It happens sometimes. We recently noticed that after the merger only the description from the master ticket is left in a thread. And the slave-ticket description is erased.
    • Behind a great customer experience is a team

      Hi everyone, October is here, and the first week marks the Customer service week. Each year, we thank our customer service professionals. Service professionals are all around us, even in our own workplaces: They handle essential administrative work like
    • What's New - August and September 2026 | Zoho Backstage

      Hello everyone, August and September bring a fresh wave of intelligence to Zoho Backstage. AI takes the spotlight with tools that help you create content, support attendees, and manage how AI fits into your events. Alongside AI, we’ve refined email communication,
    • Images Not Displaying Properly in Zoho Desk

      Hi, We are experiencing an issue with image rendering in Zoho Desk, affecting both incoming and outgoing emails. Images embedded in email conversations are not displaying properly. Instead, we see broken image icons or empty placeholders where the images
    • Announcing the new SKILL.md for Zoho CRM and the updated OAS repository!

      We are introducing a new zoho-crm skill to make working with Zoho CRM Developer tools (like APIs, functions, widgets, client scripts, queries etc) easier and faster, with the help of AI in your preferred AI harness like Claude Code, Codex, Cursor, VSCode
    • Widget Height were destroyed

      All widget heights in the Details Canvas view are broken. Moderation Update: This is a known issue with widget heights in Client Script popups and flyouts. A fix is in progress, and this post will be updated once it's released.
    • Zoho Projects - Has something changed regarding to linking Projects and Deals via the API?

      I am trying to link Zoho Projects to Deals in CRM using the API, but each time, the Deal Contact is added as a Client user and receives an email invite asking them to join the organisation. These are internal projects and the customer should not have
    • How long does it take to review campaigns?

      Hello Zoho, i scheduled my campaigns yesterday afternoon and it has been under review for over how many hours and those campaigns were supposed to be out yesterday so new ones can go out today. Is there something i'm doing wrong?
    • Convert MSG to PDF in Bulk with Attachment Free

      Microsoft Outlook saves each email as an MSG file, keeping with it key information like the sender, the recipient, the subject, the date, the body of the message, and any attachments. It can, however, be quite difficult to access a large number of MSG
    • Using Mail Merge Template to Print Documents with One Subform Record's Fields per Document

      Hello, We have a Mail Merge template created in Zoho Writer which is not able to perform the functionality which is currently required to automate the documentation task portion of our process. The CRM module we are primarily using is based on a "Loans"
    • Convert MBOX to PST File Using Free Methods

      MBOX is a mailbox format that is used by various email clients and services, such as Thunderbird, Apple Mail, Eudora, and Google Takeout. Yet, in order to be able to open your MBOX emails in Microsoft Outlook, you have to convert them from MBOX to PST
    • Zoho Community Digest - September 2026 | Part 4

      Hi everyone, and welcome back! The final week of September brought a revamped Books integration in Zoho CRM and Zoho Key Service for LLM access without API keys, Zoho Creator's audit trail becoming a full enterprise-grade auditing system, and Zoho One
    • Automate weekly reports from Channels | Zoho Cliq AI use case #01

      Scrolling endlessly through numerous threads in a Cliq channel and manually counting how many have been closed, how long people took to reply, and who actually participated can be tedious. After 20 minutes, you might have a number that no one can verify.
    • Apple Mail to Outlook Converter - Export Apple Mac Mail to PST File

      Apple Mail is a well-known email application among people who use Macs, whereas Microsoft Outlook is widely employed for both personal and business use. Should you decide to move from Apple Mail to Outlook, you'll probably need to transfer your mailbox
    • Creator -Dynamic addition of Customer Portal User Licenses

      Hi, We have a Creator App for B2C about to get released. We are experiencing the Portal User license challenge. Unable to predict the number of users who will download and Subscribe. When a User is about Subscribe and the portal licenses does not exists,
    • Zoho Tables is now part of Zoho One!

      Hey everyone! We've got some exciting news to share. Zoho Tables is now included in your Zoho One subscription at no extra cost. If you're already on Zoho One, head to your app list, add Zoho Tables, and get started right away. You don't need a separate
    • How to import PST files in Office 365?

      You can import PST files into Office 365 using native Outlook applications, the Microsoft Purview network upload method, or specialized third-party migration tools. Choosing the right method depends on whether you are migrating a single mailbox or executing
    • [Webinar] Zoho CommunitySpaces MCP

      New to MCP, or just exploring what's possible? Join us for a webinar on Zoho MCP and your community. We'll show you how Zoho CommunitySpaces and Zoho MCP work together, what your AI co-host can do inside your community, and how to get started. Register
    • Solution to Import OST File into Office 365.

      In today’s digital workplace, organizations are rapidly moving toward cloud-based email systems for better flexibility, security, and collaboration. Microsoft 365 has become one of the most widely used platforms for business communication. A common requirement
    • Address limits per customer by edition

      I’m on the Standard edition and have reached a limit of 30 addresses under a single customer. Before I move to an annual Professional subscription, I need to confirm the following: What is the maximum number of addresses allowed under one contact, and
    • How can I show an uploaded image larger/full size in a Zoho Forms response PDF?

      Hi,  I noticed that in a response PDF for Forms, the uploaded image is shown in a tiny box as seen in my screenshot. Is there any way I can make that appear larger in the response PDF? thanks.
    • Live connection to DS files in Zoho Creator / ChatGPT

      As an idea, we are using ChatGPT to build with Zoho Creator (outside of Zia), which is works brilliantly to assist write deluge, provide test suggesitons etc. Currently we are uploading the DS files which are very point in time, it would be great to have
    • Meet PageHealth by Zoho PageSense: a free way to find out what's holding your page back

      We all know the feeling. You've spent days tweaking headlines, moving buttons, and rewriting copy, and you're still not sure why visitors aren't sticking around. Revamping your website is hard, and figuring out what's actually getting in the way is even
    • Export Exchange Online Archive Mailboxes to PST for Microsft 365 Users

      With Microsoft 365 it is possible to archive older emails in Exchange Online in order to keep the main mailbox tidy. If however you need to export the archived emails to a PST file for the purposes of backup, migration, compliance or for use offline,
    • Lookups and Custom Modules

      I created a Custom Module that I'm calling "Item Purchasing Group". This module will store information for groups of Items that must be purchased together (including minimum overall quantities and/or values, etc.). This will have a one-to-many relationship
    • Task Module quick create settings

      Hello, requesting the Task module receive a quick create customization settings. We have added custom fields and have to select "More fields" at the bottom of the pop-up to access the custom fields.
    • Your employees changed departments. Did your IT systems notice?

      An employee joins your Marketing team. HR adds their details to the organization's user directory. The IT admin, in turn, creates their Zoho One account, assigns the required applications, adds them to groups and provides access based on the organization's
    • AI Calling

      Hi, does anyone have experience or any thoughts on AI Calling. Getting AI to make calls on behalf of your company. We are looking into it, but are finding it difficult to get info and providers that can assist.
    • Email Forwarding to Zoho Desk Failing After Migration from Gmail to Outlook (Microsoft)

      We recently migrated from Gmail to Microsoft Outlook. Since the migration date, emails sent by our customers are no longer being received by Zoho Desk. I tried setting up the email forwarding rules in Outlook similar to what we had in Gmail, but it still
    • Option to Disable Knowledge Base Section in Feedback Widget Popup Hello Zoho Desk Team

      Hello Zoho Desk Team, How are you? We are actively using Zoho Desk and would like to make more use of the Feedback Widget. One of the ways we implement it is through the popup option. At the moment, the popup always displays the Knowledge Base section,
    • Next Page