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:
 

    Zoho Desk Resources

    • Desk Community Learning Series


    • Digest


    • Functions


    • Meetups


    • Kbase


    • Resources


    • Glossary


    • Desk Marketplace


    • MVP Corner


    • Word of the Day


      Zoho CRM Plus Resources

        Zoho Books Resources


          Zoho Subscriptions Resources

            Zoho Projects Resources


              Zoho Sprints Resources


                Zoho Orchestly Resources


                  Zoho Creator Resources


                    Zoho WorkDrive Resources



                      Zoho Campaigns Resources

                        Zoho CRM Resources

                        • CRM Community Learning Series

                          CRM Community Learning Series


                        • Tips

                          Tips

                        • Functions

                          Functions

                        • Meetups

                          Meetups

                        • Kbase

                          Kbase

                        • Resources

                          Resources

                        • Digest

                          Digest

                        • CRM Marketplace

                          CRM Marketplace

                        • MVP Corner

                          MVP Corner




                          Zoho Writer Writer

                          Get Started. Write Away!

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

                            Zoho CRM コンテンツ






                              ご検討中の方

                                • Recent Topics

                                • Sending my emails to Spam Folder

                                  I am loosing my business because of this issue, many of my customers are receiving their email in the spam sometimes no one checks them
                                • Why can't I sync my Zoho Mail tasks and notes with my mobile device, and is there a way to fix this issue?

                                  I'm having trouble syncing my Zoho Mail tasks and notes with my mobile device. Despite following the usual steps, the tasks and notes don't appear on my phone. Is there a way to fix this issue? Regards, Adamjes, Tekskills India Pvt Limited, India.
                                • Re: constant rejected email form and to my account

                                  Hi, have had several rejection when I sent an email to Zoho account as well as other people have sent emails to my as your health Centre they have account and all aspects have been ejected. i wonder why the email are rejecting to and from. If you see
                                • How do I redeem credits?

                                  How do I redeem credits that are shown in billing section?
                                • Introducing 'Queries' In Zoho CRM

                                  Hello everyone! We are here with an exciting feature - Queries in Zoho CRM! A little context before we dive right into the feature specifics :) In today’s fast-paced business environment, immediate access to relevant data is essential for informed decision-making.
                                • Will zoho thrive be integrated with Zoho Books?

                                  title
                                • Cannot add IMAP account to "new" Outlook

                                  Hi, I am attempting to add an IMAP account to my copy of the "new" Outlook on my desktop computer. I have tried using the default password when MFA was disabled and an app password when MFA was enabled. But neither attempt worked. My Windows 11 OS number
                                • Custom Module I made shows the records I uploaded are there but they are not showing up.

                                  Here's a screenshot of the module - It shows there are around 2000 records but it says that there aren't any. The module is viewable by administrators and I am on an administrator account so I am not sure why the records aren't showing. Any help would
                                • Update Zoho Flow on Sprint Work Item Status Change

                                  Hello, I've contacted Zoho One support but have been unable to help in a timely manner, so I'm asking the community. I want to start using sprints, but I'm having an issue. I need to post updates to Slack when a Work Item has a status change. My understanding
                                • Issue with skip_workflow Not Preventing Edit Workflow Trigger

                                  Hi Team, I am trying to upload a file to a form in Zoho Creator. However, during the upload, an edit workflow is being triggered. I want to prevent this workflow from running, so I have used the skip_workflow parameter as mentioned in the API documentation:
                                • Create Dashboard using data/tables from different workspaces

                                  Is it possible do create a Dashboard using different tables that are part of different Workspaces? 
                                • Este domínio já está associado a esta conta

                                  quando digitei meu domínio recebi essa mensagem que meu domínio estava associado a uma conta que eu nem faço idéia de quem seja. Como que faço pra resolver isso?
                                • Storage addon failed to upgrade

                                  Hi, I am trying to purchase addon storage, but i am getting upgrade failed error Sorry! We are unable to process your information. Please try again after some time. If the problem occurs again, please visit our Contact Us page to reach out to the appropriate
                                • no puedo recibir correos

                                  Hola, en la cuenta de la empresa desde hace unos tres días dejamos de recibir correos y no hemos realizado ningun cambio de configuracion, requerimos asistencia urgente por favor
                                • Default reminders on Emails

                                  I have seen that it is possible to set, for each email, a reminder when the email remains unresponded for some time. This is very useful, so useful that I would like to set it for all my emails, by default. Because an unanswered email usually requires
                                • NO PUEDO RECIBIR CORREOS EN MI CUENTA ZOHO MAIL

                                  LO QUE SI PUEDO HACER ES ENVIAR CORREOS PERO NO PUEDO RECIBIR CORREOS. Y LA CONFIGUIRACION DE MI DNS YA ESTA CORRECTA Y APUNTAN A ZOHO PERO AUN ASI NO PUEDO RECIBIR  NECESITO AYUDA URGENTE YA QUE EN MEXICO NO HAY FORMA DE COMUNICARNOS VIA TELEFONIA CON
                                • Send email is not authenticated

                                  Hi, I’m getting an error in Gmail, when receiving an email from my account in zoho, my email is already authenticated in my domain, and I don't know why I keep receiving this message... also testing in outlook, the message goes directly to "junk".
                                • Using Queries with dynamic parameters in Kiosk Studio

                                  Hi, I'm pretty new when it comes to developing within Zoho (I'm really a .NET developer), as it was just added to my responsibilities. For a new feature in the CRM, I'm trying to develop a Kiosk function to show a list of records (retrieved by the new
                                • Workflow Based on Manual Journal

                                  Manual journal entries are one of the few areas that cannot kick off a workflow automation in Zoho Books currently. I would propose considering adding that. My use case is that the payroll provider I use (a flavor of SurePayroll) has a Zoho Books automation
                                • Zoho sheets to crm and mapping

                                  i want to know more about mapping the contacts that i upload from the spreadsheet also couldnt able to understand flow
                                • Condition-based data sharing rules are now available in CRM

                                  Dear All,   We are excited to introduce a much awaited feature: condition-based data sharing rules. We'd love to explain more about this enhancement.   Specify record conditions in data sharing rules Data sharing rules enable you to share all the CRM
                                • Automatic Portal invite

                                  We have numerous customers we move through a blueprint in deals, when they get to a certain point we need to give them portal access, how can this be done through deluge or a workflow?
                                • Directly Edit, Filter, and Sort Subforms on the Details Page

                                  Hello everyone, As you know, subforms allow you to associate multiple line items with a single record, greatly enhancing your data organization. For example, a sales order subform neatly lists all products, their quantities, amounts, and other relevant
                                • Is it possible to trigger the review process when a record is edited?

                                  Hello, I need to trigger a review process whenever a field is updated to a specific value. This field is empty when the record is created and is only filled later. I know the approval process exists, but that's not what I'm looking for in this case. What
                                • 【Zoho CRM】ウィザード機能のアップデート

                                  ユーザーの皆さま、こんにちは。コミュニティチームの中野です。 今回は「Zoho CRM アップデート情報」の中からウィザード機能のアップデート をご紹介します。 今回のアップデートにより、ウィザードの「条件処理ルール」機能が改良され、以前の入力画面の項目を基に条件を設定できるようになりました。 これまでは条件設定が1つの画面内に限られていたため、画面間で情報を関連付ける際に、余分な項目を作成する必要がありました。 今回のアップデートにより、前の画面の情報を利用して次の画面に条件を適用できるため、設定がより効率的になります。
                                • Multiple date selection

                                  Hello, we want create app for our company. We need create tasks for our employers. For example - 1 employer have task every Friday the whole year. Second have task every Monday for 6 months. For simple way create Multiple date selection in date form
                                • Last payroll of the year gives me an error

                                  Trying to run the last payroll of the year. The payment doesn't get to the employee until 1/1/25, which is correct. However when I try to process it I get the following error: Tax calculation is not supported for the year 2025. Please change the Pay date.
                                • Partner with HDFC And Sbi Bank.

                                  Hdfc and sbi both are very popular bank if zoho books become partner with this banks then many of the zoho books users will benefit premium features of partnered banks.
                                • Domain not usable

                                  We have not used this domain because the Chrome systems on our office devices are not compatible with your technology. I am sorry if no one has never advised you of this. Please cancel if it has not already been canceled. Ticket# 7526594 Please see
                                • Set organization level access to Knowledge Base and manage duplicate article permalinks (with date appended to them)

                                  Hello everyone, We have introduced two important updates in the Knowledge Base module: Permissions - A new permission called "Admin access" has been introduced under module permission. Permalink alert - Users will be alerted when an article with the same
                                • Language Field on Contact Person-level

                                  Dear at Zoho Books, would it be possible for you to have a Field for 'Language' for the Contact Persons under a Company. In CRM and Bigin we could create a Custom Field (Dropdown) for this effect but without any present in Zoho Books we could never sync
                                • This domain is not allowed to add. Please contact support-as@zohocorp.com for further details

                                  I am trying to setup the free version of Zoho Mail. When I tried to add my domain, theselfreunion.com I got the error message that is the subject of this Topic. I've read your other community forum topics, and this is NOT a free domain. So what is the
                                • Zoho Books email notifications

                                  Hi, We are currently implementing Zoho books for our organisation. I have 2 questions. 1. Are we able to embed HTML into our emails to make them look as part of our business ? Branding is very big issue for us and i would like to make sure that all branding efforts are carried across into the notification emails.. 2. Is there a way to preview the notifications that are sent out to our customers so we can make sure the look and feel is as we require ? thanks
                                • Multiple templates (Settings > Email templates)

                                  Hi Zoho, We would like to have more options to select a template when sending an email in Zohosign. Currently we can only add 1 template per option: Is this possible? Kind regards, Tristan
                                • Add an action to set agent as a member of a team in zoho desk

                                  Hi, Please add an action to zoho flow to set agent as a member of a team in zoho desk (add to a team or remove from a team). Regards, Ram
                                • Zoho email setup in office365

                                  When i am trying to setup zoho mail setup using my domain in office365 and it is not working and it says that we couldn't log on to the incoming (IMAP) server and please check your email address and password and try again. I was able to login using my
                                • Plug Samples #12: Verify Customer Mobile Numbers with OTP to Avoid Spam Entries

                                  Hi Everyone! Verifying customer information is critical in business to filter out junk data and spammers. Whether it’s lead generation, appointment booking, or any other operation, ensuring quality data is essential for driving meaningful outcomes. A
                                • All notes disappeared

                                  I've been using the notebook app for over five years on my phone without being logged into an account. A few days ago I opened the app and all my notes had disappeared. Since then I tried restarting my phone, updating the app and logging into my account,
                                • I need help in setting up a script that works for my calling service

                                  Please i need your guidance and expertise in how to go about a particular scripting. You see, we are a call service that assists companies to receive calls for them, i need to create a system in my Zoho CRM whereby i will receive call from my already
                                • Cost Center accounting

                                  Hello all. We are looking at switching from MYOB to Zoho books. Love all the features in books - esp. CRM integration, but the big gap for us is the lack of cost-center accounting feature. Are there firm plans to develop this feature in Zoho Books? If
                                • Next Page