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




                                      Zoho Desk Resources

                                      • Desk Community Learning Series


                                      • Digest


                                      • Functions


                                      • Meetups


                                      • Kbase


                                      • Resources


                                      • Glossary


                                      • Desk Marketplace


                                      • MVP Corner


                                      • Word of the Day



                                          Zoho Marketing Automation


                                                  Manage your brands on social media



                                                        Zoho TeamInbox Resources

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

                                                                                                  • Who can see draft replies on tickets?

                                                                                                    We have noticed that we are able to see draft replies made by other agents. Which settings can limit this visibility? It makes sense to me that admins and the agent who created the draft would be able to see the draft, but no one else. How can we make
                                                                                                  • Major iOS issues when accessing forms via the browser

                                                                                                    Hi, We have been using forms for some time, while the office staff are accessing the forms via the app on Android mobiles, we have a fleet of sub contractors that we would not like them having access to the main app as some of the forms are confidential
                                                                                                  • How to Iterate a Function in Zoho Desk Workflow with Delay Between Calls?

                                                                                                    Hi everyone, I’m working on a function in Zoho Desk that searches for a specific ticket record. If the ticket is not found, I need to retry the search multiple times with a delay between each attempt until the ticket is located or a maximum number of
                                                                                                  • Knowledge base: The nitty-gritty of SEO tags

                                                                                                    A well-optimized knowledge base with great SEO can benefit your company by allowing customers to find help articles and support resources using search engines. This enables customers to quickly and efficiently find the information they need without direct
                                                                                                  • Social Media Simplified with Zoho Social: Make the best out of the publishing calendar

                                                                                                    Are you a marketer who likes visualizing your plan of action before you start social media posting? Are you part of a team that works on social media on a rotational basis, so the most important task is to collaborate to avoid overlap and confusion? Or
                                                                                                  • Custom function daily limit and procedural programming

                                                                                                    Dearest Zoho Today, support confirmed that if I call a custom function from another custom function then I will use up two, with regards to my daily limit. A few times, we have blown our daily limit and that means that ordinary business processes don't run for the rest of the day. I have to mop these up the following day and there is no guarantee that I will get it right. Therefore, I can't afford to waste any. Procedural programming has been around for over 50 years now and it greatly simplifies
                                                                                                  • New enhancements: Changing portal users' email addresses and new customization options for templates

                                                                                                    Dear All, Portals have enabled organizations to extend access to various CRM modules to their customers, vendors, partners, and end users, per their business requirements. When a portal is created, an invitation email is sent to portal users with a link
                                                                                                  • Granular Time Frame Settings for Message Deletion and Editing in Zoho Cliq

                                                                                                    Dear Zoho Team, I hope you're doing well. Currently, the settings for message deletion and editing in Zoho Cliq are configured globally under: Admin Panel > Organisation > Configurations > Conversations Delete messages: Time frame to allow message deletion
                                                                                                  • Zoho One. Client Script

                                                                                                    Hi, I would like to know if the Client Script feature is available in Zoho One. If it's, how can I enable it?
                                                                                                  • Delete / Modify Default Career Site - Zoho Recruit

                                                                                                    Hello, It would be very useful if we could delete a default career site or change which of our career site is the default. Our Career site was created when there were issues with Zoho Recruit creating English CTA buttons on French Career sites. The only
                                                                                                  • Introducing automation and utility conversations in WhatsApp marketing

                                                                                                    We’re excited to announce the addition of two new features to our WhatsApp integration: Automation and Utility conversations. These enhancements will allow you to streamline your marketing efforts and engage with your customers more effectively by automating
                                                                                                  • Você já viu os cursos do Zoho Mind?

                                                                                                    Pessoal, Tem uma plataforma da Zoho chamada Zoho Mind, muito interessante os cursos e vídeos tutoriais que lá possui. Para a turma do Zoho Creator, tem uma dica de Buscar dados em Formulário, segue o link e clique em Zoho Creator. https://www.zohomind.com.br/#/videostutoriais
                                                                                                  • Como gerar gatilhos para pagamento de impostos no Zoho Books?

                                                                                                    Olá Pessoal, boa tarde! Gostaria de saber como vocês estão escriturando os impostos a pagar no Zoho Books. Vi que temos a opção de Bills, porém se eu escriturar nesta aba do Zoho Books para gerar lembretes de tempo de vencimento por exemplo vai refletir
                                                                                                  • Subform Time field to string.

                                                                                                    Good afternoon All. I have a Subform 'Delivery_Receiving_Hours' that captures Day (Dropdown), Time_Open (Time), and Time_Close (Time). I need to capture this data and send it to a multiline field in the CRM. The code, posted below, below will capture
                                                                                                  • Data export

                                                                                                    I need to export our customer's data and projects' data for our purpose but am unable to export full data i only get around 3160 projects and around 2k customer can you please help me to get full data, please
                                                                                                  • Zoho Marketing Plus : Un outil tout-en-un pour la création de pages, la collaboration et la gestion du calendrier marketing

                                                                                                    Nous sommes ravis de vous présenter trois nouvelles fonctionnalités puissantes de Zoho Marketing Plus s’enrichit désormais d’un page web (l'éditeur de pages), qui vous permet de créer des pages attrayantes et à fort taux de conversion pour vos campagnes
                                                                                                  • Grouping payments to match deposits

                                                                                                    Is there a way to group multiple invoice payments together so they match credit card batches and grouped deposits in the bank account? Basically, we are creating invoices for each of our transactions, and applying a payment to each of the invoices. Our payments are either credit cards or checks. We want to be able to group payments together so when our bank account reflects a credit card batch made up of many transactions, or the deposit we took to the bank that has multiple checks from different
                                                                                                  • Employees can not add some expenses suddenly

                                                                                                    Zoho expense was working fine and whenever there was a new merchant, it would automatically add and also the same auto added in Zoho Books (due to merchant-vendor sync) untill now. From today, it is having problems in searching the existing vendors and
                                                                                                  • iOS 10: Caller ID new feature?

                                                                                                    Hi, in the update history of the iOS App (for iOS10) - v.3.2 - i found the point "caller identification" has this feature been deactivated again? i cannot find anything on my iphone on how to activate this feature. or does it just work from the beginning?
                                                                                                  • Recommendations to store meeting notes for easy access from Contacts, Accounts & Deals module records?

                                                                                                    I would like your advice on how to achieve this use case for my organization. It’s related to where/how best to store meeting notes from a conversation with Contact(s) working at an Account (Company) in the context of a Deal. The ideal solution (from
                                                                                                  • Bank reconciliation. Match Transaction -filter

                                                                                                    When matching an imported bank statement file we only get a match if it is an excact match on both amount and date. Then a suggestions comes up with a very broad selection regarding amount, and no default "between" dates. I can then go an manually adjust the filter, and have to put in from-to amounts and dates. How do I set a default from-to date?  As an example, I would like the date to be +- 3 days, Thanks.
                                                                                                  • Added new staff but does not appear in other organization list

                                                                                                    Hi, I added the new staff under Sales Manager in the contacts, but it does not appear in the other organization list where I need to create a contact, and I can't select the newly added Sales Manager
                                                                                                  • Map fields from module X to a lookup field in subform in module Y

                                                                                                    Hi there In the 1st screenshot attached, you can see a subform in myLeads module. You can see that there is a number already filled there - that is the 'Property ID' and it is a single line field. It is the 'Property ID' of an entry I have in another
                                                                                                  • how to create a new line in string in Client Script?

                                                                                                    I want to show an alert using client script, I need to add a new line in String, I assume I can use \n\n inside a string, but unfortunately it doesnt work ZDK.Client.showAlert("First Line \n\nI expect this is in second line");
                                                                                                  • Surely it's time Inline editing from views

                                                                                                    I think the first request I found for in-line editing from grids was approximately 12 years ago - that post was locked because it was suggested Zoho sheetview solved the problem. However, it's now 2024, and in-line editing from grids is just a basic expectation.
                                                                                                  • Multi branding issue with sender addresses

                                                                                                    Hello, I'm currently working on a project involving two (seperate) brands. Named 'Windeck' and 'Prolance'. They've chosen CRM Plus and I'm currently working on CRM, SalesIQ, Social and Marketing Automation. So far, I'm able to make enough separations
                                                                                                  • Is there API Doc for Zoho Survey?

                                                                                                    Hi everyone, Is there API doc for Zoho Survey? Currently evaluating a solution - use case to automate survey administration especially for internal use. But after a brief search, I couldn't find API doc for this. So I thought I should ask here. Than
                                                                                                  • Email Campaigns overview page is missing SENT DATE and # people sent to!

                                                                                                    I would like to see the date the email campaign was sent, so I can understand and track when each email campaign was sent. Right now, unless you go to a contact who received a campaign, you cannot see when the campaign was sent (!!!!!!). So, if my boss
                                                                                                  • SEO recommendation of H1 tag for website tittle

                                                                                                    The exact words are “ It is good practice to place the page title inside the H1tag.” Now I already have one H1 tag on my website but it is not website tittle. In the SEO recommendation that is clear too that I have h1 tag on my page. Now I don’t know
                                                                                                  • How to choose other payment methodes than creditcards

                                                                                                    We have connected stripe as a payment provider in zoho books, booking, commerce and checkout. In stripe we selected al major payment methodes for Belgium (mainly bancontact). However, at checkout customers seems to have only the possibility to pay with
                                                                                                  • Can the code in my "Successful form submission" WF be invoked from a function?

                                                                                                    Can "Successful form submission" be invoked from a function? Data gets into a form manually and programatically. My code in "successful form submission" is good and I want to reuse it/call it, from another function which does Insert Into How to achieve
                                                                                                  • Kaizen #169 - Serialization and Schema Management in Queries

                                                                                                    Hello everyone! Welcome back to another post in the Kaizen series! In Kaizen #166, we discussed handling Variables in Queries and associating the query in Kiosk. This week, we will discuss Serialization and Schema management in Queries. Business Scenario
                                                                                                  • Introducing Keyboard Shortcuts for Zoho CRM

                                                                                                    Dear Customers, We're happy to introduce keyboard shortcuts for Zoho CRM features! Until now, you might have been navigating to modules manually using the mouse, and at times, it could be tedious, especially when you had to search for specific modules
                                                                                                  • Feature Request: Notebooks within notebooks (Tree-like structure)

                                                                                                    Dear Zoho! I already migrated all my stuff from Google Keep, Im really fond of Zoho Notebook so far. One thing that could make the service much more powerful is multi-level notebooks (or tree like structure). For example, entering into Notebook named
                                                                                                  • Can't get authorization for Sandbox environment using the self client

                                                                                                    Hello, After creating a self client, and following the client-credentials method (as it's not optimat to manually generate a code for every 10 minutes), after inputting the sandbox org id for SOID parameter, im getting the error: "error": "no_org". For
                                                                                                  • Create landing pages from Zoho Marketing Plus

                                                                                                    Hey everyone, Over the last few months, we've introduced various features and enhancements to bolster the marketing capabilities of Zoho Marketing Plus and make it simpler for everyone. To that end, we're excited to announce that Zoho LandingPage is now
                                                                                                  • Email tracking subdomain

                                                                                                    The Email Tracking configuration screen of the ZeptoMail asks for a subdomain. I have gone through the documentation but could not find more information about how that subdomain is used by ZeptoMail to track the emails. Can someone throw some light about
                                                                                                  • Chart View group X-axis values above a value

                                                                                                    I have a data set with X values ranging from 0 up to 300-400, the Y values are an AVG of the values for the given X. I am interested in the values at the low end of the scale, say 0-10 and want the X values 10 and greater to be grouped into a single category
                                                                                                  • How do I get the Text Account name instead of the Reference number?

                                                                                                    Good Morning everyone! I am very new to zoho analytics. I'm trying to create some pivot tables and when I add the Account or Division name it comes up as a reference number. From my research, I need to use a lookup. I'm having a really hard time understanding
                                                                                                  • Custom API - Need to create a string return value, not only MAP

                                                                                                    @Support: When creating a Custom API it only allows a return from a function of MAP type. The service I'm using requires a string return, how can this be achieved?
                                                                                                  • Next Page