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
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:
- Creating an extension.
- Configuring the plugin manifest.
- 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
Extension configuration
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
Open Quote Ammount
Night, Is there a way to print the quote for a customer to show the dollar total for open quotes. Thanks Rudy
Minor Problem: Dashboard Forgets Cash vs Accrual
The dashboard doesn't reflect my cash/accrual choice from settings, AND doesn't remember what I've set it to.
information on a suggestion how to treat old records in the - pipeline deals, notes, activities (tasks- events-calls) and emails etc.
Hi, I would like information or a suggestion on how to treat old records in the - pipeline deals, notes, activities (tasks- events-calls) and emails etc. ? As each option (pipeline deal, notes, activities, emails etc.) counts as a record and as we advance
Automating Employee Birthday Notifications in Zoho Cliq
Have you ever missed a birthday and felt like the office Grinch? Fear not, the Cliq Developer Platform has got your back! With Zoho Cliq's Schedulers, you can be the office party-cipant who never forgets a single cake, balloon, or awkward rendition of
zoho stream web notifications
since im locked out of IMAP and cant use my mail app that lets my team collaborate and chat below emails, im trying out the zoho version of this... zoho streams. On the bottom of an email in the zoho mail web app, i "comment" and mention another user.
New in Zoho CRM: Pre-fill Public Forms with CRM Data
Public forms just got more flexible! With the new Pre-fill Public Forms with CRM Data option in the Zoho Forms integration, people filling out your public forms can search for a CRM record, select the right one, and have the form automatically populate
HEIC File Type Viewer
Hi, It would be nice to be able to click on the images in the All Entries/Reports Tables which are HEIC the same as JPG, PNG, etc. so they open in a viewer from Zoho or the Attachment Service, today HEIC requires you to download each image and open it
Zoho Books | Product updates | October 2026
Hello users, October brings a range of new features and enhancements to Zoho Books, designed to simplify compliance, streamline accounting workflows, and improve inventory management. From the launch of the Nigeria Edition and France’s e-invoicing capabilities
Specific ListView Canvas on Canvas Home Page Always Loads Most Recent ListView, Not the One Specified
I had mentioned this to ZOHO, but I mainly wanted to see if others in the Community are also facing this problem. I created a Canvas ListView for a Custom Module, and then created a Canvas Home page (technically on a tab item, but I'm not sure if that
print preview
We are using microsoft edge, till 12 sep we were getting directly print option. Now we are getting this preview option we have to click print option again. How to bypass this-preview option?
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
Connection into Cliq?
I have the SalesIQ chat widget on my site using the Zohobot but I'm not always on and my employees don't keep it open all the time. We do have Cliq open all the time though so I'd love a way to manage those discussions directly in Cliq as they come in.
Kaizen #264 - Using zoho-crm Skill to Write Functions
Hello CRM wizards, Welcome back to another week of Kaizen. In our previous Kaizens, we explored how the zoho-crm skill can assist you across various Zoho CRM developer tools. This time, let us see how it can help you write Deluge Functions, from simple
Edit Pinned Comments in Zoho Desk
It's great that private comments can now be pinned to the top of the ticket but what would be extremely helpful would be to allow for the pinned comment to be edited vs. having to find the comment in the ticket to edit it.
Recover accidentally deleted mail account
Email account was accidentally deleted from admin console.
mail sent to gmail goes directly to spam
Hi TKIM and SPF are configured and verified. E-mails coming from zoho to my personal gmail account are going directly to the spam folder. How can I solve this? I can send you guys the headers privately if you need to.
Shopify Integration: How do I change the default Unit of Measure from KG to PCS
For those using Shopify with Zoho Inventory, has anyone managed to have imported items default to PCS/EA instead of KG? If so, where is this configured? I can only find weight units in Shopify, not a sales unit of measure.
flexible subscription plan
Greetings! We currently have 5 Standard plans, but would like to add 5 mail-lite one just to receive emails (do not need other business features or storage. As Super Admin, I tried to do that my self but didnt see the option on your sales platform. Please
mail
We want our tracked links in campaign and journey emails to use our own domain instead of the shared maillist-manage.net domain. We have already created the CNAME links.rexven.com → customer-campaign.zoho.com (DNS only). Does our plan support a custom
Useless support and impossible to add users for whom I paid for
Over a week ago i signed up for 5 emails addresses and 10GB, and so far I only have 1 email working, no access to the dashboard. Remote connection with "support"....useless Screen grabs sent to "support" useless Messages to "support"... now not answering
Mr
can't access my email
Reduce Mail Lite Renewal from 2 licenses to 1
Hello Zoho Support, I have a Mail Lite 5GB subscription with 2 licenses. have deleted the unused user, and now only 1 user/license is being used. My subscription is due for renewal, but the renewal page still shows 2 licenses and does not give me an option
Adding additional records dynamically to a subset of fields
I'm trying to create a service ticket layout which will be passed to a Creator application for Field Service Management (FSM) purposes. We need to be able to define a specific subset of service product fields such as "Service Product", "Service Product Serial Number", "Service Product Warranty End Date" and "Service Product Current Warranty Status". We may need to record more than one of these subsets, in case the customer has more than one product which has to be serviced on their site. It seems
Push error with Zoho Books and Zoho CRM
I have successfully linked Books and CRM but I have some push errors with the following message: "The customer associated to this record is not linked to module chosen in the current contact sync configuration." I am unable to work this out, could you help please.
Function #24: Automatically display deal name from Zoho CRM on quotes in Zoho Books
Deals allow businesses to organize and visualize their sales pipeline. This provides a clear overview of all potential opportunities and helps in making informed decisions. Zoho CRM empowers you to create deals or potentials for your clients and monitor
{"code":57,"message":"You are not authorized to perform this operation"}
In my trial version of Zoho account, I am trying to integrate Zoho CRM Contact Module with Zoho books but when i call API it gives such type of error {"code":57,"message":"You are not authorized to perform this operation"}. I am using refreshed token
Allow widgets to be placed between native sections in the Ticket Properties panel
One of our biggest frustrations with the Tickets module is how rigid the Ticket Properties panel is. Every section there is built only from native Zoho Desk fields. We can add sections, rearrange fields, and pick layouts, but we can’t put anything custom
#13 Understanding Your Zoho Invoice Limits
Ravi's busiest month was also the month his invoicing stopped working. He had been using Zoho Invoice comfortably for months. Then, just when business picked up, he hit a limit he hadn't expected. The problem wasn't that he had missed a payment or forgotten
Map Dependency Upgrades in Zoho CRM
Map Dependency Fields enhancements are now available across all DCs. Hello everyone, We’ve introduced a set of enhancements to Map Dependency Fields to make setup simpler, faster, and more intuitive. Map Dependency helps control how values appear across
How to Allocate Incoming Purchase Stock to Specific Sales Orders in Zoho Inventory?
Hi all, We are using Zoho One Enterprise and need guidance on managing sales order–wise allocation of incoming stock in Zoho Inventory. Our workflow is: A customer order is received, and the Sales Order is confirmed. The sales team immediately creates
How to disable automatic ticket closure emails for specific outgoing communications?
Is there a way to disable the automatic "Ticket Closed" email notification for specific tickets or outgoing emails? Currently, every time we send an email to a customer, the system automatically sends a "Ticket Created" email, followed by a "Ticket Closed"
Zoho Webinar - Sharing System Audio (NOT AVAILABLE)
Hi, We are having a serious problem with Zoho Webinar. In the webinars we run, we very often share the audio from a video we are streaming directly from YouTube or other applications. Until recently we were using Zoom, but as we use other Zoho applications
What's new in Zoho Workplace | September 2026
Hello Zoho Workplace community! Here's a roundup of all the new features and announcements that went live across Zoho Workplace applications in September. Zoho Mail Compose Options Across Templates You can now use the Undo, Redo, and New List options
Unable to export reports despite enabled report export permissions
Hi Zoho Community, We are unable to export reports in Zoho CRM. When attempting an export, we receive the following error: “Cannot Export Report — You do not have permission to export one or more modules used in this report. Please contact your administrator.”
What does "Tickets for Review" do?
What is the purpose of the va nilla view " Tickets for Review?"
Set department automatically for incoming calls
Is it possible, when receiving an incoming call through Zoho Desk (using Twilio integration), for the department to be auto-selected based on the phone line being called? Currently, we have to manually select the department from the dropdown menu when
Zoho Desk training for administrators in EU and US region
Hello Everyone, Get ready for the certified Virtual Classroom training for our Zoho Desk users in Europe and the US. Our in-house Zoho Desk expert, @Dheeraj | Zoho Desk, will conduct the virtual classroom training. This training focuses on simplifying
Support Plan: Recuring Issue
Hi Zoho Team, Could you please look into this recurring alert and provide clarification on why this restriction is still in place? This issue has become a bottleneck in our workflow, significantly limiting our automation capabilities. We are unable to
Webinar de Zoho People: tecnología para RR. HH.
¿Y si RR. HH. pudiera estar tan conectado con el negocio como el resto de tu organización? La gestión de personas está evolucionando, y los departamentos de Recursos Humanos necesitan herramientas que les permitan ir más allá de las tareas administrativas
Zoho CRM still doesn't let you manage timezones (yearly reminder)
This is something I have asked repeatedly. I'll ask once again. Suppose that you work in France. Next month you have a trip to Guatemala. You call a contact there, close a meeting, record that meeting in CRM. On the phone, your contact said: "meet me
Next Page