In our last post, we detailed the steps involved in creating a custom action and the workflow from the developer and end user's side. Now let's look at a working example of how we can create a custom action and implement it in a Zoho CRM account to make the end user's work simpler.
You are a sales representative (the end user/extension user) handling cases and their solutions in a Zoho CRM account. While cases may arrive by phone, web, or email, you must log them with basic information, such as the subject, description, and priority.
Issues are typically recorded in cases modules using the Subject field, which contains a brief description of the problem. You may discover an immediate solution to the issue while manually logging the cases. In those cases, you must still manually feed the solution into the Solution field. How convenient would it be if the solution for a case could be auto-populated when a case with a common issue arises? We can streamline this process by creating a custom action.
Note: Throughout the following example explanation, the terms "sales representative", "end user", and "extension user" can be used interchangeably, but refer to the same person. The sales representative is the end user who installs and makes use of the extension features in their Zoho CRM account.
Create a custom action as part of extension development that includes a custom UI for obtaining personalized solution inputs and an action that will update the solution in the Solution field of a case. After installing the extension, the end user can simply create workflows and associate the custom action with them.
Because the sales representative who installs the extension will be dealing with the cases in their Zoho CRM account, they can easily create different workflows. Each of these workflows can be assigned criteria so that when the Subject field contains specific keywords typically used by the sales representative while logging, the custom action updates the personalized solution provided as part of that workflow custom action.
Let's go over the steps in order to achieve this.
- Create a custom user interface (widget-connected app) that allows the user to enter their personalized solution inputs.
- In the Zoho Developer console, create a custom action.
- Associate the custom UI to the custom action.
- Define an action that performs the function of updating a case's Solution field.
- Create workflows (as an end-user perspective that meets specific subject criteria (e.g., if the subject contains keywords like "widget," "not," and ''loading," then set a personalized solution in the case) and associate a custom action to them.
Creating a custom UI to obtain an end user's personalized solution inputs
- Create a custom UI to retrieve the end user's personalized input for the solution field and later be updated in a case based on the workflow the user creates.
Case handling.html code snippet
<html>
<head>
<link rel="stylesheet" href="../css/style.css">
<script src="../js/lib/zsdk.min.js"></script>
<script src="../js/custom.js"></script>
<script src="../js/jquery-min.js"></script>
</head>
<body>
<input type="text" id="solution" placeholder="Solution..."><br>
<button type="submit" class="submit_button" onclick="Util.save()">Save</button><br>
<script>
$(document).ready(function(){
ZOHO.embeddedApp.init();
});
</script>
</body>
</html>
|
|
Case handling.js code snippet
Util={};
Util.save=function()
{
ZOHO.CRM.ACTION.setConfig (
{
Caseid: "${!Cases.Id}",
Solution : document.getElementById("solution").value
})
}
|
|
- The above javascript code snippet will fetch the current case's ID and set it to a variable "Caseid". The end user's inputted solution through the UI is also set to a variable "Solution".
- These values will be passed as parameters to the custom function that will be associated with the custom action in the coming section.
Creating a custom action
1. Create a custom action called "Casehandling" using the Create an Action button under the Custom Actions option, available in the Components section of the Zoho Developer console.
2. Provide a name for the custom action and a description if necessary. Click Next.
3. Associate the custom UI created earlier with the custom action by specifying the html page of the widget's connected app. Click Next.
4. Then write a Deluge function to perform the desired action by clicking the Create Function button. As shown on the right hand side of the page, the values obtained in the custom UI earlier will be passed as a JSON object parameter to this Deluge function, and then the functionalities can be performed based on these inputs from the custom page.
Case handling Deluge function code snippet
caseinfo = {"ID":config.get("Caseid"),"Solution":config.get("Solution")};
response = zoho.crm.updateRecord("Cases",config.get("Caseid"),caseinfo); |
- The above Deluge code snippet uses the current case ID and the solution input by the end user through the UI to update the personalized solution to the Solution field of the case using the updateRecord deluge task.
- Click Save to save the custom action.
Now that the functionality is defined, the extension can be published and installed.
Creating workflows in Zoho CRM as an end user
1. As an end user, install the extension.
2. Now create a workflow using Setup->Automation->Workflow rules. Create workflows for two commonly arising cases so that, as an end user, you can predefine some personalized solution inputs for these common cases. This will thereby update the solution to the case when the workflow criteria is satisfied. The two sample workflows handled for this example are:
When a widget is not loading or a 404 page not found occurs in the user's Zoho CRM account.
When a connector unauthorized error occurs.
3. First, define a workflow for "Widget not loading" case by specifying the when and condition criteria.
4. Now under "instant actions," you will find the custom action installed as part of the extension. Associate the case handling custom action with this workflow.
5. Enter the personalized solution in the custom UI displayed.
6. Go to the Cases module. Log a case with the Subject field, satisfying the workflow criteria.
This automatically updates the Solution field with the predefined solution entered by the end user for this workflow.
Similarly, you can create multiple workflows for different cases for which you can define predefined solutions to make the case logging process easy.
In this way, you can use custom actions to ease the end user's work by reusing templates created for them. We hope you find this information useful. Keep following this space for more insights!
SEE ALSO
Recent Topics
Hide Inactive Social Sign-In Providers from Login Screen
Hello Zoho Team, We hope you are doing well. Currently, Zoho One allows admins to configure security policies and enable or disable Social Sign-In options for third-party providers such as Apple, Google, Microsoft, LinkedIn, Yahoo, Twitter, Facebook,
[Free Webinar] AI Agents in Zoho Creator - Creator Tech Connect
Hello Everyone! We welcome you all to the upcoming free webinar on the Creator Tech Connect Series. The Creator Tech Connect series is a free monthly webinar that runs for around 45 minutes. It comprises technical sessions in which we delve deep into
Download All Attached Files
It would be extremely useful to have "download-all" functionality for downloading files attached to a task, subtask, comment, forum post or hosted in the "Documents" section etc. We've instructed our users to zip multiple files prior to uploading, but of course they forget all the time. Having to download lots of files one-at-a-time off a comment or task wastes a lot of time.
unable to send message reason 554 5.1.8 Email outgoing blocked
unable to send message reason 554 5.1.8 Email outgoing blocked
Ship via Carrier Not Working Since Commerce Update
Since the recent update to the Commerce platform, I can no longer use the ship via carrier function. It will take me to the address screen and let me verify them but when I go to save and move tot he next screen it will not do anything. This is happening
automations: Can I execute a step on a specific date?
I have created a form in Zoho forms, and created a contacts list. I have also begun setting up an automation with the intention of sending the form to the contact list on a specific date every month (via email) for the entire year (essentially sending
Zoho Expense - The ability to add detail to a Trip during booking
As an admin, I would like the ability to add more detail to the approved Trips. At present a requestor can add flights, accommodation details and suggest their preferences. It would be great if the exact details of the trip could be added either by the
Adding Folders in Android App
Is it possible to create a new email folder within the Zoho Mail Android app? Or can this only be done from the desktop version of Zoho Mail? Cheers!
Schedule Exports for Regular Project Updates
Tracking project data often means exporting data at regular intervals. Instead of manually exporting data every time, users can schedule exports for Phases, Tasks, and Tasks in Zoho Projects. These exports can be set to run once, daily, weekly, or monthly
Question about custom fields using Pivot Tables.
I have created a pivot table showing annual revenue of a client and how much payment that client is paying my company. Is there a way using pivot table to add an additional field that subtracts those to fields / shows me a percentage of that difference?
Request for Light/Dark Mode
Would love the ability to switch between Light and Dark mode similar to Zoho CRM. https://help.zoho.com/portal/en/community/topic/introducing-dark-mode-light-mode-a-new-look-for-your-crm
Signature field is showing black
Hello, When customer signed the service form, it is showing as below picture Phone model: iPhone 16 Pro We tried delete and install application, but it not solved. This has on phone of a few person. There is any advice to solve this?
Journey Email - Ignored Contacts
I have a journey setup which simply sends a string of emails over time. For some reason I am getting large amounts of the contacts who enter the first email being ignored and I can't find anywhere in reports or audit logs why these contacts are not
Involved account types are not applicable when create journals
{
"journal_date": "2016-01-31",
"reference_number": "20160131",
"notes": "SimplePay Payroll",
"line_items": [{
"account_id": "538624000000035003",
"description": "Net Pay",
"amount": 26690.09,
"debit_or_credit": "credit"
}, {
"account_id": "538624000000000403",
"description": "Gross",
"amount": 32000,
"debit_or_credit": "debit"
}, {
"account_id": "538624000000000427",
"description": "CPP",
"amount": 1295.64,
"debit_or_credit": "debit"
}, {
"account_id": "538624000000000376",
"description":
Zoho Books - Include Payment Terms as a Custom View filter
It would be great if you could created a custom view based on Payment Terms. This would be really handy for seeing a list of customers who have credit terms. A workaround is not required. I could do something with a creditor checkbox, but it would be
How to update changed purchase account of item in invoice
I have selected the wrong purchase account for various articles and created invoices. I had to adjust the purchase account in the article afterwards, but the old purchase account is still posted in the transaction-journal of the invoice. To adjust the
Help - Zoho CRM notification on mobile (IOS/Android)
Hello Community! Can I get the IOS/Andoid CRM app to notify me of events, calls, etc. due as I can with MANY other apps? I am running the free Zoho I would like this to be native to the Zoho CRM app. I do not want to write a sep. mobile app
Zoho Books Idea - Include another field in Bank Details for Address
Hi Books team, Currently use the Description field in the Bank Details to store the bank's address. This works fine but it would be great if you could add another field for Bank Address, so that other notes about the bank account could be stored in the
a question about the COQL API v8
When I specify eight or more values in a WHERE IN clause and execute it, an error occurs. Is there a limit to the number of values that can be specified in a WHERE IN clause? ↓Error select * FROM Vendors WHERE (id in (1, 2, 3, 4, 5, 6, 7, 8, 9)) ↓Success
Zoho Books Idea - Bank Details Button on Banking
Hi Books team, Sometimes I'm asked to share bank details with a customer or a colleague. So I go to the Banking Module, find the correct bank account, click Setting > Edit, then copy and paste the bank details. Wouldn't it be great if there was a button
JS SDK 8.0 – TypeError: Cannot read properties of undefined (reading 'getCacheStore') with sample code
Hello Zoho Support Team, I’m integrating the Zoho CRM JavaScript SDK v8.0 and I’m getting the error below when running your official sample. I tested directly from: https://github.com/zoho/zohocrm-javascript-sdk-8.0/blob/main/samples/create_records_sample/create_records.js
Function #55: Convert multiple quotes to single SO using Custom Button
Hello everyone, and welcome back to our series! In Zoho Books, after a quote is accepted by your customer, it can be converted into a sales order or an invoice. Often, a customer might have multiple quotes, and for easier billing or upon the customer's
Time based workflow without edit/action
Hello I need help solving this problem if possible. We have Deals come into the CRM via Live Transfer which have the field properties: Stage = New Channel = Inbound Some of them don't get answered so we want these to automatically go into our Outbound
What's New - August 2025 | Zoho Backstage
Every month, Zoho Backstage grows with you. These updates aren't just features and fixes, they're about making your workday smoother, your events more impactful, and your attendees happier. We’ve listened, learned, and shaped this release to keep things
prevent selling expired items
Hello. I need to make a constraint on expired batch items not to be sold. Is it possible in Zoho Inventory? if so, then how? Thanks for further help.
Product details removed during update from other system
We maintain our product details in an other system. These details are synchronized with Zoho at the end of each day, through an API. This has worked perfectly sofar. But last Monday, all product codes and some other product data have been wiped during
Client Customer
I purchased a customer user license, but we cannot see the project I added in the customer account. I would like to ask for support on what we should do.
Add Ability to Use Zoho Finance Tags
For Zoho Finance (Books and Inventory), the current actions do not allow us to affect the tags associated with the entities in question (customers, vendors, items, etc.). Please consider adding this functionality into the actions.
Embeded Signing doesn't work on Safari Browser
We have implemented Zoho Sign in our website by using embeded signing, It works perfectly on Chrome. But it fails on Safari, We get stuck on Zoho Sign Page during redirection from Zoho Sign to our website after signing the document, Please let us know
Dataprep Webhook Limits and Cannot update column with Dataprep
I have two problems : 1 - I am using Airflow to trigger my pipeline, and when I tested it, it worked fine a couple of times. However, after that, I received an error: {"code":429,"message":"Request rate limited"}. I didn’t send too many requests — maybe
New in Zoho Forms: Google reCAPTCHA v3 for smarter spam protection
Hello form builders, Spam submissions are one of the biggest challenges when you share your forms online. They not only clutter your data but can also waste valuable time. To help you combat this without making life harder for genuine respondents, we’re
Project Management Bulletin: August, 2025
We’ve touched a grand 19 years since we started pioneering project management solutions with Zoho Projects. What started as a simple one-page interface is now a suite of products with Zoho BugTracker, Zoho Sprints, and our new debut Zoho Projects Plus,
Zoho Sign and Zoho Workdrive Integration
Hello, there. I want to know if it's possible to save a signed document from Zoho Sign in an specific folder for each signer in Zoho Workdrive. For example: If John Doe signs the document in Zoho Sign I want to save it automatically in a folder named
How do you list multiple contacts for a lead?
My sales team wants to be able to add additional contacts for leads, how do we do that? Is there a different way we should be using the lead / contact functionality? Moderation update (9th September 2025): Our developers have built an extension to achieve
Modifying Three Dot Menu Options
Is there a way to modify the three dot menu options that display in a Report header? They currently display: Show As (List, Calendar, Timeline), Print, Import, Export. I'd like to remove the Show As and Print options, since they aren't applicable for
Field Not Updating in FSM Script - Service and Parts module.
Dear Team, I am reaching out regarding a script I have implemented in Zoho FSM to automate the calculation of the End of Service date based on the End of Sale date in the Service and Parts module. Overview of the script: Fetches the End_of_Sale__C and
Zadarma + Zoho CRM Integration – Missed Calls Saved as Contacts Instead of Leads
Hello everyone, I’m looking for input from anyone with experience using the Zadarma + Zoho CRM integration. Currently, I’m seeing that missed calls are automatically being created as Contacts instead of Leads. From a CRM perspective, this doesn’t make
Zoho Books | Product updates | September 2025
Hello users, We’ve rolled out new features and enhancements in Zoho Books. From PayNow payment method to applying journal credits to invoices and bills in other locations, explore the updates designed to enhance your bookkeeping experience. Integrate
How to update Multiple Users field in Quote Module from Deal Module
Scenario : Deal Module having Multiple User Field (Presales Engineer) which having more than 1 User and through Deluge Script I need to get that Users Details and need to put into Multiple User Field (Presales Engineer) of Quote Module. Note: Both Module
Auto-sync field of lookup value
This feature has been requested many times in the discussion Field of Lookup Announcement and this post aims to track it separately. At the moment the value of a 'field of lookup' is a snapshot but once the parent lookup field is updated the values diverge.
Next Page