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

        All-in-one knowledge management and training platform for your employees and customers.






                              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 #198: Using Client Script for Custom Validation in Blueprint

                                                                Nearing 200th Kaizen Post – 1 More to the Big Two-Oh-Oh! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
                                                              • Kaizen #226: Using ZRC in Client Script

                                                                Hello everyone! Welcome to another week of Kaizen. In today's post, lets see what is ZRC (Zoho Request Client) and how we can use ZRC methods in Client Script to get inputs from a Salesperson and update the Lead status with a single button click. In this
                                                              • Kaizen #222 - Client Script Support for Notes Related List

                                                                Hello everyone! Welcome to another week of Kaizen. The final Kaizen post of the year 2025 is here! With the new Client Script support for the Notes Related List, you can validate, enrich, and manage notes across modules. In this post, we’ll explore how
                                                              • 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


                                                              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

                                                                                                                • Is this a SCAM email or is it really Zoho?

                                                                                                                  L.S. I received the following message. Is this from Zoho? I have had a Zoho One account for many years and my website has been online for years. If it is a scam, I think you should know about it.
                                                                                                                • Is it possible to use HTML formatting in SMS messages sent from Zoho?

                                                                                                                  Hi everyone, I have a question regarding sending SMS from Zoho When we send emails from Zoho, we can include HTML code to format the message (like adding links, styling, etc.). Is it possible to do something similar when sending SMS messages through Zoho
                                                                                                                • an issue in Zoho CRM where the workflow rule is not triggering

                                                                                                                  H I’m currently facing an issue in Zoho CRM where the workflow rule is not triggering when a new lead is created through a webform. I’ve double-checked the criteria and field updates, everything seems fine but it still doesn’t fire. Has anyone faced this
                                                                                                                • Option in pipeline deal to select which hotel or branch or store if client has more than one local store

                                                                                                                  Hi, I would like to know if there is an option in the deal pipeline to select which hotel, branch, or store a deal is related to—if the company has more than one location. For example, I have a client that owns several hotels under the same company, and
                                                                                                                • Email Insights included in Bigin emals are marked as SPAM everywhere

                                                                                                                  Today I noticed that email recipients who use Office 365 never receive emails sent from Bigin. Further examination showed that all Email Insights links in email headers are marked as spam/phishing by Office 365. Example screen included. The problem is
                                                                                                                • Email Parser Not Extracting Fields Correctly with Certain Label Formats

                                                                                                                  I’ve been testing the Email Parser functionality in Zoho CRM to automatically extract data from incoming emails and map it to CRM fields. During testing, I noticed that parsing sometimes fails when the email contains field labels formatted like this:
                                                                                                                • How do I import Connected Records for a Deal?

                                                                                                                  Can you point me to an example of the CSV file that would add related records to an existing CRM Deal? I imported a Deal, then tried importing a connected record using a unique ID that references the Deal ID, but it doesn't attach it to the Deal rec
                                                                                                                • File Upload Field in Zoho Forms Not Updating Existing File in Zoho CRM

                                                                                                                  Hi everyone, I’m trying to understand the behavior of a file upload field mapped from Zoho Forms to Zoho CRM. Scenario There is a File Upload field in a Zoho CRM module. A Zoho Form also has a File Upload field, which is mapped to that CRM field. When
                                                                                                                • Zoho Training

                                                                                                                  Greetings! I am trainer. My focus area is Project Management and MS Project. I have used Zoho CRM to a good extent. Though, I was interested in using ZOHO projects, as there were no live projects, I could not take it up for studies. Recently a client
                                                                                                                • Detailed list of scoring rules in Zoho CRM

                                                                                                                  Good morning Zoho community, warm greetings The reason for my message today is that I have a problem with my CRM, which I will explain below: Our organization has scoring rules designed to rate our potential customers or leads in the application based
                                                                                                                • How to create a summary document from Projects details

                                                                                                                  Hi, Our team is creating many projects inside Zoho Project. When closing a project, they write a summary document containing data from the projects it-self (understand project budget, customers, etc...), and editable (ie the document is either a Writer
                                                                                                                • Request to Recover Deleted Task List – Project ID: RIV-MOD-10722

                                                                                                                  Hi Zoho Team, I hope this message finds you well. My Zoho task list associated with Project ID: RIV-MOD-10722 appears to have been deleted. When I clicked on the task link from the email notification, I received the following message: "Task has been deleted
                                                                                                                • Host in US Data Centre

                                                                                                                  I humble apply to be registered on US Data centre
                                                                                                                • convert the project to templet

                                                                                                                  i have some deployment ME product for different customer , i need to create a fixed template for use it rather then keeping creating this template every time
                                                                                                                • Best practices for managing Project Charters, Business Case and RAID logs within Zoho?

                                                                                                                  Hello everyone, I’m currently refining our PMO setup within Zoho Projects and I’m curious how others are handling high-level governance documentation. We’ve been using the standardized Project Charter, Business Case and RAID frameworks from projectmanagertemplate.com
                                                                                                                • Resource Management System built using Zoho CRM, Creator, Projects, and People:

                                                                                                                  In a Resource Management System built using Zoho CRM, Creator, Projects, and People: CRM Deal Closed → Creator Allocation Engine → Zoho Projects Task Assignment What is the recommended architecture to handle dynamic reassignment when: an employee goes
                                                                                                                • Dynamic Remaining Quantity in Lookup During Allocation

                                                                                                                  Hi everyone, From what I understand in Zoho Creator, lookup fields only display the stored value from the source record and do not dynamically update while a form is being filled. Because of this, showing a real-time updated remaining quantity inside
                                                                                                                • connect zoho creator with google drive

                                                                                                                  Hello everyone, I need to connect to a folder drive. The idea, is that google drive loads a text document with some data, I must read that text document to be able to autofill a form that I have in zoho creator with that data. I also attach PDFs and place
                                                                                                                • Ability to Attach Record-Specific Files Automatically in Workflow Email Templates

                                                                                                                  Currently in Zoho CRM, email templates allow attachments to be added, but these attachments are static and remain the same for every recipient. There is no straightforward option to automatically attach a file that is stored within the specific CRM record
                                                                                                                • Uploaded files are not included when using "Include user submitted data" in Email Notification

                                                                                                                  In Send Email notification workflow in Zoho Creator, there is an option called "Include user submitted data" which allows the email to contain all the form submission details. However, when this option is enabled, files or images uploaded through File
                                                                                                                • kanban view for client portal

                                                                                                                  Are kanban views an option for client portals? Access to Kanban views in the client portals would solve some mobile-compliant issues I have with the UI. Kanban functions very nicely on mobile and would be a super asset for my clients and vendors as they
                                                                                                                • Credit Card Pre-Authorization with later Capture/Settlement

                                                                                                                  We really enjoy the convenience of being able to pay off a customer's invoice using our Auth.Net integration with Zoho Books. Unfortunately, we can only take advantage of this feature with a small percentage of our customers as it leaves a gaping hole
                                                                                                                • Zoho Cliq not working on airplanes

                                                                                                                  Hi, My team and I have been having this constant issue of cliq not working when connected to an airplane's wifi. Is there a reason for this? We have tried on different Airlines and it doesn't work on any of them. We need assistance here since we are constantly
                                                                                                                • Zoho Sign 2025–2026: What's new and what's next

                                                                                                                  Hello! Every year at Zoho Sign, we work hard to make document signing and agreement execution easy for all users. This year we sat down with our head of product, Mr. Subramanian Thayumanasamy, to discuss what we delivered in 2025 and our goals for 2026.
                                                                                                                • Work Orders / Bundle Requests

                                                                                                                  Zoho Inventory needs a work order / bundle request system. This record would be analogous to a purchase order in the purchasing workflow or a sales order in the sales cycle. It would be non-journaling, but it would reserve the appropriate inventory of
                                                                                                                • Izettle or Sumup Integration for Zoho Books.

                                                                                                                  The Stripe & Square clearing works great in Zoho Books. Any further integrations planned in the future for Izettle or Sumup? These card processors are very common for taking payments with a card reader.
                                                                                                                • Train Zoho Answer Bot Based on Customer

                                                                                                                  Hi all, Is it currently possible to mark Help Centre articles to a specific customer, and restrict the answer bot to only use relevant information if it is either marked as "General", or tagged for the specific customer in question? We currently have
                                                                                                                • Trying to access records in a custom module in Zoho Desk and not having luck

                                                                                                                  I've built a custom module in Zoho Desk and am using a custom function to query the records in the module and I'm not having any luck. The only way I have found to retreive a record is by getting it by its recordID (the long zoho assigned one). The function
                                                                                                                • Composite items inside of composite items; bill of materials needed

                                                                                                                  Hi Zoho and Everyone, I am evaluating whether Zoho Inventory will work for my small business. I grow and harvest herbs and spices but also get from wholesalers. I use all these items to make herbal teas, but also sell them as individual items on my Shopify store and Etsy. I discovered the composite item bundling and am wondering if I could get some assistance since there is no bill of materials: Our herbal company's best selling tea is a sleepytime tea. Sleepytime Tea can be purchased in three weights
                                                                                                                • ZOHO Books Smart Accounting Software for Travel Agency

                                                                                                                  Dear Travel partner, Contact for Travel Agency Accounting Setup & Training Vansh Travel (ZOHO Books Authorised partner) Email: info@vanshtravel.com Mo: +91 98984 95155 Please find PDF   
                                                                                                                • 452 Mailbox delivery restricted by policy error

                                                                                                                  We have been testing Zoho desk for about a week now and have been forwarding emails in via an Exchange Online Mail flow rule without issue until yesterday. Suddenly yesterday morning we started getting the vast majority of the emails stuck in Pending
                                                                                                                • Send Email reply on behalf of Agent

                                                                                                                  Hi, When using the send email reply via the API I can set the reply on behalf of the customer by using impersonatedUserId in the header of the API call. Is there a way to do this for Agents too? I need to be able to send an email reply on behalf of an
                                                                                                                • Sharing Tickets to a team within a department

                                                                                                                  Hi there, We have a need for one department to be able to share tickets to a specific team within a department, I'm wondering if this is possible? All the shared tickets are going into the 'Shared Tickets' view for the whole department but is there a
                                                                                                                • Removing To or CC Addresses from Desk Ticket

                                                                                                                  I was hoping i could find a way to remove unnecessary email addresses from tickets submitted via email. For example, a customer may email the support address AND others who are in the helpdesk notification group, in either the TO or CC address. This results
                                                                                                                • Do not use isnull()

                                                                                                                  Does not always return booleans. Can also return null. Never use this function. Just use var==null instead.
                                                                                                                • Organization wide Account and Contacts Visibility/Sharing Capabilities?

                                                                                                                  Has anyone figured out a way to make visibility or sharing of Accounts and Contacts to be available across the entire organization without having to have every individual user edit their Sharing permissions? For our sales folks they need to be able to
                                                                                                                • Is there a way to configure dark mode for Campaigns emails that go out to customers?

                                                                                                                  I've found a lot of information on how to configure dark mode for my (The user) personal Zoho workspace and email, but is there any way to edit dark mode settings on emails that we send out to customers via campaigns?  We sent out a test email the other
                                                                                                                • When Does WorkDrive integrate with Books?

                                                                                                                  When Does WorkDrive integrate with Books?
                                                                                                                • FSM integration with Books

                                                                                                                  Hi, I have spent a few months working with FSM and have come across a critical gap in the functionality, which I find almost shocking....either that, or I am an idiot. The lack of bi-directional sync between Books and FSM on Sales Orders/ Work Orders
                                                                                                                • How to close an estimate ?

                                                                                                                  Hello, I have created estimates, and converted them to invoices to get 50% payment. Now I have 2 cases where the estimate stills shows status partially invoiced, however: 1. for one of them, project stopped half way, so the remaining part will never be
                                                                                                                • Next Page