Kaizen #21 - Functions in Zoho CRM

Kaizen #21 - Functions in Zoho CRM

Hello everyone!

Welcome back to another week in the Kaizen series!
This week, we will discuss Functions in detail.

What will you learn from this post?
  1. What are Functions in Zoho CRM?
  2. Creating a function
    1. Choosing a function category
    2. Function body
  3. Integration Tasks
  4. Triggering Functions
    1. From Zoho CRM functionalities
    2. From third-party applications
  5. Limits of Functions

1. What are Functions in Zoho CRM?
  • Functions help you accomplish the tasks that are not available by default in Zoho CRM. 
  • You must write custom functions using DELUGE [Data Enriched Language for the Universal Grid Environment]—An online scripting language.
  • Using custom functions, you can automate actions within Zoho CRM, across Zoho products, or between Zoho CRM and any other third-party application.
Note:
Functions are supported only in the enterprise and ultimate editions.

2. Creating a function

To create a function:

Step 1: Go to Setup > Developer Space > Functions


Step 2: Click +New Function


Step 3: Enter details like the Function Name, Display Name, Description, and choose the function category.


2a. Choosing a function category

Functions can fall under five categories:
  • Button: The function gets executed when the user clicks the custom button.
  • Automation: The function gets executed based on workflow rules.
  • Schedule: The function gets executed based on a schedule.
  • Related List: The function gets invoked from a related list.
  • Standalone: A stand-alone function that can be triggered externally.
  • Validation Rule: The function gets executed based on a validation rule.

Step 4: Write the function logic in the console. To know more about DELUGE, refer to Deluge.
Here is an example of a function that automatically generates a quote from a deal on just the click of a button. In DealToQuote() function, the input values are extracted from deals. You can also choose to get them from the users as arguments or JSON request body.


2b. Function Body
potDetails = zoho.crm.getRecordById("Deals",potId.toLong());//integration task
/*Extracting details from the deal*/
quotesubject = ifnull(potDetails.get("Deal_Name"),""); 
contact = ifnull(potDetails.get("Contact_Name").get("id"),""); 
account = ifnull(potDetails.get("Account_Name").get("id"),"");
description = ifnull(potDetails.get("Description"),"");
RelatedProducts = zoho.crm.getRelatedRecords("Products","Potentials",potId.toLong());
product_items = List();
sub = 0.0;
/*Extracting product details from the deal and adding it to quote*/
for each product in RelatedProducts
{
proid = product.get("id");
proname = product.get("Product_Name");
productDesc = ifnull(product.get("Description"),"Manque Description Produit !!!");
quantity = 1;
price = ifnull(product.get("Unit_Price"),"0.0").toDecimal();
listprice = price * quantity;
lineitem = Map();
lineitem.put("product",{"name":proname,"id":proid});
lineitem.put("product_description",productDesc);
lineitem.put("quantity",quantity);
lineitem.put("net_total",listprice);
lineitem.put("total",listprice);
lineitem.put("list_price",listprice);
sub = sub + listprice;
product_items.add(lineitem);
}
/*Storing quote details*/
paramap = Map();
paramap.put("Product_Details",product_items);
paramap.put("Subject",quotesubject);
paramap.put("Contact_Name",contact);
paramap.put("Account_Name",account);
paramap.put("Deal_Name",potId.toLong());
paramap.put("Sub_Total",sub);
paramap.put("Grand_Total",sub);
paramap.put("Description",description);
createResp = zoho.crm.createRecord("Quotes",paramap);
info paramap;
info createResp;
newid = createResp.get("id");
return "Success";

Step 5: Once you have written your logic, click save and execute.


Step 6: Enter the argument values, if any.


Step 7: If your function gets executed successfully, you will get a success message.

Step 7: Click Save.

3. Integration Tasks
Integration tasks are pre-defined functions that allow you to get, create, and update records in Zoho CRM. You can simply use these method names in your Deluge script along with the required data to make API calls. 
In the above example, we have used the getRecordById() integration task that retrieves the details of the deal. For instance, the Deal Name, Contact Name, Account Name, and so on.

Syntax:
<response>=zoho.crm.getRecordById(<module_name>, <record_ID>, <connections>);

Parameters:
Parameter
Description
response
The response with the list of records matching the criteria.
module_name
string, mandatory
The API name of the module you want to fetch the records from.
record_ID
string, mandatory
The unique ID of the record.
connections
string, optional
The connectors that are associated with the function.

Example:
potDetails = zoho.crm.getRecordById("Deals",potId.toLong());

