Extension pointers #14: Extend end-user benefits and allow personalization by implementing extensions with custom actions

Extension pointers #14: Extend end-user benefits and allow personalization by implementing extensions with custom actions

From our earlier post on custom actions, we know that we can create templated actions, share them with end users, and allow them to reuse those actions to achieve personalized outcomes. In this post, we'll look at how custom actions make it easy for users to carry out these templated tasks to get customized results.
 
Consider the following scenario: a hardware company that already uses Zoho CRM then utilizes Zoho Projects to implement and work on the deals they've won. Assume that the Zoho Projects portal has two projects: one for handling smaller revenue deals that require minimum development and less time, and the other for managing larger revenue dealsthat will eventually demand more time and resources for execution.
 
As an end user processing deals in Zoho CRM, it would be extremely convenient for the company to have the deals automatically fall into the appropriate projects, such as a task based on the expected revenue. Furthermore, it would be ideal to send emails to the customer with whom they have made the deal to request anything needed from their end in order to move forward with the implementation of the deal. Let's see how we can achieve this with the help of custom actions.
 
We have detailed posts on the steps to create a custom action along with a live example. Now, let's reiterate and go over the steps to achieving the above use case. 
 

Developer activities 

1. Create a connector for Zoho Projects.
2. Create a custom user interface (widget-connected app) that allows the user to select the project where the deal should be created as a task, as well as add the personalized email subject and body that will be sent to the user. 
3. Create a custom action in the Zoho Developer console. 
  • Associate the custom user interface to the custom action. 
  • Define an action that creates a task in the selected project and also sends an email to the customer based on the values entered by the end user in the custom UI. 

Extension/end-user activities 

4. Create workflows as an end-user (i.e., set criteria on expected revenue; provide personalized values for email subject and body, and choose the project in which the deal fulfilling the set criteria should be created as a task) and assign a custom action to them. 

Developer activities

1. Creating a connector 

  • Create a new connector in your extension for Zoho Projects using the Connectors feature under Utilities in the left panel of the Zoho Developer console. 
Note: Zoho Projects follows the OAuth 2.0 protocol for its authentication mechanism. You can refer to this post to learn more about the steps to register Zoho Projects and retrieve your client credentials.
  • Add the necessary connector APIs for your functionality. 
  • The Zoho Projects REST APIs added for our example are mentioned below.
Connector API Name
Method type
URL
Get Projects
GET
https://projectsapi.zoho.com/restapi/portal/${portalid}/projects/
Create project task
POST
https://projectsapi.zoho.com/restapi/portal/${portalid}/projects/${projectid}/tasks/?name=${name}&description=${description}
 
Please refer to the Zoho Projects REST API guide for details. 

2. Create a custom user interface: 

1. Create a custom user interface that allows the end user to select the project in which they want to create the deal as a task, as well as enter the email subject and body that should be sent to the contact associated with the deal.
2. You can find the HTML code for the custom UI as an attachment to the post.
  • In the HTML code, we have two text fields to get the user inputs for the email subject and body.
  • We have also invoked the connector API to get projects from a portal. The response is then populated and displayed as a dropdown list to allow the user to select the project in which they want the deal to be created as a task.
  • In the HTML code snippet, we have hard coded a static value for the Zoho Projects portal.
Note: Depending on your business use case requirements, you can create custom variables to prompt the user to input their Zoho Project portal ID, or you can create a setting widget that displays the user's portals, allowing the user to choose the portal in which they want to have the deals created as tasks as well.
  • ZOHO.CRM.ACTION.setConfig - In this example, we have utilized the setConfig method. This method can be used to set values to variables which can be retrieved later through the widget's page load response
