Fetch customized user inputs, store them globally at the app leve | Community | Zoho Projects

Fetch customized user inputs, store them globally at the app leve | Community | Zoho Projects

This data storage concept enables you to store data related to your extension for both entity properties and extension properties.

In our previous piece, we looked at how to store data for entities using entity properties. In this post, we'll look at an example of using extension properties effectively. Extension properties enable you to record data for an app in its entirety. Refer to this article on the limitations of extension properties for additional details.

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

Extension creation: We've created a new extension for Zoho Projects. Learn more about the steps to create an extension.
                                                                  

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!

Sign up for a Zoho Developer account and start developing extensions for Zoho Projects using Sigma.

SEE ALSO



    Access your files securely from anywhere


            Zoho Developer Community





                                      • Desk Community Learning Series


                                      • Digest


                                      • Functions


                                      • Meetups


                                      • Kbase


                                      • Resources


                                      • Glossary


                                      • Desk Marketplace


                                      • MVP Corner


                                      • Word of the Day


                                      • Ask the Experts



                                          Zoho Marketing Automation


                                                  Manage your brands on social media



                                                        Zoho TeamInbox Resources

                                                          Zoho DataPrep Resources



                                                            Zoho CRM Plus Resources

                                                              Zoho Books Resources


                                                                Zoho Subscriptions Resources

                                                                  Zoho Projects Resources


                                                                    Zoho Sprints Resources


                                                                      Qntrl Resources


                                                                        Zoho Creator Resources



                                                                            Zoho CRM Resources

                                                                            • CRM Community Learning Series

                                                                              CRM Community Learning Series


                                                                            • Kaizen

                                                                              Kaizen

                                                                            • Functions

                                                                              Functions

                                                                            • Meetups

                                                                              Meetups

                                                                            • Kbase

                                                                              Kbase

                                                                            • Resources

                                                                              Resources

                                                                            • Digest

                                                                              Digest

                                                                            • CRM Marketplace

                                                                              CRM Marketplace

                                                                            • MVP Corner

                                                                              MVP Corner





                                                                                Design. Discuss. Deliver.

                                                                                Create visually engaging stories with Zoho Show.

                                                                                Get Started Now


                                                                                  Zoho Show Resources


                                                                                    Zoho Writer Writer

                                                                                    Get Started. Write Away!

                                                                                    Writer is a powerful online word processor, designed for collaborative work.

                                                                                      Zoho CRM コンテンツ






                                                                                        Nederlandse Hulpbronnen


                                                                                            ご検討中の方





                                                                                                  • Recent Topics

                                                                                                  • Where can I transalte Next/Prev button in Card mode?

                                                                                                    Hi, I can't find a way to translate Next/Prev button in my form displayed in Card mode. I know it is possible to do that in standard form but how to do that in the card mode? Best regards Pawel
                                                                                                  • For Log a Call, "Call Type" menu needs more options, like "Left a message" and "Received a message".

                                                                                                    When logging phone calls, the "Call Type" menu is locked and only has 3 choices. Outbound, Inbound, and Missed. Since it is not limited to only IN or OUT, then it should have more useful options other than only "Missed". It is a locked system field. It
                                                                                                  • Possible to use REST API without a user to perform the interactive login?

                                                                                                    Hi, I am hoping to use the CRM API to push data into ZOHO CRM from our enterprise application. This may need to happen at any time of day and there could be a long interval between calls to the API. Also, there will not be a user triggering the request
                                                                                                  • How do I visibly display the Contact Unique ID on the Contact page?

                                                                                                    We've used Zoho's API to connect it to our website. The website keys off of the Zoho Unique ID for the contact. Because of this, it's important when merging duplicates to know what the unique ID is for the contact. Is there a way to display the Unique
                                                                                                  • Upload and embed a video into an article?

                                                                                                    How can we upload a video and embed it into an article? It is possible for images but this only supports image files. And don't say it has to be uploaded to YouTube, Vimeo or DailyMotion in order to embed it. We're trying to create company documentation
                                                                                                  • Multi-Select lookup field has reached its maximum??

                                                                                                    Hi there, I want to create a multi-select lookup field in a module but I can't select the model I want the relationship to be with from the list. From the help page on this I see that you can only create a max of 2 relationships per module? Is that true?
                                                                                                  • One editable subform entry to more than one parent record (of the same parent type)

                                                                                                    Is it possible for two records of Form A to share a subform B record? As in the subform B record shows up and is editable in both of the Form A records and when I create a form A record I can associate it with other form A records through deluge. I'm
                                                                                                  • Create and save user-specific filter views with Zoho Sheet

                                                                                                    The filters in Zoho Sheet have become even more collaboration-friendly. Previously, whenever you filtered any data, the filtered view will be updated for all the spreadsheet collaborators. This disturbed the data for others working on the same file. With this new update, you can apply data filters without altering the view for other collaborators in the file.   Collaborate with user specific filters   Let us say you are working on a sales report spreadsheet in real time with two remote colleagues. If
                                                                                                  • On-prem version of Zoho Desk

                                                                                                    Is there an on-prem version of Zoho Desk available for enterprise customers if we have additional aspects of security that aren't covered with current legal and data security terms?
                                                                                                  • Show my cost or profit while creating estimate

                                                                                                    Hi, While creating estimate it becomes very important to know exact profit or purchased price of the products at one side just for our reference so we can decide whether we can offer better disc or not .
                                                                                                  • How to add royalties in Zoho Books?

                                                                                                    Hello, I am a bit thick at the moment, but how do I add royalties I receive from, for example, Amazon? I do not invoice them obvs; they just pay (sometimes only pennies :-( ) How do I categorize them when trying to categorize the transactions? I really
                                                                                                  • Customer Fields Mandatory

                                                                                                    Hello, please give us the ability to make certain fields under customer information a mandatory entry. We sell engine blocks so it is important for us to have the customer's full name on the invoice so we can track who an engine was sold to, because engines
                                                                                                  • Recurring Events Not Appearing in "My Events" and therefore not syncing with Google Apps

                                                                                                    We use the Google Sync functionality for our events, and it appears to have been working fine except: I've created a set of recurring events that I noticed were missing from my Google Apps calendar. Upon further research, it appears this is occurring
                                                                                                  • Meeting integration with Otter.ai

                                                                                                    Would love for an integration with an AI transcription service like Otter.ai to be integrated with Zoho Meeting. Thanks
                                                                                                  • Overview on users IMAP settings

                                                                                                    We have about 30 users who all have the channels/email/email configuration/IMAP integration/O365 enabled and emails are synchronized. Here my problem: Passwords for the email accounts are expiring on individual bases and most of the users forget to update
                                                                                                  • Importing into Multiselect Picklist

                                                                                                    Hi, We just completed a trade show and one of the bits of information we collect is tool style. The application supplied by the show set this up as individual questions. For example, if the customer used Thick Turret and Trumpf style but not Thin Turret,
                                                                                                  • How to add a fee based on payment method

                                                                                                    I currently accept both ACH payments and credit card. I want to add a 3% fee to a number of my subscription plans if the customer chooses to use a credit card (and not ACH/checking). How do I do this? Is there an in-built feature, or would i have to create
                                                                                                  • Create Dashboard with information pulled from multiple modules?

                                                                                                    I am looking to create an overview dashboard for each account we have within the CRM. This will need to include information from Books, Bookings, Analytics (want to see the graphs). I am new to using Zoho but am trying to help streamline our processes
                                                                                                  • BUG ALERT: Client Script + Commands -> $Page contextual data is not updated

                                                                                                    When using the new Client Script Commands feature, there is an issue with the Client Script $Page contextual data not accurately being updated each time a Command is run. Assuming a Client Script Command called "Client Script Command Bug" with the following
                                                                                                  • Issue with TrialDays Disappearing When Editing Subscription

                                                                                                    Dear Zoho Support Team, I encountered an issue while editing a subscription in Zoho Billing, and I would appreciate your assistance in resolving it. Issue Description: I created a subscription with a future StartDate and set TrialDays > 0. The activation
                                                                                                  • Email > "IMAP - Inactive" notification: Notify Admin when disconnected

                                                                                                    Is there a way for an admin to get automatically notified when a connected email account becomes disconnected? For example: We use gApps for email and have connected it to the CRM. Sometimes, these email connections need to be re-authorised and the connection
                                                                                                  • CRM x WorkDrive: File storage for new CRM signups is now powered by WorkDrive

                                                                                                    Availability Editions: All DCs: All Release plan: Released for new signups in all DCs. It will be enabled for existing users in a phased manner in the upcoming months. Help documentation: Documents in Zoho CRM Manage folders in Documents tab Manage files
                                                                                                  • CRM Hack #2: Automate sending of birthday greetings to your customers.

                                                                                                      Hello everyone! What sets you apart as a sales person is your ability to add that personal touch to your business relationship with your customers. Sending a gift on a special day, or leaving a note wishing them on their birthdays, are small, yet significant actions that show your customers that you care. And these are actions done without any expectations :) You must be engaging with a lot of customers and it is highly unlikely that they all are your friends on Facebook or some social channel,
                                                                                                  • Re-emphasizing the importance of Domain Whitelisting in ASAP's JWT Authentication Mechanism

                                                                                                    The problem We discovered a security vulnerability related to using OAuth tokens in non-whitelisted domains and have reinforced our security measures. If you experience any request failures in the authorized domains, please verify that they are whitelisted
                                                                                                  • Restrict Announcement Pop-ups to Administrators in Zoho Desk

                                                                                                    Dear Zoho Desk Support Team, We are writing to request a feature enhancement that would allow organizations to restrict announcement pop-ups to administrators only. Currently, announcement pop-ups are sent to all users within a Zoho Desk organization,
                                                                                                  • Adding Markdown text using Zoho Desk API into the Knowledge Base

                                                                                                    Hi Zoho Community members, We currently maintain the documentation of out company in its website. This documentation is written in markdown text format and we would like to add it in Zoho Knowledge Base. Do you know if there is REST API functionality which is able to support this operation ? Thank you in advance, Leandros
                                                                                                  • we can assign ticket to offline users

                                                                                                    we can assign ticket to offline users
                                                                                                  • Contact info for the sales team

                                                                                                    Hi, My employer is currently going through a merger, as part of the process, we need to decide which service we go for, for use as our IT ticketing system. As my team already use Zoho Desk and are familiar with using it, I'd like to carry this over into
                                                                                                  • Add StatusIQ Tab to Zoho Desk for Seamless Incident Management

                                                                                                    Hi Zoho Desk Team, I hope you're doing well. We would like to request the addition of a StatusIQ tab within Zoho Desk, allowing support agents to seamlessly view and, with the appropriate permissions, manage incidents in Zoho StatusIQ directly from Desk.
                                                                                                  • Linking an email to a Contact when the email is sent in deluge via sendmail

                                                                                                    The "to:" address in this code is a CRM Contact. Email address is forced unique in CRM This sendmail gets sent via a workflow which is in a custom module. It works, except that the outbound email does not appear (i.e, get linked to) the Contact such that
                                                                                                  • Is there a way to programmatically open the zoho business chat?

                                                                                                    I'm integrating business chat into my website. Is there a way to programmatically trigger opening the chat?
                                                                                                  • Customer Support Portal

                                                                                                    Hi, As I am dealing with and waiting for help with a serious Zoho Mail issue, I tried to submit requests and manage my requests by logging into the Customer Support Portal, but it keeps saying that I do not have a valid email address and cannot login.
                                                                                                  • Live Chat API

                                                                                                    Is your Live Chat available through API. For instance am I able to use your API to grab a Live Chat so I can configure my PBX to call that API and allow the Live Chat to ring to our phone system ?
                                                                                                  • Zoho Learn

                                                                                                    Hi Support I can not seem to be able to load media on Zoho Learn it keeps buffering and not responding. Please assist.
                                                                                                  • Announcement integration between Zoho People and Zoho Connect

                                                                                                    As we're using these 2 products, there're areas of overlapping especially in the Announcement. When there's a new announcement in Zoho People, can it push to the company wall in Zoho Connect?
                                                                                                  • Zoho Creator Get Records Integration Task

                                                                                                    Trying to use Zoho Creator's Get Records integration task to fetch records from a specified report in Zoho Creator: https://www.zoho.com/deluge/help/creator/get-records.html However, I continue to receive a code 2894 error saying that the report is not
                                                                                                  • How to export customer contacts from Zoho desk

                                                                                                    How to export customer contacts from Zoho desk
                                                                                                  • New in WorkDrive: WorkDrive Genie, a quick-editing app for desktop (Beta)

                                                                                                    The WorkDrive Genie app lets you open and edit any of your WorkDrive files on the web with your default desktop applications. For example, you can open and edit files such as documents, images, and videos with Microsoft Word, CorelDRAW, and Adobe Premiere
                                                                                                  • Internal Notification Email contact fields

                                                                                                    Whenever a new customer is added in Books we add the contact to Campaigns. This is easy to do via sync. We need to send an internal email when the contact is added in Campaigns. This is also easy to do with "Internal Notification Email" automation. Question
                                                                                                  • Zoho Books | Product Updates | January 2025

                                                                                                    Hello users, Now that January is over, here are some exciting updates to make this new year even better. We’re back with new features and enhancements in Zoho Books, including comparing fields as criteria in workflow rules and a custom SMTP integration.
                                                                                                  • Next Page