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:
 



        • Recent Topics

        • Introducing the 'Send as Email' option on the Zoho Desk iOS mobile app

          Hello everyone! In the latest version(v2.10.2) of the Zoho Desk iOS app, we have brought in support for the 'Send as Email' option while creating a ticket. This feature enables you to reach out to the customers by sending outbound emails. The emails are
        • Document data extraction and import into CRM.

          I've been trying to solve this for a while and I can't come up with a workable solution: In our business, we utilize many subcontractors around the world (without Zoho user accounts) to produce reports and client sites which they then submit back to us
        • Modular cannot Edit in portals

          I have a custom module in CRM. If I create in either CRM or portals, I can edit it in the CRM but I can't edit in the portal. Even if it is created in the portal it wont edit. Anyone know why? I've created a new module and it works fine but this one
        • Introducing Assemblies and Kits in Zoho Inventory

          Hello customers, We’re excited to share a major revamp to Zoho Inventory that brings both clarity and flexibility to your inventory management experience! Presenting Assemblies and Kits We’re thrilled to introduce Assemblies and Kits, which replaces the
        • Zoho CRM and Books Integration

          Evening, I have started the integration with FSM from CRM and having difficulties with the mapping. In CRM we use "Unit Price" as our cost price and mark this up on a subform to create a "Sell Price" this markup can be different on each quote depending
        • What is the Use Case for Business Messaging when Live Chat already exists?

          Hi I'm excited about the new announcement for Business Messaging in Zoho Desk. However I'm unclear the use case for Business Messaging when Live Chat already exists? Is Business Messaging essentially a new version of Live Chat but built for use in the
        • Plug Sample #13: Display CRM Products as Dynamic Carousels in Your Chatbot

          Hi everyone! We’re back with another simple yet powerful plug to level up your chatbot experience. With the SalesIQ-CRM integration, you already have the ability to create leads, contacts, and deals directly within your CRM from SalesIQ, and view complete
        • Como puedo mover un prospecto "Cliente" de modulo

          Tengo un modulo llamado Seguimiento de Ventaa y otro llamado Cierre de Venta. Que cuando se marca como venta efectiva o venta no efectiva, pase a Cierre de Venta, Esto sin duplicarlo "Que esten en ambos modulos" ,Como esta en una base de datos "Excel"
        • Zoho Books not working/loading

          Hi! I haven't been able to access/load Zoho Books for the past hours. I get a time out (and it is not due to my internet connection). Could you please check this asap? Thank you!
        • Introducing ICR in Zoho CRM: Transform your printed text into digital data

          From writing on papyrus in the ancient times to creating a humble record in your CRM, the world may have evolved with how it used to record data, but data entry as such has not been simplified. It is still a repetitive and arduous chore on which businesses
        • Max limit reached on Web Tabs for Zoho Projects

          Hello, ByWater manages between 50-60 projects at a time, and we have been heavily utilizing the Web Tab feature. However, we just hit our maximum limit reached for web tabs. The main thing we use Web Tabs for is sharing a Google document with our partners
        • Creating a whatsapp channel in instant messaging in zoho desk - error Oops, something went wrong. Please try again later.

          Creating a whatsapp channel in instant messaging in zoho desk - error Oops, something went wrong. Please try again later.
        • Article Update Event

          I'm trying to configure a webhook to fire when an article is updated or added. These are listed as available events in the documentation. However, in the webhook creation/editing screen, articles are not listed as a module when setting the event: Am I
        • Kaizen #187 - Building a Timer and Worklog Widget (Part 1)

          Howdy Tech Wizards! Welcome back to a fresh week of Kaizen! This time, we are diving into a two-part series where you will learn how to build a Timer and Worklog Widget for Zoho CRM. This widget helps track active work time and log multitasking sessions
        • Task Permissions

          Is there anyway to have some tasks restricted to view just by the owner or creator?
        • Zoho CRM Forecast - Exclude certain Deals

          We have our forecast and we use it for team forecast/targets/attainment. It works great for that. However, occassionally we have to offer Deals that are non-revenue generating, but are tracked in our CRM. They still have revenue tied to them, but our
        • Kaizen #154 - Dynamically Update Picklist Values in Zoho CRM Workflows

          Hello all! Welcome back to another interesting Kaizen post. Today, we will discuss how to add automatically or remove values from a picklist field using Deluge within a workflow. This post serves as a solution for the forum post. Use case The sales team
        • What is VoC "Unique count", counting?

          Using the "Response based sentiment analysis" dashboard, here is our VoC "Overall Count by Sentiment" VoC uses Zoho Survey and email...and we have almost certainly touched (via email) more than 401 Contacts since January 1, 2025.
        • Filter a report for a specific bank and a specific transaction type (interest income)

          I am trying to run a report - any report - on a specific bank account for the interest income. I do not see it as an option. I can see the Bank Account under Account in the Filters, and I can see the Interest Income under Account in the Filters But I
        • Ability to select Vendor Credits when creating Vendor Payments

          When making vendor payments there should be the option to select open vendor credits, this way the payment shows what bills and credits are being used for the payment Right now the vendor credits must be applied to the bills prior creating a payment,
        • Sorting Tasks by Start Date

          I like using the Tasks tool so far but have one little problem that would help me tremendously. This is my favorite aspect of using Outlook for task management.  When I create a task - I give the Start and Due Date. Some tasks are a little longer and may take a few days, while others only take a few minutes. For example, if a task takes 5 hours, and I want to spend 1 hour per day on it.  Because of this - knowing the start date is much more important than the due date.  The ability to sort by Start
        • Single payment link for multiple invoices or total due for a customer on Whatsapp.

          I want to send a single payment link for multiple invoices or total due for a customer on Whatsapp. Currently zoho books do not have this option . While sending WhatsApp template, payment link is created for particular invoice. I want to send WhatsApp
        • Whatsapp Customer Statement and Outstanding

          Customers are asking to whatsapp statement or outstanding report or invoices regularly. Is there a way we can integrate it in Zoho Books. We already have Whatsapp Business API from Interakt and regular Whatsapp API from MessageAutoSender. How can we use
        • Owner's Draw

          Example: I have a charge account at ABC Company. During the month I charge one $50 item for my business. I also pick up a $20 item for personal use. At the end of the month, I receive a statement with a balance due of $70 and I want to PAY THE ENTIRE
        • Show both Vendor and Customers in contact statement

          Dear Sir, some companies like us working with companies as Vendor and Customers too !!! it mean we send invoice and also receive bill from them , so we need our all amount in one place , but in contact statement , is separate it as Vendor and Customer, 
        • Adding google reviews

          HI , is it possible to add my google reviews to my zoho website ? Thank you 
        • Display an image in Zoho reports report

          I have a table report in which i'd like to display an image made up of data from another column, something like: <img src="records.photo"> However, when i do that, nothing happens.  How do i pull it off?  
        • Currency fields and decimal places in CRM email templates

          Hi, How do I get more than the standard 2 decimal places showing in a Currency field, on an email template? In the Layout for my Currency field, it is set to 6 decimal places. I want to show up to 6 places in the email template (unrounded). See attached
        • GST Returns India

          1. Have been requesting that the documents issued section should be filled automatically. If other accounting software can do it ZOHO Books can. NOT ROCKET SCIENCE !! 2. There is an Issue with the Debit Notes not showing up in GSTR 1 ???  Sorry but this is unacceptable !! as a GST Suvidha provider and an accounting software developer both these errors are unforgivable. P.S: Another GST issue is that the GSTR 2 reconciliation has to be closed monthly to do the next month, Maybe ZOHO developers should
        • Getting error "invalid warehouse_id" when trying to update any transaction in Zoho books

          I got a message from Zoho saying that the Warehouse and Branch has been merged into one category "Locations" Once I migrated to this setup I was no longer able to edit any invoice / create creadit notes - got an error saying "invalid warehouse_id" I never
        • E-Way Bill Generation and Custom Button Requirement in Stock Transfer Module in ZOHO Books India

          We would like to provide further clarification and highlight a few operational challenges we're currently facing : we are handling stock transfers between branches/warehouses within the same state under the same GSTIN. As per government rules, E-Way Bill
        • Subform data to Sheets

          I have been trying to setup a Zoho Flow automation to bring any Subform input to a Zoho Sheets but it seems impossible to post the subform entries to a Zoho Sheet. Is there any way to do it via Zoho Sheet API? https://www.zoho.com/sheet/help/api/v2/#CONTENT-Insert-row-with-JSON-data
        • Voiding of Invoice

          What's the implication in GSTR 1 and GSTR 3B when an invoice is voided?
        • Search WorkDrive File Contents from Creator

          Good afternoon, I am building out a Creator app where I want to allow users to input search terms from Creator that will return the appropriate files that contain those keywords from their Creator search. Is this possible?
        • execute workflow when a package is create

          hji, there is a wey to make a workflow when a package is sended o created ?
        • Adding string / text fields to modules

          I'm working on a custom leads module with a layout for call center agents.  I need to add text fields that are for display purposes only to prompt call center agents.  I haven't found any way to add a field in Zoho CRM that doesn't accept input, ie. is
        • Looking to Hire: Zoho Creator Developer for Vendor Dashboard Portal

          We are a Florida-based licensed liquor distributor using Zoho Books, Inventory, CRM, and Analytics. Many of our vendors are also our customers. We’re looking to build a centralized, secure Vendor Dashboard Portal in Zoho Creator that gives access to real-time
        • Automate Zoho Meeting Creation via Blueprint (Leads & Accounts)

          I need help automating Zoho Meeting creation during a blueprint transition in both the Leads and Accounts modules. Requirements: Triggered via blueprint Read meeting start time (DateTime field) and internal participants from CRM Create Zoho Meeting via
        • BCC Dropbox on the Agency Module

          Good morning! We've recently implemented the BCC Dropbox feature on our Zoho CRM, but this only appears to be working on the Leads and Contractor (Contacts) modules. It would be incredibly useful for it to work on our Agency module too as a way of tracking
        • Support for Transparent, Shadowless Panels in Zoho Creator Pages

          Hi Zoho Creator Team, Hope you're doing well. We would like to request more design flexibility in Zoho Creator, specifically the ability to create panels with no background, border, or shadow. Use Case: In our app, we’re designing a dashboard that uses
        • Next Page