This data storage concept enables you to store data related to your extension for both entity properties and extension properties.
Scenario
Let's say that as a developer you want to gather feedback/reviews through your extension. In general, reviews and feedback help you gain insights into users' perspectives.
When designing a review/feedback template, using a standard question with predefined options will restrict the feedback/review process to certain specific standards/requirements. However, your clients may use Zoho Projects to manage a variety of businesses, each with its own set of processes tailored to the needs of that company.
What can you do to standardize and streamline this process for all clients?
It would be beneficial to create a standard feedback/review template for your customers and then enable them to customize the question and its options to meet their own company feedback requirements.
Goal: Create a generic feedback/review template that enables clients to provide their personalized inputs to customize the review/feedback question per their company needs.
Solution
To accomplish this goal, we'll incorporate both entity and app data storage—as well as a few other capabilities—into our extension. Let's look at the features and steps we'll be taking to develop this example.
- First, we must gather the question and options that the user wants for their feedback/review form. To accomplish this, we can create a bottom navigation bar widget called "Feedback or Review template settings" that enables the user to provide their personalized feedback/review question along with its options as input. We can accomplish this using the widgets approach explained earlier in this post.
- Next, we must save the values the user provides for the question and options. We can accomplish this by using the data storage extension properties, which will store the data and make it available across the app/extension. (Now that we have the values stored for the entire extension/app, we can retrieve the data and access it across the necessary entities.)
- In our example, we want to collect feedback/reviews from users for the tasks and issues entities. For this, we can create a widget called "Feedback or Review" in the details page of the task and issue entities, respectively.
- In this widget, we must populate the question with the options the user previously provided as part of the "Feedback or Review template settings" widget. We can accomplish this by retrieving the previously saved details and displaying them in the relevant entities (tasks and issues, in our example).
- Once we've displayed the question and options to the user, they can select an option to provide feedback or a review for the entity they're working on.
- Furthermore, we can save the user's option selection and associate it with the entity. This will enable us to display the previously selected option for that question each time the user accesses the "Feedback or Review" widget, which we can accomplish using the data storage-entity properties concept.
Required components
- An extension configuration process includes the following:
- Creating an extension.
- Configuring the plugin manifest.
- Setting up the widget code.
- Bottom navigation bar widget (top_band): Enables the user to input their customized values for the feedback/review template's question and its options.
- Task details tab widget (task_tab)/Issue details tab (issue_tab): Enables us to fetch and display the value the user enters for the feedback/review template in the respective entities.
Let's explore these components now.
Extension configuration
Plugin-manifest.json configuration: Once we created the extension, we configured the plugin-manifest.json file to include the widgets. For a more detailed understanding of how to configure 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 screenshot below.
Note: We'll have to set the storage key to true in order for storage space to be allocated in the Zoho Projects product for this extension. By default, the value will be false.
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 feature.
Feedback or Review template settings widget (Bottom navigation bar - top_band) - Enables us to gather personalized user input for the feedback/review template. Please find the index.html code snippet attached in the post.
- In the code snippet above for the bottom navigation bar widget, the user is presented with two text boxes: one for entering their customized question for feedback/review and the other for entering their customized options, each separated by a comma.
➤ The
app.store method in the extension properties is used to store this data against the extension in the form of key-value pairs.
➤ The values for the question and options are constructed as a JSON object and then stored against the key "storedappvalue" using the app.store method.
Note: For user-entered options separated by a comma, these options are converted to an array using the split() method, with the comma serving as the criteria, and then stored against the key.
➤ Finally, when the values are successfully stored after clicking the Add button, the
zohoprojects.invoke method is used, and the user is notified with the alert "Data added".
- Additionally, every time this widget loads, the data stored at the app level in the key "storedappvalue" is obtained using the app.retrieve method.
- From this retrieved value, any previously stored data against the key "storedappvalue" is removed using the app.remove method.
- This is done because whenever a user wishes to change their feedback/review question and options, the new data will be added and stored against the key as well. Since we require the newly entered values to be displayed as part of our "Feedback or Review" widget in the tasks and issues entities, the previously stored data is removed, and the new values entered are stored against the key upon clicking on the Add button.
Feedback or Review widget (task details tab - task_tab) - Displays the feedback question and options and enables the user to provide feedback for the entity they're working on. Please find the Taskfeedback.html code snippet attached in the post.
- In the code snippet above—for task/issue details tab—we're first retrieving the value stored against the extension (in the bottom-band navigation bar) by invoking the app.retrieve method using the key "storedappvalue".
- From this retrieved value, we fetch the question and its options. The options for the question are displayed in the widget in radio button format, which enables the user to choose one option for the feedback/review question.
- Once the user chooses an option and clicks the Save button, the data is saved using the entity properties in data storage feature.
➤ Here, the selected review option (selectedreview) value and its index position (selectedoptionnumber) in the radio button element are stored using the
entity.store method. We use entity storage here since this value chosen is specific to the entity the user is working on.
- Every time the widget loads, the chosen value stored using the entity.store method is retrieved using the entity.retrieve method and checked against the radio element options. This allows the chosen value to be enabled and displayed to the user every time the widget loads.
We can use the same snippet across the issue entity as well.
Now that we've completed the setup for both the widgets and have all the extension components ready, let's go ahead and see the output.
Sample output:
This example demonstrates how to efficiently use data storage for extension properties. The data stored against an extension/app can be retrieved across multiple entities to perform logical functions. Additionally, in this example, we also witnessed code reusability across multiple entities. You may enhance this example by incorporating more than one feedback/review question.
In this way, you can use extension properties to store data across an extension/app. We hope you found this information useful. Follow this space for more insights!
SEE ALSO
Recent Topics
Track Contact's Employment/Account History
Thank you in advance for all of your help! Is there a way, within Zoho, to keep track of a contact's employment history? For example, if John Doe is my contact at Account 1, but leaves the company and is hired by Account 2, can I... ...maintain John Doe
CRM became very slow
Plz check asap. image failed to upload , workflow doesn't run
ZohoCRM Workflows Not Triggering After Tool Recovery
I noticed that ZohoCRM experienced an issue earlier, and according to the status webpage (https://status.zoho.com/), all tools were reported to be fully restored as of 03:00 (PST) on December 30, 2024. However, ZohoCRM workflows are still not triggering
API to post drafts for social media
I we want to post draft posts to our zoho social account and then approve and schedule them within Zoho social. is this possible with for example: https://apis.zoho.com/social/v2/post TIA Jon
What do the color presents represent on the parts of the website?
I would like to customize my color palette, but I have no idea how each color relates to the parts of the website. It is labeled as uno, duo, trio, etc... Could somehow tell me how they're related or name them more intuitively? Thanks
Switch to enable or disable sent notification when close a ticket
Some time you need to turn off the notification email on closing a ticket. But the only way is in the Settings of Zoho Desk. It would be great to have a switch in the ticket just to disbale for once the notification mail when close the ticket.
Deluge upload to upload file field
Trying to upload a file to a field type Upload File. I believe I have most correct. I have a merge and download from writer. I have this same script in many other functions and it works fine. I then upload the file to ZFS and get a success response However,
Alternatives to using multi-select lookup field for a 1-many module relationship?
I have 2 modules where I only need multi-select lookup option on one of them and the other always has a 1-1 relationship. Do I have to use a multi-select lookup field in this case? Is there another way to solve this? Am asking because I've hit the limit
O que é o Code Studio no Zoho Analytics?
Olá Pessoal, Colocando um pouco de informação sobre uma feature do Zoho Analytics chamada Code Studio. O Code Studio é: Funcionalidade que permite desbloquear recursos de Data Science e Machine Learning (DSML) no Zoho Analytics. Utiliza código Python
Sobre qual tema você gostaria de falar em 2025?
Olá Pessoal, Quais temas que gostariamos de explorar em 2025? - Zoho CRM Customizações Básicas - Zoho CRM Funções Personalizadas - Zoho Desk Básico - Zoho Desk Avançado - Zoho Analytics - Zoho Creator Deixe a sua opinião
Sobre qual tema você gostaria de falar em 2025?
Olá Pessoal, Quais temas que gostariamos de explorar em 2025? - Zoho CRM Customizações Básicas - Zoho CRM Funções Personalizadas - Zoho Desk Básico - Zoho Desk Avançado - Zoho Analytics - Zoho Creator Deixe a sua opinião
Automatic Updates for Zoho Desk Extensions
Dear Zoho Desk Team, I hope you're doing well. We would like to request the addition of an automatic update feature for Zoho Desk extensions. Currently, updating extensions requires manually searching for updates and clicking the update button. This process
Contemplating moving my site from WordPress to Zoho Sites
Hi Everyone, We currently find ourselves in a situation where we ant to review and update our current sites content. We are small business owners, not developers. We currently use a wide range of Zoho products. We sometimes think about the possibility of either moving or just starting from scratch on Zoho Sites. I would like to know if anyone has done this and of course the things that need to be considered. We have spent quite a bit of time getting our current site positioned organically and I guess
How to view all departments on one dashboard or ticket view?
Hi guys, We've just started using Zoho Support and found a very weird quirk. It seems that you need to click into each deparment to view the new tickets instead of just seeing a global dashboard of all tickets across all departments. Seems very odd, is this correct or are we missing something? If this is currently not possible, can someone from Zoho let us know if a global dashboard view is going to be developed soon? How soon? This is going to be a dealbreaker for us as we have lots of departments...
Is Drawing feature supported in zoho Sheets?
Is there any option to draw arrows and some basic shapes such as circle , rectangle etc in zoho sheets? if so, can someone help me find it
Conexion CREATOR x CRM
Buenas tardes, Tengo un problema con un código que crea un registro en CRM. Revisé el CRM para eliminar los campos obligatorios, pero cuando ejecuto el programa, aparece el siguiente mensaje de error: {"code":"MANDATORY_NOT_FOUND","details":{"api_name":"data"},"message":"required
Is there a way to sync Tags between CRM and Campaigns/Marketing Hub?
I wonder if there is a way to synch the tags between CRM and Marketing-Hub / Campaigns?
IP Addresses for Whitelist
Hi, Where can I get a list of the IP addresses I need to whitelist for accessing Zoho Desk? TIA
We would like to make a separate, internal-only knowledge base. Is it possible to have a public department but not display it in the help center?
It seems like it is not possible to display/hide the knowledge base from the help center per department. Is there a way to do this? It looks like all department knowledge bases are displayed if they are public, and there is no way to hide one from the help center while keeping it accessible via a permalink URL. For example, lets say I have one KB for Clients and one for Employees. I want to keep my Clients KB public, and also want the Employees KB to be public, but NOT displayed in the help center.
Template Email Reset Password
Hi It is possible to customize the email that comes to a Customer Portal user? It comes in English and need this in Spanish. Esteban Elias Preventa Tecnica - Educacion Xpears.com
URL_ROLLING_THROTTLES_LIMIT_EXCEEDED
Hello, for several times now we are getting URL_ROLLING_THROTTLES_LIMIT_EXCEEDED in the Failure tab. What does it mean, and how can we solve this? Thanks, M.
Link Purchase Order to Deal
Zoho Books directly syncs with contacts, vendors and products in Zoho CRM including field mapping. Is there any way to associate vendor purchase orders with deals, so that we can calculate our profit margin for each deal with connected sales invoices
Possible to customise list of file attachment options?
Is it possible to customise (disable/remove) the list of file attachment options (see screenshot below)? I would like the users to only use the options "Link (URL)" and "Other Cloud Drives". I have super admin rights to customise the CRM.
Automating CRM backup storage?
Hi there, We've recently set up automatic backups for our Zoho CRM account. We were hoping that the backup functionality would not require any manual work on our end, but it seems that we are always required to download the backups ourselves, store them,
Invoices with billable time and expenses
I cannot seem to get a straight answer. We are looking to create an invoice to send to our clients, but it needs to have the following on it: 1. Billable hours for each employee. All hours for the pay period on one line, by employee. 2. Expenses for each
Adding custom_field to the items when creating item groups
I am migrating products from my existing db to zoho inventory. So when grouping the products and creating items with the groups, I want to store my old skus in custom_field to be able to trace back the products. Isn't it possible to add custom_fields
URL for downloading uploaded file - THE SOLUTION
Hi, I would like to share the solution for downloading uploaded files using url. There is no documentation for it and there are multiple forum threads with old solutions that didn't work for me. Here is the updated url - tested and works! fet = form_name[ID
All Tasks Queued for Last 3+ Hours
How does one resolve this? All of my tasks, from many different Flows, are stuck in the "Queued" status. This is interrupting my business processes, which depend on the timely execution of automations.
Why can't I connect to the software suddenly? Network error, internal error, unable to contact you
Why can't I connect to the software suddenly? Network error, internal error, unable to contact you
Incorrect Closing Stock Amount value
Act as Zoho Inventory Expert. We are a construction company, OVAL Projects Engineering Limited. We started using Zoho Inventory for Stock Management.I have multiple warehouses. I have encountered a problem while generating custom warehouse wise inventory
Auto Generated Invoice number YEAR
Auto Generated Invoice number shows transaction year as 25 even though it's 24 still.
The Social Wall: December 2024
Hey everyone, As the year comes to an end, and the festive spirit fills the air, we're thrilled to bring to you the final edition of the Social Wall for 2024. Let's see what updates went live during December, and then go on with planning the new year!
Not displaying a newly created window within an application
On a specific stock trading application (see image below), when a newly created full screen operation is invoked (File->New) oft times it is invisible (the mouse input is correctly routed to the new window but the hover over contents shows the invisible
Last payroll of the year gives me an error
Trying to run the last payroll of the year. The payment doesn't get to the employee until 1/1/25, which is correct. However when I try to process it I get the following error: Tax calculation is not supported for the year 2025. Please change the Pay date.
Global Outage - Please Update Current Status
It looks like Zoho Mail services are down everywhere. Please update with current status and time-to-resolution.
Is the filename of an attachment restricted to only certain languages?
Hi, I tried to create a file card in a notebook, but I encountered an issue: when the filename of an attachment is in languages other than the main ones (such as English, Japanese, or Simplified Chinese......), syncing stops or the filenames become garbled
Odd Authorization warnings
I'm a superadmin for Zoho One and double-checed that I was an Admin role in Teams. Every once in awhile, I'll get a strange notification that I can't do something (usually deleting something although I am under the 250 thread limit). Is there somewhere
Zoho und die Art, Dinge zu tun
Zoho und die Art, Dinge zu tun Ich habe Zoho seit über zehn Jahren in verschiedenen Projekten implementiert – einige groß, andere sehr groß – und habe sogar für einen der weltweit führenden Zoho-Partner gearbeitet. Jedes Mal, wenn ich ein Zoho-Implementierungsprojekt
Free webinar: Zoho Sign 2024 wrap-up - Everything that is new and has changed
Hello, Are you looking up to catch up on all the updates made to Zoho Sign in 2024? Or are you still figuring out how you can use Zoho Sign better to get business paperwork done more efficiently? If so, we invite you to join us this Thursday, December
View of all Leads (+converted)
Hi, Is there a View of all Leads this month includung converted? If not how can I create one? Thanks
Next Page