Some of the other available integration tasks are:
To know more about integration tasks, click here.

4. Triggering functions

A function needs a trigger to get executed. You can trigger a function in two ways:
      4a. From Zoho CRM functionality
      4b. From third-party applications

Scenario:
Functions are primarily used to write custom business logic in Zoho CRM. Consider a scenario, where you want your sales representatives to create a quote after reviewing the deal. Instead of letting them create each quote manually, you can add a custom button in the Edit Deal page, which when clicked upon, triggers a function that creates a quote. 

Also, you can configure a third-party system to automatically create a quote in Zoho CRM when the deal amount is less than 1000 OR the deal stage is closed-won. Thus, avoiding manual intervention and enabling them to emphasise on substantial deals. 

Let us discuss how to trigger the DealToQuote() function via a custom button and a third-party application. You can also trigger the same function from a third-party application as a REST API webhook

4a. From Zoho CRM functionality (Custom Button)
  1. Go to Setup > Customization > Modules and Fields.
  2. From the List of Modules, select the required module.
  3. In the Links & Buttons tab, click Create New Button.
  4. In the Create Your Button page, do the following:
    1. Enter the name of the button. The button name should not exceed 30 characters.
    2. Click the Add Description link and specify the details of your custom button. The description should not exceed 250 characters.
    3. Choose the location of your custom button from the drop-down list.
    4. Custom buttons can be placed in 6 different places in your CRM account - Create/Clone page, Edit page, View page, List View page, a button to each record in the list view and Related Lists Page. Note that you can create up to 50 buttons for each module.
  5. Choose an action to be executed when a user clicks the custom button. You can either choose a predefined action from the gallery or the existing functions that were already created by the users in your organization. Also, define your own action by writing a custom function, open a new web tab or invoke a URL based on your needs. It is mandatory to choose the button action. In our case, From Existing Actions in Functions. Choose the function and click Configure.


6. Map the input values to the fields in that module and click Save.


Once the custom button is associated with an action, CRM Administrators can manage permissions by assigning only specific profiles to view and access the custom button.

Similarly, you can associate functions with SchedulesWorkflowsValidation Rules, and Related Lists.

To know more, click here.

4b. From third-party applications

Here, we are going to configure a third-party system to automatically create a quote in Zoho CRM when the deal amount is less than 1000 OR the deal stage is closed-won, thus avoiding manual intervention. 

To achieve this, we are going to trigger the DealToQuote() function from a third-party application (automate.io), whenever the above conditions are met. 



If you want to trigger a function from a third-party application, you must make it available as REST API. 

1. Go to SetupDeveloper SpaceFunctions
2. Choose the function > Click more options > Click REST API


3.Enter the API name for the function. 
4. Enable OAuth 2.0 to share the function as an API within your organization and enable API key to share the function as a webhook with any third-party user.
Click Save.


You must make the API call from the third-party application using the request URL received here.

The DealToQuote() function is triggered from a third-party application (automate.io). You can achieve the same using:
  • Zoho Flow
  • Zoho CRM workflow rule that is triggered whenever a deal is updated
Sample bot configuration in automate.io:


We have triggered the DealToQuote() function using custom button as well as a third-party application. 



5. Limits of Functions
Function calls in Zoho CRM are associated with credits. Each function call results in reduction of one credit from your account. 
Maximum credit limit based on your edition
Edition
Allowed Credits
Maximum credits that can be availed in a 24 hour window
Starter
5,000 credits + (Number of User licenses x 200)
10,000 credits
Standard
5,000 credits + (Number of User licenses x 200)
15,000 credits
Professional
5,000 credits + (Number of User licenses x 200)
20,000 credits
Enterprise/Zoho One/CRM Plus
20,000 credits + (Number of User licenses x 500)
1,00,000 credits
Ultimate
20,000 credits + (Number of User licenses X 1000)
2,00,000 credits

Limits based on properties of a function
Functionality
Description
Limits
Execution Time
Function should be executed within the specified time.
1 minute
Response Limit
Function should return the response within a particular size.
10 MB
Lines of execution
The number of lines in a function code has a limit.
200,000
Send Mail
The number of emails that you can using the send mail syntax has a limit.
1000 per day
Webhooks
GET and POST URLs
50,000 requests per day

For more tips, refer to function tips.

We hope you found this post useful. Stay tuned for more!

Cheers!

