Imagine you're a developer who wants to gather feedback from users through your Zoho Projects extension. Instead of using rigid, predefined questions, you need a flexible system that allows customization to fit various business needs. Here's a streamlined approach to achieve this.
Your goal is to create a customizable feedback template. This allows each client to tailor the feedback questions and options to their specific requirements while maintaining a standard structure.
To build this system, follow these steps:
Develop the Extension: Start by creating a new extension for Zoho Projects.
Configure the Extension: Edit the plugin-manifest.json file to include necessary widgets and enable storage space by setting the storage key to true.
Set Up Widgets:
Feedback Template Settings: Add a widget in the bottom navigation bar where users can input their custom feedback question and options. Store these inputs using the app.store method in extension properties.
Feedback Widget in Entities: Add a widget in the task and issue details pages to display the feedback question and options. Users can select an option and save their feedback using entity.store.
Implementation
Collecting Inputs: Users enter their custom feedback question and options in the bottom navigation bar widget. This data is stored at the extension level.
Displaying Data: The feedback widget retrieves the stored question and options, displaying them as radio buttons in the task or issue details pages.
Submitting Feedback: Users select an option and save their feedback. The selected option is stored at the entity level, linking it to the specific task or issue.
Persistent Display: Each time the feedback widget loads, it retrieves the saved feedback, ensuring the previously selected option is displayed.
Example Output
The customized feedback question and options are displayed to users, allowing them to provide feedback, which is then saved and consistently shown across tasks and issues.
This method showcases the efficient use of extension properties to manage data storage across an app, ensuring both flexibility and consistency. Additionally, it demonstrates the reusability of code across multiple entities, making your extension more efficient and user-friendly.