➤ For our example, we have used the setConfig method to set various Zoho CRM deal and email (subject and body) user input values to variables. We have later obtained these saved values through the widget's page load response, which contains a configdata key with these set data as its values. 
➤ Sample page load response when ZOHO.CRM.ACTION.setConfig is used in our example:
"module": "Deals",
"configdata": {
DealTest: "Sample Digital Marketing Project"
Dealdescription: "${!Deals.Description}"
Dealname: "${!Deals.Deal_Name}"
Message: "Sample Message"
Subject: "Deal Won!"
To: "${!Deals.Contact_Name.Email}"
➤ We have then used the preset saved values available in the configdata key to prepopulate the widget UI every time it loads. 

3. Create a custom action

  • Go to the Zoho Developer console and select the extension in which you want to create the custom action.
  • Create a custom action by navigating through Automate - > Custom Actions, under the Build section in the left panel. Click Create Action.
  • Enter the Custom Action Name and Description. Click Next.

  • Provide the location of the html file (widget UI) to complete the resource path. Click Next, then click Create Function.

  • Enter the Deluge function to perform our use case functionality.
  • Click Save & Close, then click Save.
Deluge function code snippet:
 
dynamic_map = Map();
dynamic_map.put("portalid","xxxxxx");
dynamic_map.put("projectid",input.config.get("Dealproject"));
dynamic_map.put("name",input.config.get("Dealname"));
dynamic_map.put("description",input.config.get("Dealdescription"));
response = zoho.crm.invokeConnector("xxxxx.zohoprojects.createprojecttask",dynamic_map);
sendmail
[
from :zoho.adminuserid
to :input.config.get("To")
subject :input.config.get("Subject")
message :input.config.get("Message")
]
  • In the above Deluge code, we have performed the functionality of creating the deal as a task in Projects and sending an email to the deal's contact with the input provided by the end user in their CRM account while associating the custom action to a workflow. 

Custom action in effect (End-user):

Create workflows:

  • As an end user who has the extension which features the custom action installed in the Zoho CRM account, go ahead and create workflows to define criteria and associate the custom action.
  • In our case, we have two workflows:
➤ One for smaller deals where the expected revenue is less than 1000 USD


➤ One for larger deals where the expected revenue is greater than or equal to 1000USD


 
  • Upon choosing the custom action, the custom UI appears where-in you can provide user specific input for email body and subject and also choose the project where you want deal to be created as a task in Zoho Projects. 
Smaller revenue deals:
                                                       
Larger revenue deals:
                                                      
  • When a deal with the necessary criteria is satisfied, an email is sent out to the deal's contact with the subject and body provided by the end user. A task is also created in Zoho Projects with some specific deal details. 
This is one business case where you can use custom action. As a parallel use case to the above example itself, say you have multiple projects in Zoho Projects, each used to work on different case categories (bugs, issues, feature request, etc.). You could develop the same kind of template and allow end users to configure the criteria and outcomes accordingly. 
 
You could also use custom actions feature to perform templated actions to obtain personalized outcomes depending on your business needs. We hope you found this information helpful. Keep following this space for more information!
 
 SEE ALSO:
 

    Access your files securely from anywhere


            All-in-one knowledge management and training platform for your employees and customers.






                                  Zoho Developer Community




                                                        • Desk Community Learning Series


                                                        • Digest


                                                        • Functions


                                                        • Meetups


                                                        • Kbase


                                                        • Resources


                                                        • Glossary


                                                        • Desk Marketplace


                                                        • MVP Corner


                                                        • Word of the Day


                                                        • Ask the Experts



                                                                  • Sticky Posts

                                                                  • Kaizen #198: Using Client Script for Custom Validation in Blueprint

                                                                    Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
                                                                  • Kaizen #226: Using ZRC in Client Script

                                                                    Hello everyone! Welcome to another week of Kaizen. In today's post, lets see what is ZRC (Zoho Request Client) and how we can use ZRC methods in Client Script to get inputs from a Salesperson and update the Lead status with a single button click. In this
                                                                  • Kaizen #222 - Client Script Support for Notes Related List

                                                                    Hello everyone! Welcome to another week of Kaizen. The final Kaizen post of the year 2025 is here! With the new Client Script support for the Notes Related List, you can validate, enrich, and manage notes across modules. In this post, we’ll explore how
                                                                  • Kaizen #217 - Actions APIs : Tasks

                                                                    Welcome to another week of Kaizen! In last week's post we discussed Email Notifications APIs which act as the link between your Workflow automations and you. We have discussed how Zylker Cloud Services uses Email Notifications API in their custom dashboard.
                                                                  • Kaizen #216 - Actions APIs : Email Notifications

                                                                    Welcome to another week of Kaizen! For the last three weeks, we have been discussing Zylker's workflows. We successfully updated a dormant workflow, built a new one from the ground up and more. But our work is not finished—these automated processes are


                                                                  Manage your brands on social media



                                                                        Zoho TeamInbox 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

                                                                                                    Get Started. Write Away!

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

                                                                                                      Zoho CRM コンテンツ




                                                                                                        Nederlandse Hulpbronnen


                                                                                                            ご検討中の方





                                                                                                                      • Recent Topics

                                                                                                                      • Mise à jour de Zoho Books – France

                                                                                                                        Chers clients, Merci pour votre patience et votre soutien continu. Avec les évolutions réglementaires à venir en France nous introduisons de nouvelles fonctionnalités dans Zoho Books pour les clients français. Ces mises à jour ont été conçues pour répondre
                                                                                                                      • CRM Developer Update: Mandatory field behavior changes in Zoho CRM APIs

                                                                                                                        We are planning a few updates to Zoho CRM APIs that are expected to be rolled out by the end of October 2026. These changes are not live yet. We are sharing this early so developers and partners can review the impact and prepare in advance. What is changing?
                                                                                                                      • Show Available Stock as a Column in Item Views (Including by Warehouse)

                                                                                                                        It would be very useful to have Available Stock as a standard column in the Items list view. Currently Stock On Hand does not show the real picture for businesses managing orders and inventory. Example: Stock on Hand: 100 Committed to Sales Orders: 80
                                                                                                                      • What's New in Zoho POS - July 2026

                                                                                                                        Hello everyone, Welcome to Zoho POS’s monthly update, where we share our latest feature updates, enhancements, events, and more. Let’s take a look at how July went. Support for Saudi's ZATCA Phase 2 e-invoicing We have added support for ZATCA (Zakat,
                                                                                                                      • How to make Contact a Help Center User

                                                                                                                        I see a "IsPortalUser" checkbox on each of the Customer account, but I am unable to check the checkbox. How is this configured?
                                                                                                                      • Introducing the new Fields API

                                                                                                                        Hello everyone, Greetings from Zoho Desk's API corner! With the rising need for integrations to connect multiple tools in businesses, APIs need to be adaptive, reliable, consistent, and ready for dynamic operations. To support better performance, efficiency,
                                                                                                                      • Service locations are tied to contacts?

                                                                                                                        Trying the system out. And what I discovered is that it seems that the whole logic of the app is, I'd say, backwards. There is a Customer - a company. The company has contact persons and service locations can be associated with different contact persons.
                                                                                                                      • Zoho ResearchStudio Shutdown Notice

                                                                                                                        Hi ResearchStudio fam, We are writing to inform you that Zoho ResearchStudio will be discontinued from Oct 5, 2026. Thank you for being a part of our journey and for trusting us with your qualitative research work. What this means for your data: Your
                                                                                                                      • SlideShare Downloader PDF not syncing in Zoho WorkDrive

                                                                                                                        Hi everyone, I use SlideShare Downloader for save study PPT and PDF files. After download I upload files in Zoho WorkDrive, but sometimes PDF preview not showing or sync take very long time. Small files work okay but some bigger presentation files have
                                                                                                                      • メモの保存場所、見直しませんか?― Zoho Notebookで始める情報管理

                                                                                                                        ユーザーの皆様、こんにちは。ゾーホージャパンの朝香です。 AIを利用した業務が広がる中、AIによる情報漏洩対策を進めている組織も多いのではないでしょうか。 一方で、日常的に使っているメモの管理については、対策できていますか? 業務中のメモには、重要な情報が含まれていることがあります。 そのため、AIへの入力だけでなく、メモの保存先についても是非確認をおすすめしたいと思います。 そこで今回は、使いやすさだけでなく、セキュリティにも配慮して設計されたZohoのノートアプリ「Zoho Notebook」をご紹介します!
                                                                                                                      • Zoho Sheet offline is now live on iPhone

                                                                                                                        Hello everyone, We've just rolled out offline support for Zoho Sheet on iOS—you can now create, edit, and analyze spreadsheets on your iPhone without an internet connection. Offline support has been a sustained priority for us. We're on the verge of bringing
                                                                                                                      • You can now sync records from Custom Modules in Zoho CRM

                                                                                                                        p.MsoNormal, li.MsoNormal, div.MsoNormal { margin: 0.0cm; font-size: 12.0pt; font-family: Cambria; } p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph { margin-top: 0.0cm; margin-right: 0.0cm; margin-bottom: 0.0cm; margin-left: 36.0pt; font-size: 12.0pt; font-family: Cambria; } p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst { margin-top: 0.0cm; margin-right: 0.0cm; margin-bottom: 0.0cm; margin-left: 36.0pt; font-size: 12.0pt; font-family: Cambria;
                                                                                                                      • Zoho ERP | Product updates | July 2026

                                                                                                                        Hello users, We're back with another round of updates to help you streamline your operations. This month's release brings new features and enhancements designed to help you work more efficiently. Read on to discover everything that's new in Zoho ERP this
                                                                                                                      • Fixed cost per task

                                                                                                                        Is there any way to assign a fixed cost per task, but track time for internal reporting? Don't see a way to do this currently.
                                                                                                                      • Set custom date creation for ticket using API in Desk

                                                                                                                        Hi. all.. I want know if is possible to add ticket with custom creation date via API... This would to be great because we are moving from another platform to Zoho and we have need to keep all statistics for old tickets also. In api docs i didnt see nothing about custom date in ticket creation but i would prefer a confirm from comunity/support. Thank you P.S.: Sorry for bad english language
                                                                                                                      • Allow Shopify / marketplace orders to be cloned

                                                                                                                        Many businesses now use Shopify as a B2B ordering portal, not just a D2C ecommerce website. For B2B businesses, once these orders are imported into Zoho Inventory, Zoho often becomes the main system used to manage purchasing, stock, fulfilment and customer
                                                                                                                      • How to Display a Logo Image on a Public Form?

                                                                                                                        I would like to display a logo image in the header of a form. To achieve this, I added an Add Notes field to the form. The code below works perfectly for Zoho users accessing the form. However, when the form is made public, the image does not load properly:
                                                                                                                      • Possible to define default font and size in Zoho Campaigns?

                                                                                                                        Is it possible to define a default font (font, size and colour) for the text, H1 and H2 in Zoho Campaigns? For example: In a campaign, I add a text block, and the text is automatically century gothic, size 11, grey (6f6f6e) by default? Thank you!
                                                                                                                      • Set Custom Colurs/Fonts/Style

                                                                                                                        I know I can save blocks as books marks but it would be nice to be able to define a custom colour pallet, the style of the H1, H2 etc to save me having to copy a previous block and set them manually over and over again. Since the colour picker doesn't
                                                                                                                      • Stop Zoho Projects From Automatically Adding Client Users

                                                                                                                        I have a custom function that creates a Zoho Project for every Quote attached to a Deal when it moves to Closed Won. Everything works fine, except for the fact that connecting a Zoho Project to the CRM automatically takes the Contact associated with the
                                                                                                                      • Zoho CRM - Kiosk Studio: Build Once, Execute Multiple Times with Loops

                                                                                                                        Hello Everyone, Introducing Loop Functionality in Kiosk Studio. If you've ever built a Kiosk that needed to perform the same action multiple times like updating a list of contacts, scheduling calls for a batch of leads, or processing multiple products
                                                                                                                      • Switching from Notebook to another product, too unreliable

                                                                                                                        Not only is the spell check worse than useless, now there is a lag AFTER EVERY KEYSTROKE! This makes it impossible to use when there are innumerable products which provide this basic function. I made the mistake of relying on Notebook and have so many
                                                                                                                      • Accidentally deleted a meeting recording -- can it be recovered?

                                                                                                                        Hi, I accidentally deleted the recording for a meeting I had today. Is there a way I can recover it?
                                                                                                                      • Zoho Desk: A Estruturação do Atendimento ao Cliente na era da IA

                                                                                                                        O mercado de atendimento ao cliente vem passando por uma transformação que não é apenas tecnológica, é também comportamental. As empresas que antes mediam qualidade de suporte pelo tempo de resposta, hoje precisam medir pela experiência completa, unindo
                                                                                                                      • API bookings/v1/json/appointment not adding additional fields he is returning this "customer_more_info": {"booking_form_type": "service"}

                                                                                                                        Hi, I'm trying to add additional fields inside zoho booking appointment api and I'm passing same data as you told inside your documentation. He is returning following response "customer_more_info": { "booking_form_type": "service" } I'm using this parameter
                                                                                                                      • Basic report- open sales order by item, with filter for customer ..

                                                                                                                        HI, we really need a basic report that sorts all open sales orders by Item, so you can see which items in your inventory are awaiting invoicing. Then you need a filter by customer, so you can see all the items a particular customer is waiting for. daily,
                                                                                                                      • Record sharing for Activities modules in CRM

                                                                                                                        Hello everyone, We've got a few quick enhancements to what we covered in this previous announcement: record sharing is now available for Activities modules. 1. Sharing Tasks, Meetings, and Calls Until now, activity records could only be shared indirectly
                                                                                                                      • Stock Count

                                                                                                                        The stock count is a nice new feature, but we cannot figure out how to: 1. Use it without assigning to a person, we have a team or one of multiple do stock counts as do most any company. 2. Add any extra fields to what the "counter" sees. The most important
                                                                                                                      • Action Required: Update your TLS configuration to ensure uninterrupted access to Zoho WorkDrive

                                                                                                                        Hi everyone, To further strengthen the security of Zoho WorkDrive, we’re updating the TLS cipher suites supported across our services. As part of this change, older and less secure cipher suites are being phased out. If your browser, API client, desktop
                                                                                                                      • Free webinar: Zoho Sign in Q2 2026 - A quick walkthrough

                                                                                                                        Hi there, The second quarter of 2026 has flown by, and the Zoho Sign team has been hard at work releasing features to enhance how you send, sign, and manage documents. Join us for our upcoming webinar, where we'll discuss what's new and what's to come.
                                                                                                                      • Kiosk Studio + Zia Agents: Automate renewal risk classification in your CRM | Kiosk Studio Session #10

                                                                                                                        Renewal management is vital in a recurring revenue business. Your CRM already knows which accounts are at risk; the signals are present in contact titles, deal stages, call logs, account descriptions, and so on. What's missing is something that reads
                                                                                                                      • How to Prefill Data in an Additional Form Submission from the First Form Submission

                                                                                                                        We need to prefill data in the second form submission based on the previously submitted form (when using the "Add Another Response" option). We have a form which allows customers to send us files via upload. It requires them to provide name, company name,
                                                                                                                      • Enable Credit Note creation for Sales Returns BEFORE receiving goods

                                                                                                                        Currently, it is not possible to issue a Credit Note linked to a Sales Return until the goods have been officially marked as "received" in the system. In our business, we often need to issue a credit note to our clients immediately upon the initiation
                                                                                                                      • Request to Make Billing Company and Service Company Fields Editable.

                                                                                                                        Hello Latha, We noticed that once a Request, Estimate, or Work Order is created, we are unable to edit the Billing Company and Service Company details, as these fields become non-editable. Could you please make these fields editable after record creation?
                                                                                                                      • Client Script | Update - Client Script Support For Custom Buttons

                                                                                                                        Hello everyone! We are excited to announce one of the most requested features - Client Script support for Custom Buttons. This enhancement lets you run custom logic on button actions, giving you greater flexibility and control over your user interactions.
                                                                                                                      • Why associate tickets are just one direction?

                                                                                                                        When I associated the ticket #A with #B, in ticket #A I can see that exists another ticket associated. However, when I go to ticket #B, there is no reference that ticket #A is associated to #B. Is there a reason for that? Because it is confused and hard
                                                                                                                      • Physical Batch Stock by Warehouse

                                                                                                                        We have activated batch tracking in Zoho Inventory. To reconcile our inventory with the physical stock reported by our 3PL, we need a report showing the total physical quantity still present in each warehouse, broken down by batch. This quantity is the
                                                                                                                      • No "Import Users" option in Zoho FSM

                                                                                                                        I recently noticed that there is no option to import Users into Zoho FSM, and this has become a serious challenge for us. When migrating data, especially technicians or other user profiles, we often have hundreds of users to bring into the system. Currently,
                                                                                                                      • Elevate your Radar experience: Best practices part 2

                                                                                                                        In the Spotlight: Zoho Desk's Radar app Hello Everyone, In part 1 of Zoho Desk’s Radar app best practices, we explored role-based permissions, exceptions handling for critical alerts, daily toasts for a quick view of tickets, and landscape reports for
                                                                                                                      • Suggestions for Improving the Deluge Development Experience

                                                                                                                        Hello, I would like to share some ideas that could significantly improve the Deluge development experience, especially for partners and developers building larger solutions across the Zoho ecosystem. Some key areas that would add a lot of value: Deluge
                                                                                                                      • Next Page