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
Recipient accidentally added to ticket?
One of my users copied email text from a client into the description of a new ticket. The ticket was intended to be for internal use only, so imagine our surprise when he received an email notification, replied, and his reply was added to the ticket!
How to link to/displaya png stored in workdrive in a Creator HTML snippet?
How to link to/display png stored in workdrive in a Creator HTML snippet? I've tried it as a plain external link and as an iframe. The iframe works but is kinda slow...and I'd prefer to be able to do finer-grained positioning but referencing the png as
Limit excceding issue in zoho creator
I am transferring data from Zoho Books to Zoho Creator using a Deluge script. However, I am frequently encountering a "limit exceeding error," which seems to be related to the Deluge statements limit. I reached out to Zoho Support, and they informed me
Zoho Creator Integration with QuickBooks: A Step-by-Step Guide
Introduction: Integrating Zoho Creator with QuickBooks allows you to sync your business data between the two platforms, providing a seamless experience for managing accounting, invoicing, and financial data. This integration helps automate workflows and
Zoho Advanced Session audit is hogging RAM
Hi! I've been noticing an issue with Zoho Unattended where it occasionally takes up a lot of the RAM on our computers. It's causing issues for me on PCs that are alreayd low on RAM. Does Advanced Audit have to be disabled for our entire organization to
Issue with Blueprints in Zoho Desk
Hello, I’m experiencing an issue with Blueprints in Zoho Desk. I have some Blueprints that haven't been modified since July 28, 2023, but they suddenly started having issues. In some cases, it’s not possible to move to the next stage; when clicking the
WHMCS Integration
Hello, I was hoping that someone might be able to help me with this one. We use Zoho Desk for support tickets for a couple of companies. One of them uses WHMCS for client billing, payments etc. One area of WHMCS that we do not wish to use is the in-built
INVALID_OAUTHTOKEN using Self Client Access Token (Android)
Hi, I using the Zoho Android Demo app to try to evaluate Zoho Assist. https://github.com/zoho/Assist-Customer-Android-SDK-Demo I am successfully able to get an access token by POSTing the generated code from Self Client via POSTMAN. scope = ZohoAssist.sessionapi.ALL
Reorder Point trigger for custom action
Is there a way to trigger workflows when stock on hand reaches an item's Reorder Point? Requirement: When stock on hand for an item reaches the reorder point, a Purchase Order is created with the concerned item in it, and its quantity is based on a custom
Introducing a Refreshed Design To Enhance Your Zoho Books Experience
Hello users, We are excited to bring a refreshed design along with enhancements to the user interface in Zoho Books. You might have already noticed the new color themes with redesigned icons in your Zoho Books organization. Here’s everything you’d want
HOW CAN I ADD A PDF OR ANY FILE DOCUMENTO ON A CELL FROM MI C: DRIVE PC WITHOUT A WEB STORAGE LINK
I want to add a PDF file reports on a ZohoSheet Cell but i dont know how. I can add images but not files. Can you help me? Thanks a lot.
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
Where can I find my documents
I am evaluating solutions to store text documents. I once created one text document on zoho and worked on it. I came back to zoho a few weeks later. Impossible to find it again. Is there a web page containing my documents or my folders? How can I retrieve
way to change the interface language (e.g. to English) in the whole Zoho One ecosystem at once
Hi everyone. I had a need to create a new Zoho One account for a new company. However, since I did it from Germany, I have defaulted to German language in Zoho One interface (in all apps). Can you please tell me if there is a way to change the interface
Holidays and celebrations: Unveiling SalesIQ's seasonal theme!
The holiday season is upon us, and we are feeling all the more merrier at SalesIQ while we unveil this seasonal update. Get ready to sprinkle some holiday magic onto your websites with SalesIQ's new seasonal theme. This new festive theme will provide
Allocate emails to user in a shared mailbox
Hi, This might be obvious, but I cannot find the answer. I have 3 shared mailboxes so any team member can see the emails. Is there a way of allocating a specific email to a user so that it is their responsibility to deal with it? Thanks in advance.
Function not working if more then 1 Record is selected
Hi there! I have a function like this: string button.PCS_TempDruck_Rechnungen(string Modul, int ID) { //Do some stuff here return "finish" } I linked this function to a button in the List View and Mass/Multi-Action of the Quote Module. Arguments: Module
Incoming call logging in Bigin
Request support on how can we log calls on bigin which are incoming. This is one of the very critical requirements for us
Assistance with Setting Default Values for Zoho Chat Custom Fields
I am currently using the Zoho Chat JavaScript API to successfully add custom fields to the chat interface. While the implementation of these fields has been smooth, I am now looking to set default values for these custom fields. However, I couldn't find
Unable to delete Junk Lead and Not Qualified from the Lead Status field
Are Junk Lead and Not Qualified default fields or something that cannot be deleted? I have gone into the Leads module and made sure there are no records using these values. Other values have a minus sign that allows me to remove them, but these two fields do not have that option.
Adding Product Photos through Import or In Bulk
I am about to add about 1000 products in the CRM. I am shocked that there is no way to add product photos through the Import feature. I'll be spending days adding product photos.... Very dissapointing. Anyone know of a work around to add product photos
Modules are continuously loading
Hi! We are not able to open the task modules, it keeps continuously loading
Customer Happiness not clickable when using API
Is there a way to automatically add the Customer Feedback links when generating email drafts via the API? Currently, the feedback links are only added when generating an email draft using the UI. I tried using the endpoint described in https://desk.zoho.com/DeskAPIDocument#CustomerFeedback#CustomerFeedback_Getthecustomerfeedbackplaceholderlink
Transitioning FESCO Bill Project to Zoho Sheets and Integration Options
Hello Zoho Support, I'm considering transitioning my FESCO bill project from Google Sheets to Zoho Sheets and wanted to know if there are integration options to seamlessly migrate our existing work. You can view our platform here, any guidance would be
Email Alerts for New Audit Log Entries in Zoho Desk
Dear Zoho Desk Team, The Audit Log feature in Zoho Desk is a fantastic tool for tracking changes and ensuring transparency in the helpdesk. However, to make this tool even more effective, I’d like to request an enhancement. Currently, there is no option
Zoho Desk Validation Rule Using Custom Function
Hi all, I tried to find the way to validate fields using custom function just like in Zoho CRM but to no avail. Is there a way to do this?
Free user licenses across all Portal user types
Greetings everyone, We're here with some exciting and extensive changes to the availability of free user licenses in CRM Portals. This update provides users with access to all Portal user types for free to help them diversify their user licenses and explore
How to easy change layout in existing records in Deals?
Hello, So far i have used only 1 layout in Deals. I have about 1000 records. Now i want to make new layout. So i have 2 layouts: Layout Old (1000 records) Layout New (0 records) How to easy change layout from Layout Old into Layout New for existing records?
Changing Color Theme of Guided Conversations
Hello, We have recently added Guided Conversations to one of our websites, but I am wondering if there is a way to customize the color scheme so it matches the appearance of the website? Thank you in advance!
Length of Call
Whenever we place a call from the CRM and we click to log it, the duration / length is not automatically populated. Can you set this up to occur? Thanks!
Tip #10: Automatically add tags to Zoho CRM records using form responses
You may be using tags to filter records, create reports based on specific tags, or let your sales team to know which clients to give priority to. Don't skip tagging for the crm records added via forms. The tags can be set to be automatically captured during the form submission. How it works When you set up a configuration to push form entries into CRM, you can add a tag to them automatically. The tag value can vary based on the respondent's input (captured using form fields), or you can include a
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
Using AVG in SQL Query
My current SQL Query is: SELECT "Client Info", avg("Revenue") FROM "Funded Deals" GROUP BY "Client Info" The current table that this is creating: Client Info avg(Revenue) Previous 4175 1st - New 3411 1st - Old 3013 Renew 3069 While this works as I had
Pay Contractor Timesheets
I have contractors that fill out a timesheet. Each hour must be assigned to a current client. I need the easiest way to get the contracts paid. They are paid on an hourly bases. How can this be done?
OAuth with Bubble.io API Connector does not work although it is working in Postman
Hi, I am new to API programming but have successfully connected Google and Asana with the Bubble.io API connector. Also I have setup Postman and can access Zoho APIs successfully e.g. Projects. Scope used is: ZohoProjects.tasks.CREATE ZohoProjects.tasks.READ
Foreign Currency Bank Account
I have a bank account in USD zero balance but when i run the bank ledger in my company currency in AED it was shown small balance 1.31 AED , how to make it zero also ,Thanks
How do you handle existing customers/contacts?
Hi, We just integrated MA 2.0 with our CRM and we chose to only import our existing customers contacts. In MA they are all "Raw leads" by default and we would like to mass update these to a stage called "already customers" but the last default stage "Sales
The email address you have entered belongs to a different deployment/region.
Hi, I am trying to create the user - mprust@crombiecomputers.co.uk but keep getting the message below - The email address you have entered belongs to a different deployment/region. Please contact support@zohoaccounts.com for assistance. Look forward
Notes from Custom Modules linked to Account Modules
The way our ZOHO CRM is set up at the moment, whenever a note is entered under a Task or Event the note is visible under both the Task or Event as well as in the notes section under the Account the Task or Event is associated or related to. I have a couple
UI / UX Suggestion: Allow Users to Set Colors of Flow Steps
For those of us who set up complex Flows, it would be nice to be able to color-code different paths / branches for easier future interpretation or troubleshooting. This could take a variety of forms, either highlighting the textual name of the step or
Next Page