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

        • How to automatically update a % field according to a dropdown field in the Quote table

          Hello there, I have following couples: Success % Status 0% NP 30% No Feedback 50% PR 80% Opp. Concreta 100% A I would like the Success % field (percent) to automatically update based on the item of the Status field (dropdown). The fields are within the
        • Support for tags on mobile apps?

          Hi, please could you suggest when support for tags on the mobile apps is coming?
        • Zoho Social API for generating draft posts from a third-party app ?

          Hello everyone, I hope you are all well. I have a question regarding Zoho Social. I am developing an application that generates social media posts, and I would like to be able to incorporate a feature that allows saving these posts as drafts in Zoho Social.
        • mail did't send for particular email

          mail did't send for particular email
        • Group settings in Zoho Mail: Manage members, moderation, and spam controls for your organization's groups

          When teams rely on group email addresses like team@org.com, hr@org.com, or sales@org.com, managing them without clear controls leads to unapproved senders, flooded inboxes, and no accountability over what gets delivered. Zoho Mail's Group settings in
        • Update to Free plan attendee limit

          Hi everyone! A quick update about Zoho Webinar's Free plan. We’ve adjusted the Free plan attendee limit from 100 to 20 attendees. Everything else in your Free plan stays the same; you'll continue to have access to all your existing features. If your webinars
        • Possibility to modify a standard wedget to create my own customized wedget

          Below is the std wedget available for dashboard which is great to show the the overdue, current, and all tasks as well as issues for each team member. My problem is this; The list of users cannot be edited (there are admin users which are not relavant
        • Feature Request: Include Creator-applicable Deluge updates in the Creator Release Notes

          I'd like to put forward a suggestion about how Deluge updates are surfaced to Zoho Creator developers, and I'm hoping the Creator team will consider it. Zoho Creator is built on Deluge. Every workflow, custom function, validation and schedule we write
        • Add home page or dashboard in CRM customer portal

          is it possible to add home page or dashboard in CRM customer portal?
        • Close task on Completion Date entry

          This discussion is similar to my issue: "backdated-task-completion-date" discussion Scenario: A bunch of tasks have been completed. But, they have not been closed. Time goes by You finally get around to closing those tasks Projects assigns the date the
        • Introducing Color and Order Preferences for Blueprint Transitions

          Blueprints exist to improve the efficiency of your company's processes and ensure compliance — but only if your users follow them promptly. More often than not, your users may find it challenging to adopt your processes and follow through on them, especially
        • Groups and Moderation

          Hi, I have set up a Group in my organisation but am having trouble with moderation. The members are a mix of addresses within the organisation and external emails addresses. The issue is how to set moderation to be off whenever any of the members sends
        • Introducing Radio Buttons and Numeric Range Sliders in Zoho CRM

          Release update: 1. 2 March 2026: Currently out for CN, JP, AU and CA DCs (Free and standard editions). For other DCs, this will be released by mid-March. 2. 26 March 2026: CA, SA, AU, JP, CN DCs - Free, Standard, Professional, Enterprise, Ultimate, CRM
        • Zoho CRM Sandbox now supports integrations

          Hello everyone, We are now expanding Zoho CRM Sandbox to support integrations with other Zoho products. You can connect, configure, and validate the behavior of your integrated tools within a safe, isolated environment - testing end-to-end without touching
        • Archiving Contacts

          How do I archive a list of contacts, or individual contacts?
        • Introducing the New Zoho Assist Quick Support Plugin

          We are thrilled to announce the new Zoho Assist Quick Support Plugin, the upgraded and enhanced version of the Zoho Assist Customer Plugin. This new plugin allows organizations and IT administrators to deploy it directly onto their customers’ devices,
        • What's New - June 2026 | Zoho Backstage

          Hello everyone! We’ve rolled out a new set of improvements across Zoho Backstage to help you manage events more efficiently and provide a better experience for your attendees. Take a look at what’s new in this month’s update. Assign attendees later and
        • More Zia AI capabilities are included across additional Zoho Desk editions

          Hello everyone, We are expanding the availability of AI-powered features in Desk to the other paid subscriptions from 7th July 2026. Right now, the following AI-based features are available for Enterprise edition users: Intelligence: Sentiment analysis,
        • Summer release '26 should be called Enterprise Summer Release '26

          Summer release '26 should be called Enterprise Summer Release '26 because almost all updates or the more useful ones, are limited for Enterprise subscriptions. us with Basic or Premium susbcriptions are basically left in the cold.
        • Previous conversation title on new messenger widget translation

          The title of previous conversations title on the new messenger widget personalisation appears in english even when spanish is selected as default language
        • Export Tickets from the Help Center

          Hello everyone! We are now allowing end users to export tickets directly from the help center. The ticket export allows users to: Filter tickets by Department, Priority, and Account before exporting. Download files from Export History (Setup > Data administration
        • Account Duplication Control in Zoho CRM

          The Goal Prevent users from creating duplicate Account records in Zoho CRM. Accounts should be sourced from ERP and synced into Zoho—no. Allow to create Accounts if they don't exist in our ERP. What I've Implemented removed Account creation permissions
        • Error 1011 saving website personalisation — blocking all changes (corrupted "home_page.content" field)

          When trying to save changes under Settings → Brands → MY COMPANY → Website → Personalisation → Messenger, I receive the following error: "Either the request parameters are invalid or absent" upon checking on the developer console of the browser I get
        • Canvas View: Add font family selection (incl. Google Fonts / Hebrew & RTL fonts)

          Hi Zoho CRM team, The Canvas design suite (List View, Tile View, Table View and Record Detail) currently allows customizing font weight, size, color, alignment and case - but there is no option to choose the font family. All text is rendered in the built-in
        • This user is not allowed to add in Zoho. Please contact support-as@zohocorp.com for further details

          Hello, Just signed up to ZOHO on a friend's recommendation. Got the TXT part (verified my domain), but whenever I try to add ANY user, I get the error: This user is not allowed to add in Zoho. Please contact support-as@zohocorp.com for further details I have emailed as well and writing here as well because when I searched, I saw many people faced the same issue and instead of email, they got a faster response here. My domain is: raisingreaderspk . com Hope this can be resolved.  Thank you
        • Issue embedding image Zoho Books email signature

          I am trying to embed my company logo to my email signature using the image url tool on the settings but I keep getting the following error: Enter a valid public image URL I am using a public link from either WorkDrive or OneDrive and I still get the same
        • E-Mail Distribution List

          How do I create an e-mail distribution list in Zoho Mail?
        • Tip #80- Secure Connect: Add an Extra Layer Before You Connect – 'Insider Insights'

          Tip 80 – Secure Connect: Add an Extra Layer Before You Connect – 'Insider Insights' Hello Zoho Assist Community! Picture this: your support team relies on unattended access to keep the business running. Servers need overnight patches. Remote workstations
        • Business Whatsapp is not Showing

          I’ve attached a screenshot from the Zoho CRM Android app when clicked the call button. It is showing Personal WhatsApp, which is not installed on the phone. Also, the installed WhatsApp Business account is not showing.
        • How to access a unified inbox for more than one zoho accounts (using paid workplace services)

          Hello, we are using zoho for a few months and also suggest your services, setting them up for our clients. Several from our clients, our company as well, use more than 1 email addresses. Using the web version, we are only able to add them as accounts
        • Modify a standard wedget to create my own customized wedget ?

          Below is the std wedget available for dashboard which is great to show the the overdue, current, and all tasks as well as issues for each team member. My problem is this; The list of users cannot be edited (there are admin users which are not relavant
        • Advanced Formatted Resume Templates for Applications

          Advanced Formatted Resume Templates can now be created and used directly from the Applications module, with support for application module fields. Until now, Advanced templates were limited to the Candidates module. That meant resumes generated from Applications
        • Zoho Books | Product updates | July 2026

          Hello users, We’re excited to bring you the latest updates in Zoho Books for July 2026! This month's release introduces Terminal Payments, CMP-08 filing for composition taxpayers, SEPA Credit Transfer support, the new Receipts and Payments Report for
        • Boost your CRM communication with new font types, sizes, and default reply-to options while composing emails

          Hello Everyone, We’re excited to introduce a series of impactful enhancements to the email composer settings in Zoho CRM. These updates enable you to personalize and optimize your customer interactions with greater efficiency. So what's new? Add custom
        • Zoho CRM Community Digest - June 2026| Part 2

          Hello Everyone! Welcome to the second half of our June Zoho CRM Community Digest! We are keeping the momentum going with powerful updates to filter out unnecessary email syncs, a revamped CRM Import tool, smarter follow-up updates in cadences, and Zia
        • Migrate from Zoho Mail to G Suite

          I am unable to find any documentation on how one can migrate from Zoho Mail to another platform, like G Suite or Office 365. Please point me to the right documentation. Thank you.
        • Zoho Desk Android app - Option to set an email template as default

          Hello everyone! We have enhanced the Email Template section in our app by introducing the ability to set a template as default directly from the Zoho Desk Android app, making it easier to access your preferred template without repeated manual selection.
        • Zoho Desk Android and iOS app update: Odia Language

          Hello everyone! We have now brought in support to access the Zoho Desk app in Odia language. Please update the app to the latest version directly from the Play Store/ App Store or using the links below: Zoho Desk - Play Store Zoho Desk - App Store Once
        • How to check Leads with no Task (open activity)

          Hi everyone, I was wondering if there’s a way to view leads that don’t have any tasks assigned or open activities linked to them.
        • How do I migrate from Office 365 to Zoho Mail?

          Check out Advik Email Migration Wizard, this software is specially developed to move mailboxes from Office 365 to Zoho Webmail. In addition you can migrate from Gmail, Yahoo, Rediffmail and 80+ webmail servers to ZOHO MAIL. Isn't it amazing? This is an all in one email migration solution. Steps to export emails from Office 365 to Zoho Webmail are as follows; Run Advik Email Migration Tool in your system. Select Office 365 as source and enter its login credentials. Select mailbox folders and choose
        • Next Page