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



                  Zoho Developer Community




                                          • Desk Community Learning Series


                                          • Digest


                                          • Functions


                                          • Meetups


                                          • Kbase


                                          • Resources


                                          • Glossary


                                          • Desk Marketplace


                                          • MVP Corner


                                          • Word of the Day


                                          • Ask the Experts





                                                    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 Writer

                                                                                      Get Started. Write Away!

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

                                                                                        Zoho CRM コンテンツ








                                                                                          Nederlandse Hulpbronnen


                                                                                              ご検討中の方




                                                                                                    • Recent Topics

                                                                                                    • Offline for Maintenance Option

                                                                                                      Making changes to a live application can cause problems. I'm suggesting a new application settings option to temporary disable all access to an app so the admin or developer can make changes without any user interference. Additionally, while the app is offline, there should be some ability to present the users with a customized notification page (perhaps a view within the app itself). For example, "This application is undergoing maintenance and will be back online Sunday at 5 PM. Please email smith@net.com
                                                                                                    • Zoho Creator delete validation seems like does not support <br> html code

                                                                                                      Validation Workflow in Create or Edit, We can use this styling code eg: <br>, <b>, <u> Those very simple code in those validation (in Create or Edit) But, for Validation (In Delete) Zoho Creator seems like does not support it. The alert task just shown
                                                                                                    • Amazon Integration

                                                                                                      Hi, I am seller on Amazon , & I would like to sign up for Zoho books. However my question is can we automate/integrate invoicing, charges and returns in amazon with Zoho using API? Do you have a developer for this? I did take a look at zapier however it just has a create Invoice function nothing else.
                                                                                                    • Connector working as expected but not when called from an extension

                                                                                                      I am playing around with building a Zoho CRM extension and seeing if anyone has some insight on the below issue I am facing. When I execute the Connector API it works as expected returning me the download URL for a merged document that has merged successfully.
                                                                                                    • Is it possible to set a default field value in a Layout Rule?

                                                                                                      I would like to be able to set a default field value based on a layout rule, rather than a default value in the main layout screen. Example: if Field X is set to 'Banana' then set the default value of Field Y to 'yellow' if Field X is set to 'Strawberry' then set the default value of Field Y to 'red' Is this possible? I don't want to use a workflow rule because a) we've hit our limit and b) it needs to happen straightaway whilst the user is on that screen.
                                                                                                    • Changing Data on Cancelled /Paused Subscriptions

                                                                                                      What's a good way to edit a cancelled subscription without reactivating it? There are some custom fields and data that we'd like to add to these but when we edit it, it reactivates it and creates an invoice. Also need to be able to do this for paused
                                                                                                    • Portal users send notifications to licensed usera

                                                                                                      Is there a way for portal users to leave messages or notifications to licensed users?
                                                                                                    • Help me to retreive my Document

                                                                                                      Please help me to retrieve my documents from any date between 1st February, 2025 to 20th,March 2025 .it got mistakenly deleted on the 21 of March 2025 due to phone screen malfunction I earnestly await your positive response .thank you
                                                                                                    • Zoho Subscriptions -- Zoho Commerce integration

                                                                                                      Is there integration between Zoho Subscriptions and Zoho Commerce? I would like to create subscription plans in Zoho Subscritpions and list them for on my Zoho Commerce store.
                                                                                                    • Inserted Records not showing in Kanban view

                                                                                                      When insert a new record into a report from a workflow, it doesnt show in KANBAN view. When i view the report in a regular list view, the records are there. If i edit the record (while in list view) and then update it at all (even if i dont change anything,
                                                                                                    • Zoho creator dropdown option update using deluge

                                                                                                      Hi how can i add options in dropdown rather than updating manually
                                                                                                    • Add an Iterator Module to Zoho Flow

                                                                                                      Hi Zoho Team, I hope you're doing well. We would like to request a new feature in Zoho Flow: an Iterator module. An iterator is a special type of module that converts an array into a series of bundles, outputting each array item as a separate bundle.
                                                                                                    • Restrict form submissions based on records of another form

                                                                                                      Hi, is there a way to restrict submission of one form based on records of another form in creator? For example, there are two forms: one to collect user registration details, and one for a registered user to submit information. If there is not a record
                                                                                                    • Client Script | Update - Introducing Subform Events and Actions

                                                                                                      Are you making the most of your subforms in Zoho CRM? Do you wish you could automate subform interactions and enhance user experience effortlessly? What if you had Client APIs and events specifically designed for subforms? We are thrilled to introduce
                                                                                                    • Canvas Email iMap

                                                                                                      Hi, I want to be able to have this option (seen below) in our custom Canvas design I'm building. But I don't see that option. Being able to see all related emails is important for us. But in our Canvas, it doesn't seem to have any option....
                                                                                                    • Search Mail with URL parameters

                                                                                                      Is it possible to search Zoho Mail by passing URL params like we can in Gmail? eg. mail.google.com/mail/u/0/#search/from:(jane@doe.com)
                                                                                                    • Renaming organization does not reflect on all places like billing and others

                                                                                                      I have renamed the organization name to Novizna from Evnesoft but in billing and email it still displays Evnesoft
                                                                                                    • Forwarding email into Desk - DMARC errors

                                                                                                      Hi, Our email domain is hosted through Exchange Online (Office 365). Customers email support@ourdomain.xyz which is delivered to Exchange. Exchange rewrites the TO email header to the email address associated with our Zoho Desk (support@ourdomain.zoho.xyz).
                                                                                                    • ASAP Chrome Extension not loading

                                                                                                      We have ASAP enabled in Zoho Desk. I installed the ASAP Chrome Extension (Windows 10), but when I click the extension button while on our site, it never fully loads. I just get what's shown below.
                                                                                                    • Why is the Zoho portal not mobile friendly?

                                                                                                      I just got started with the portal and im sort of shocked how it looks. I already filled a hint/complaint about this. On the website you see a wonderful site with a modern design. Yet in real life its a mid 2000 look and feel. One major issue i see thats
                                                                                                    • Unable to access Zoho Help Community on my main browser

                                                                                                      Hi, I have been unable to access https://help.zoho.com on my chrome browser for a while now. Initially I thought it was a glitch from Zoho, but when I accessed from incognito mode, I was able to access it. I have cleared cache - cookies, but still access
                                                                                                    • Controlling Lookup Paths

                                                                                                      When building pivot tables, Zoho automatically selects 'lookup paths' for you based on which columns are configured. Sometimes, I want zoho to not use a look-up at all between two tables.... but that doesn't seem to be an option, as long as any relationships
                                                                                                    • Can you sell Subscriptions using Zoho Commerce?

                                                                                                      In addition to physical products and the apparently coming soon 'Digital Products', it is possible to sell Subscriptions using Zoho Commerce?
                                                                                                    • Does Thrive work with Zoho Billing (Subscriptions)?

                                                                                                      I would like to use Thrive with Zoho Billing Subscriptions but don't see a way to do so. Can someone point me in the right direction? Thank you
                                                                                                    • Free Webinar Alert! Building Your Brand: Solopreneur Tips to Use Zoho Mail

                                                                                                      Hello Zoho Mail Community! We’re excited to invite you to an exclusive session: "Building Your Brand: Solopreneur Tips to Use Zoho Mail." In this webinar, we’ll explore how Zoho Mail helps solopreneurs create a professional brand with custom email domains,
                                                                                                    • Tip 24: How to generate a file preview in a report without downloading it.

                                                                                                      Hi folks, This month we will teach you how to preview a report file before sending it to someone or sending it for approval. While viewing reports in Zoho Creator, users cannot access or preview files uploaded through the File Upload field without downloading them.    In this tip, we'll show you a way to do this. Key concept: The best way to achieve this function is to preview the uploaded file's content using the Add Note field in a stateless form (pop-up window) based on the record ID.   Use case:
                                                                                                    • Zoho Books CREDIT LIMIT is completely USELESS due to a BUG!!! Please fix it ASAP!!

                                                                                                      Credit Limit should not be taken into account if payment terms on the Invoice are without credit. If selected Credit 0 days (Prepayment) why in this world would a notification pop up saying credit limit is exceeded and not allowing to create an invoice?
                                                                                                    • Add additional field to quick search results

                                                                                                      IN the advanced search, we can add any field to the columns. In the regular search results (before you press enter, there is no option to modify the results. It would be super useful to include a custom field where it currently displays the pipleine
                                                                                                    • Zoho CRM API, Python SDK v7 Quoted_Items

                                                                                                      Hello. How do I use this SDK to retrieve the Quoted_Items from a Quote and downstream the items in a Sales Order I can see references to a constant INVENTORY_MODULES_ITEMS = ["invoiced_items", "quoted_items", "purchase_items", "ordered_items"] But I cannot
                                                                                                    • Continue after error for each loop on invoke url

                                                                                                      Hello. I'm trying to upload files to workdrive using invokeurl. It goes through a list of urls using for each. Sometimes the file is larger than 5mb. The whole workflow stops in that event. I'd love a work around to upload larger files, but I don't think
                                                                                                    • Modify the default layout of how task fields are ordered in Project View

                                                                                                      Hi all, I am trying to change the order the columns on project List view when a project is created initially. See image below. Currently, when a project is created, a predefined collumns are created and also its orders. I am aware that I can "hide", and
                                                                                                    • Enhanced Column Customization in Zoho CRM Email Templates

                                                                                                      Dear Zoho CRM Team, I'm trying to create a footer in the Zoho CRM email template based on a specific design, but I’ve encountered limitations with the current WYSIWYG editor. Currently, the editor only allows adding preselected column structures with
                                                                                                    • Zoho Flow Doesn't Detect Desk Custom Field Change

                                                                                                      I have a Flow that is configured to be triggered when a custom field on a ticket changes. I also have a Schedule in Desk that runs a script that changes the custom field. When I change the custom field manually in the Desk interface, the Flow runs as
                                                                                                    • CRM

                                                                                                      I have a portal set up where a contact can see other contacts within an account automatically. When a contact in the portal enters a deal, how do I make sure that deal is assigned to the account so other contacts in the account can see the deal was generated?
                                                                                                    • Page - Gauge - Target Values

                                                                                                      Is there a way to make the Target and Maximum values say a formula or query?  For example, total sales for the month = 109 and I want to make my gauge today's percentage.
                                                                                                    • Instantly refine your CRM dashboard using Filters and download underlying data – all in a few clicks!

                                                                                                      Hello everyone, Imagine you’re a sales manager overseeing multiple product lines across different regions. You're viewing your sales dashboard in Zoho CRM, which gives a powerful overview, but you often need to drill down to see how a specific product
                                                                                                    • Understanding "Deposit from Other Accounts" vs. "Sales Without Invoices"

                                                                                                      Hello, Zoho team! I am a new Zoho Books user trying to correctly input some historical financial data. I'm hoping you can help me understand best practices for when to use "Deposit from Other Accounts" vs. "Sales Without Invoices." I'm an author who receives
                                                                                                    • Unified WhatsApp Number Management in Zoho Desk and SalesIQ

                                                                                                      Dear Zoho Desk Support Team, We are currently utilizing both Zoho Desk and Zoho SalesIQ for our customer support operations. While both platforms offer WhatsApp integration, we are facing challenges due to the requirement of separate WhatsApp numbers
                                                                                                    • Pin multiple columns and adjust column widths in CRM subforms

                                                                                                      Hello all, Subforms act as secondary forms or tables in which you can associate multiple line items to a primary record and thereby ensure more structured and comprehensive data organization. We've made some recent enhancements to subforms. Here's what's
                                                                                                    • Can't create Workflow for Module 'Service Appointments'

                                                                                                      Hey everyone. I am trying to create a workflow from FSM to Desk. When I start the creation process I select the Module (Service Appointments) and then title it and hit next and it just sits there. Now If I select a different module it works fine. Have
                                                                                                    • Next Page