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


    Nederlandse Hulpbronnen


      • Recent Topics

      • Customer Parent Account or Sub-Customer Account

        Some of clients as they have 50 to 300 branches, they required separate account statement with outlet name and number; which means we have to open new account for each branch individually. However, the main issue is that, when they make a payment, they
      • Notification sender email is coming from Zoho, not from my domain

        Hello, I have Zoho Desk configured to use "From address" as my domain support email i.e. support@ mydomain.com (email is verified) , we send automatic notification to contact (customer) when they submit a new ticket. Yet the notification email is sent
      • New Agent Creation - Not Receiving Activation Email

        I created multiple new agents within Zoho Desk with no issue. Everyone one of them received the activation email except one. The email is correct and confirmed multiple times. It is not located in the Spam folder. I withdrew the activation and recreated
      • Introducing Screening Bot for pre-screening automation

        We’ve transformed the chatbot experience in Zoho Recruit! What was once a general Chatbot for sourcing is now a streamlined system with dedicated tools. The original chatbot has evolved into the Sourcing Bot, while the newly introduced Screening Bot simplifies
      • How to Initiate WhatsApp Message on SalesIQ?

        I've just activated a Business WhatsApp phone number through SalesIQ because of its touted omnichannel chat approach. Sounds exciting. I understand that when a customer sends me a WA message, I can reply to it on SalesIQ and keep the chat going, perfect.
      • WorkDrive Download Issue

        My client has been sending me files via WorkDrive, which generally has worked fine. Recently files won't download at all. If you try and individually select and download a file, a popup will appear in the bottom right saying it's preparing and then it
      • How to get NSE/BSE Stock Prices in Zoho sheets?

        I've been looking for a function that provides me with the NSE/BSE listed stocks price in Zoho Sheets like GOOGLEFINANCE in Google sheets, but I found none. Please help if there is any way to het stock prices?
      • Downloading Image from Subform using Deluge (invokeUrl) - Data Mismatch / Connection Issues

        Hi Zoho Community, I'm struggling to download an image from a subform in Zoho Creator using Deluge and then attach it to a Zoho CRM Deal record. I've been working on this for a while, and I'm encountering issues that I believe are related to either data
      • Comment Reactions like a Thumbs Up

        Can we please have the ability to emoji react on comments or at the very least, thumbs a comment up? Literally every other project management system out there can support this and it is very much needed to just acknowledge a comment instead of completely
      • How do you send an email to a customer from Zoho Desk?

        I have pulled up a customer record and I click the email icon and the email address, nothing happens.... Email attached of where I am.  Is there a different way to send an email?
      • Feature Request – Auto-Save Draft for Interview Assessments

        Hello Zoho Recruit Team, I’d like to suggest a feature that would be incredibly helpful for recruiters conducting multiple interviews. Currently, when filling out an Interview Assessment, there is no option to auto-save progress as a draft. At times,
      • Different timezone for users

        Is it possible for users to set a different timezone for themselves? We have staff in different locations.   Thanks!
      • Attachment Template as PDF from Another Form Zoho Creator

        Hi Everyone, have a good day. I have question, below my script for put the attachment into email. But my template PDF from another form ("Form B"). I get errror because template PDF not exist in the form "Alasan Reject". The form name for example "Form
      • Reopen and Continue WhatsApp Chats within 24-Hour Window

        Dear Zoho SalesIQ Team, I'm writing to request a new feature that would enhance WhatsApp communication management within the 24-hour window: the ability to reopen and continue conversations with customers after a chat has been closed from our end. Current
      • Accessing Extension Created Functions

        Good day. I have recently been attempting to access a function from an extension that is installed on my crm in a standalone function I have created with deluge on Zoho CRM, however I have not managed to get this to work. I am attempting to send an SMS
      • Unchecked an option in a checkbox when another option is checked

        Hi, in a Creator form, I have around twenty checkbox fields, named for example "cb1", "cb2", "cb3", etc... Each of these fields have two options: Done and N/A. I would like to be able to for each field, if I check "Done", "N/A" is unchecked, and if I
      • Ability to Initiate WhatsApp Template Messages in Zoho SalesIQ Without Preexisting Chat

        Hi Zoho SalesIQ Team, I hope you're doing well. I understand that with the WhatsApp integration in SalesIQ, clients can contact us via WhatsApp, and we can use WhatsApp templates to send messages outside of the 24-hour window by reopening an existing
      • Support streaming display of long texts in zobot chats (usefull for chatgpt / openAI and any other AI )

        Hello, I was able to test the new features you offer to connect chatgpt or openAI assistant with built-in feature or custom code. This is great but the chat seems very slow and laggy because you don't use streaming api from openAI, so the chat has to
      • Is it possible to load a Module with a filter pre-applied by the URL?

        In many of the CRM related lists, there is limited sorting, and no filtering available. I thought of the idea of putting a Custom Button on a Related List that would take the user to that module, but PRE-FILTERED by the Account from where they were viewing
      • Custom Icon on zoho Creator APP

        Is is possible to have a company logo as the APP image rather than the Zoho image?  thank you.
      • How can I format numbers in an html table?

        I am building an html table to display how much people have paid, but the numbers are losing their formatting: application_table = application_table + "<td style='text-align: right;'>" + payment_row.Amount_Local + "</td>"; Amount_Local is a decimal field,
      • Weekly Tips: Stay on Top of Work with Zoho Mail Streams

        You’re working on a big project, and all the updates from your team keep coming in from different angles. Some are sharing updates, others are asking questions, and you are constantly getting your inbox piled up with new information on the same project.
      • Issue with Zoho Books /Zoho Inventory Support Team

        Oh my goss! This ticket just got closed without a solution/response?! (attached screenshot) That is so pathetic. I thought I could keep impartially all tickets tracked in your help website. Do I need to track issues raised to zoho support team in a separate
      • Stock Count - Extracting Data

        Hi, I really like the new stock counting functionality however I can't find any way to extract the stock count results. -The build in stock count report is limited and has no export option - There is no export options from within the stock count screens
      • Issue with Bin Locations and Stock Counting in Zoho Inventory

        Dear Zoho Support, We are currently experiencing a significant issue with bin locations and stock counting in our warehouse. Our warehouse is divided into 7 zones, each containing approximately 250 bin locations. When performing a stock count for an item,
      • PO receive limitations

        It is VERY common to receive more or less that the PO quantity. It's totally ludicrous to limit the maximum receive to the PO quantity! What if the receive is 0.00001 less than the PO quantity - it leaves the PO as "Partially received" The current options are to edit the PO manually before finalizing the receive, an outrageous situation ! Please Zoho guys - this is an infuriating oversight & can be easily resolved by introducing the option as shown in the attached document ......
      • Boost Customer Experience: Let Visitors Choose Their Preferred IM Channel in Your Chat Widget

        We have an exciting enhancement coming your way. Pushing the perimeter has always been our thing, and we have come up with yet another enhancement for your Zoho SalesIQ live chat. Did you know your live chat can support more than chats and calls? That's
      • Ask the Experts 17: Elevate Customer Communication With Multichannel & Instant Messaging

        Hello Everyone, Get ready for the opportunity to interact with Zoho Desk specialists! This month, we’re diving into Multichannel Operations, helping you manage customer interactions across various platforms seamlessly. Why Join? Customers reach out through
      • Auto Reply on Zoho Desk

        Can we set an Auto Respond to every email that Zoho Desk receives? Is there a way that any of the information in the original email can be pulled through to that reply? Like a mail merge?
      • Several issues with formatting within the email campaign

        I continue to have several issues with formatting when creating newsletter through this platform. Any one have any guidance on how to deal with these issues? The newsletter content always gets clipped when first opened. To see the content in its entirety, you have to scroll all the way to the bottom and click a button to open it all up. Is there a way to make all content appear without having to click to open it up? I'm sure many people don't realize this and therefore don't see the content that
      • Blueprint Issue - Being able to set a subform field as mandatory

        I'm creating a blueprint. My record involves a subform which is only shown once field is set but the field gets set in step two of the process. My problem - I can't save the record as the subform field is set to mandatory - If I unset the mandatory field,
      • Zoho connect manuals and workflows

        Is there any plans to allow workflows to be triggered from changes or edits to a manual? It would get us over the line for deployment if there was.
      • Customer Portal Users Metrics

        Hi, Is there any way to know who and when a specific customer portal user accessed? without having to use the metrics page.
      • Notebook stacks

        Hello, Are you planning to implement some kind of notebook grouping, similar to evernote stacks? I know that we can group notes inside of the particular notebook but for a lot of us it is not enough I belive. Sometimes that additional layer for organization
      • Multi Step Parallel Transitions for Blueprints

        We have two processes, that are sequential and can be done simultaneously inside of one module. For example: For order processing, we have to kinds of tasks: tasks that need to be done at the car directly (for example repairs) and tasks where the physical
      • Accessing Attachments in Zoho Recruit Extension for API Integration

        Hi, I am currently developing a Zoho Recruit extension to integrate with a third-party application. As part of this, I need to retrieve the attachment file from the current record and include it in an API request. However, I couldn’t find a relevant Zoho
      • CRM - QR Codes and Bar Codes

        Hi I am using CRM to run my service team - Asset maintenance business We need to move to and generate a QR code for each Asset we look after. And we need Bar code reading for the testing we do. (pre-bar-coded sample bottles are provided by the lab) Does
      • Mails to Deals

        Hi everybody. We are using ZOHO CRM connected to ZOHO Mail and we have a big trouble, which our ZOHO partner is not able to solve. Zoho CRM automatically connects received emails to last edited live Deal of the same Contact. For us this logic is very
      • How to check if the sum of number fields match 100%

        I have 12 fields (12 months) which contain a number. When I sum the fields in a formula field I see the total, but I want to be sure that the total is always 100 (%). How do I validate that, since you can't validate an formula field it seems.
      • How to Send Weekly Scheduled Emails of a Custom View

        Greetings, We have a custom view called "All Employee View" for the Employee form. We are able to manually export that view using the "Export" button: However, we want to programmatically export this view as an XLS file each week and send it in an email
      • Next Page