Previous 'Kaizen' - Node JS SDK
Next 'Kaizen' - Connections in Zoho CRM

    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



                                                            • Sticky Posts

                                                            • Kaizen #217 - Actions APIs : Tasks

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

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

                                                              Hello everyone! Have you ever wanted to trigger actions on click of a canvas button, icon, or text mandatory forms in Create/Edit and Clone Pages? Have you ever wanted to control how elements behave on the new Canvas Record Forms? This can be achieved
                                                            • Kaizen #142: How to Navigate to Another Page in Zoho CRM using Client Script

                                                              Hello everyone! Welcome back to another exciting Kaizen post. In this post, let us see how you can you navigate to different Pages using Client Script. In this Kaizen post, Need to Navigate to different Pages Client Script ZDKs related to navigation A.
                                                            • Kaizen #210 - Answering your Questions | Event Management System using ZDK CLI

                                                              Hello Everyone, Welcome back to yet another post in the Kaizen Series! As you already may know, for the Kaizen #200 milestone, we asked for your feedback and many of you suggested topics for us to discuss. We have been writing on these topics over the


                                                            Manage your brands on social media



                                                                  Zoho TeamInbox Resources



                                                                      Zoho CRM Plus Resources

                                                                        Zoho Books Resources


                                                                          Zoho Subscriptions Resources

                                                                            Zoho Projects Resources


                                                                              Zoho Sprints Resources


                                                                                Qntrl Resources


                                                                                  Zoho Creator Resources



                                                                                      Zoho CRM Resources

                                                                                      • CRM Community Learning Series

                                                                                        CRM Community Learning Series


                                                                                      • Kaizen

                                                                                        Kaizen

                                                                                      • Functions

                                                                                        Functions

                                                                                      • Meetups

                                                                                        Meetups

                                                                                      • Kbase

                                                                                        Kbase

                                                                                      • Resources

                                                                                        Resources

                                                                                      • Digest

                                                                                        Digest

                                                                                      • CRM Marketplace

                                                                                        CRM Marketplace

                                                                                      • MVP Corner

                                                                                        MVP Corner







                                                                                          Design. Discuss. Deliver.

                                                                                          Create visually engaging stories with Zoho Show.

                                                                                          Get Started Now


                                                                                            Zoho Show Resources

                                                                                              Zoho Writer

                                                                                              Get Started. Write Away!

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

                                                                                                Zoho CRM コンテンツ



                                                                                                  Nederlandse Hulpbronnen


                                                                                                      ご検討中の方




                                                                                                              • Recent Topics

                                                                                                              • Creator HTML page refresh

                                                                                                                Hi, I have added around 5 different html snippets in single creator page. I understand, I can refresh the entire page from page script using Navigational URLs https://help.zoho.com/portal/en/kb/creator/developer-guide/others/url-patterns/articles/navigational-urls
                                                                                                              • Zoho Desk - Custom Module Related List Columns on Tickets

                                                                                                                I have a custom module in Zoho Desk called Asana Tasks, each task has a lookup to a Ticket. On the Ticket I want to see the columns of the Asana Tasks in the related list . Is there a way to do this? Right now it just has the name of the record and I
                                                                                                              • What is your opinion of the new UI?

                                                                                                                Hi Everyone, I would like to see what everyone thinks of the new Zoho One Dashboard. I don't get it, but perhaps I'm missing something. What are your thoughts?
                                                                                                              • What are the OAuth scopes needed to access the Zoho MCP server?

                                                                                                                I think I'm authenticating with the MCP server endpoint successfully using a bearer token but I can't successfully initialize an MCP session. I'm using the official MCP Python sdk (https://github.com/modelcontextprotocol/python-sdk). I get as far as here
                                                                                                              • cant upload images in signature- urgent help needed. ta!

                                                                                                                HI, I have been trying to insert the company logo in the signature. i have tried it several times since yesterday, the longest I waited was 1 hour and 12 minutes for the pop up window to upload a 180 KB .jpg file. what am i doing wrong..  an urgent reply will be appreciated,  Ta
                                                                                                              • Account blocked for IMAP use

                                                                                                                Hello, My email client (Evolution) can't sync mail anymore. It gives the error: "Your account is temporarily blocked for IMAP use. This may happen if you exceed the maximum number of simultaneous IMAP connections allowed. Kindly try again after some time."
                                                                                                              • Is SMTP included in the free plan?

                                                                                                                My client has a Zoho Mail Free 14 day trial that ends tomorrow. She has set up a domain email address with SMTP on a third party app and is wondering if it will continue working once her plan downgrades to the free forever plan. Thanks
                                                                                                              • Zoho mail issue.

                                                                                                                I have verified my domain ohhoexpress.online by adding necessary TXT and MX records. But when I am sending email to any external email id, it is showing as zohomail.com. Also while I am sending mail to internal mail id, it is saying user not found whereas
                                                                                                              • My email is blocked from sending

                                                                                                                I get this message when I try to send any message .. > Unable to send message, Reason 554 5.1.8 Email Outgoing Blocked We have urgent emails to send and the issue continues to persist from yesterday. Please help us with this issue as soon as possibl
                                                                                                              • [WEBINAR] Smooth year-end closure with Zoho Books (KENYA)

                                                                                                                Hello there, This webinar is for all Kenyan businesses looking to wrap up their financial year smoothly! Join our free session to learn how Zoho Books can simplify your year-end process. What to expect from this webinar: - All the latest updates in Zoho
                                                                                                              • cannot recieve or send emails

                                                                                                                we are not recieving or cannot send emails.Shows sysytem error
                                                                                                              • Zoho Sites - contact us form

                                                                                                                I have added a contact us form to my website. I wanted to change the layout so I deleted the section of Contact Us form. When I again try to add the section of Contact Us form, it shows error that "This form already exists on this page."  I am unable
                                                                                                              • switching from POP3 to IMAPI do I need to change settings in Web email?

                                                                                                                hi so I am using Outlook with My Zoho mail, also have Verizon email /AOL. they no longer support POP3 and said imapi is much better, so I want to switch my ZoHo to imapai. I googled and it said i need to change it in my account....i looked at my account
                                                                                                              • What functionality is new in the Z025 Spaces UI dashboard compared to the previous Zoho One dashboard?

                                                                                                                My company is interested in creating a revamped dashboard this coming year, and are trying to weigh different platform options. The new Spaces UI is said to be a more "feature-rich" dashboard experience than the previous. Could a developer please explain
                                                                                                              • Collections Management: #5 Convenience on Offer, using Self-Checkout

                                                                                                                "Is this the right page? Oh, now, it wants my address again. Why am I being redirected?" These were the exact thoughts running through Karan's mind as he tried to subscribe to an application he genuinely liked. He clicked "Buy Now", expecting a quick
                                                                                                              • Tip #50- A Closer Look at the Unattended Access Dashboard- 'Insider Insights'

                                                                                                                Having complete visibility and quick access to everything you need certainly makes managing multiple remote devices a lot easier, and that is precisely what the Unattended Access Dashboard in Zoho Assist is designed to offer. Once you go to the Unattended
                                                                                                              • How to update custom multi-user field in Zoho Projects?

                                                                                                                I'm trying to update custom multi-user fields in Zoho Projects via a Deluge function in CRM. The code I have so far is below. It works for updating standard project fields and single-line custom fields, but it does not work to update multi-user fields.
                                                                                                              • Tip of the Week #75– Manage your social media messages from a single shared inbox.

                                                                                                                Are you tired of jumping between apps or browser tabs to reply to your business's Facebook and Instagram DMs? Handling customer messages on social media might seem simple, but switching between multiple platforms can easily lead to lost messages, duplicate
                                                                                                              • Zoho Map integration tasks have changed - you need to "Locate all instances of Zoho Map integration tasks in your Deluge scripts by searching for the v1 marker... before 16 January 2026"

                                                                                                                The Zoho Map deluge integration task has been changed (as at 21 October 2025) to provide a more structured, JSON-like response. This change affects all three Zoho Map integration tasks (Geocode, Reverse Geocode, and Distance Between). More details can
                                                                                                              • Using files from Zoho CRM in Gemini/ChatGPT/Claude

                                                                                                                Hi all, I’ve got subscriptions to Gemini and a few other AI tools which I use for tasks like data enrichment, email composition, etc. In our workflow, we often receive various documents from clients — such as process workflows, BRDs/requirement documents
                                                                                                              • Zoho Analytics & Zoho Creator - Modified Time value

                                                                                                                I'm trying to use the Zoho Creator system field 'modified time' in Zoho Analytics, but it's consistently showing 12 hours 'out' In Zoho Creator In Zoho Analytics Is this a constant difference that I just need to correct with a timezone change - or is
                                                                                                              • Zoho CRM - Option to create Follow-Up Task

                                                                                                                When completing a Zoho CRM Task, it would be very helpful if there was an option to "Complete and Create Follow-Up Task" in the pop-up which appears. It could clone the task you are closing and then show it on the screen in edit mode, all the user would
                                                                                                              • Portal For Different Apps

                                                                                                                I found some older threads on this but didn't see anything very recent. I'm new to Zoho One so forgive me if my terminology is off a bit. I was hoping set up a single point of entry into Zoho One. So, many of the apps could be found in one single place
                                                                                                              • Calls undetected

                                                                                                                Zoho Voice records indicate my last call ended at 6:00 PM. All incoming and outgoing calls occurred between 6:00 PM and 7:00 PM.
                                                                                                              • Unable to Select Authenticated Domain as Sender

                                                                                                                We’ve already authenticated our domain, but it’s still not appearing in the sender list when we try to run a campaign. Could you please check what might be causing this issue?
                                                                                                              • Introducing WhatsApp integration in Bigin

                                                                                                                Greetings! In today's business landscape, messaging apps play a significant role in customer operations. Customers can engage with businesses, seek support, ask questions, receive personalized recommendations, read reviews, and even make purchases—all
                                                                                                              • Zoho Projects - Show Task List as dropdown field on Task records

                                                                                                                Hi Project's Team, I noticed today that there is no field on a task record related to the task list it belongs to. A dropdown would be helpful for quickly moving tasks between lists while in a task. I know that you can go to "Other Actions" and choose
                                                                                                              • My followed tickets extension is not working under the All departments view

                                                                                                                Hi. I've installed the My followed tickets extension. However, when I try to open the extension under the all departments view, I get the following message: 'Sorry, this extension is not supported in the All Departments view.' How can I solve this p
                                                                                                              • Ticket Time Entry to Timesheet

                                                                                                                The title just about sums it up. I have searched here and not found anything relevant, but If I overlooked, then please set me straight.  We have staff that do nothing but close tickets in desk all day long. These tickets represent their timesheet. Is there a way to have this information sync or for a tech to go into their timesheet themselves and sync it with their tickets of the same timeframe?? We waste a ton of time doing timesheets and the old "Clock in/Clock out" isnt detailed enough for us!!
                                                                                                              • Calls undetected.

                                                                                                                The call is not showing on the call log.
                                                                                                              • Calls undetected

                                                                                                                Zoho is not reading calls made.
                                                                                                              • Multi-currency and Products

                                                                                                                One of the main reasons I have gone down the Zoho route is because I need multi-currency support.  However, I find that products can only be priced in the home currency, We sell to the US and UK.  However, we maintain different price lists for each. 
                                                                                                              • Missing information data Zoho inventory

                                                                                                                there some missing data in Zoho inventory connection. pick list stock counts bin location we have requested it via mail and the support team doesn’t gove feedback. has anyone achieve to get these info or to ask other ya les
                                                                                                              • Calendar Events Issues

                                                                                                                Not able to view scheduled events on my calendar
                                                                                                              • Extensions 101 webinar series: Build, integrate, and monetize with extensions

                                                                                                                Attention developers! Are you ready to take your extension development skills to the next level? We're excited to bring back the Extensions 101 webinar series with an expanded lineup of Zoho products and an introduction to more platform features. Last
                                                                                                              • Custom Related List Inside Zoho Books

                                                                                                                Hello, We can create the Related list inside the zoho books by the deluge code, I am sharing the reference code Please have a look may be it will help you. //..........Get Org Details organizationID = organization.get("organization_id"); Recordid = cm_g_a_data.get("module_record_id");
                                                                                                              • Where are recordings stored?

                                                                                                                I have hosted a couple of test meeting, used the "record" button to start and stop the recording but I am unable to find where are those recordings saved?  Can anybody help? Thanks
                                                                                                              • Zoho Desk's integration with Microsoft PowerBI delivers advanced analytics insights

                                                                                                                Hello everyone, Gaining advanced insights through reports and dashboards is one of the critical requirements of every business. In addition to key metrics tracked in Zoho Desk, such as agent performance, SLA adherence, and ticket lifecycle, businesses
                                                                                                              • Create static subforms in Zoho CRM: streamline data entry with pre-defined values

                                                                                                                Last modified on (9 July, 2025): This feature was available in early access and is currently being rolled out to customers in phases. Currently available for users in the the AU, CA, and SA DCs. It will be enabled for the remaining DCs in the next couple
                                                                                                              • IMAP error message in Zoho mail

                                                                                                                I cannot send emails today. Everything fine for years until today. Get a message: "You are yet to enable IMAP for your account. Please contact your administrator". Does anyone know how to correct this?
                                                                                                              • Next Page