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

                                                                                                                • Exporting All Custom Functions in ZohoCRM

                                                                                                                  Hello, All I've been looking for a way to keep about 30 functions that I have written in Zoho CRM updated in my own repository to use elsewhere in other instances. A github integration would be great, but a way to export all custom functions or any way
                                                                                                                • filter on sheets mobile (iOS, iPadOS) does not work

                                                                                                                  I have this issue on every spreadsheet, whether imported or created natively in Zoho Sheets. I can use on desktop without issue: desktop screenshot on iOS the filter dropdowns are not there and there is no way to add them mobile iPadOS looks the same
                                                                                                                • 【Zoho CRM】商談タブへのデータインポート

                                                                                                                  Zoho使用前にエクセルで管理していた商談情報を、Zoho一括管理のため、商談タブにインポートしたいのですが、お客さまの氏名だけが紐づけられませんでした。 「Zoho CRMにインポートする項目を関連付ける」のところが画像のようになっています。 (弊社では、「姓」を「★個人データ名」という項目名に変更し、フルネームを入れて使用しています。) どのようにしたら氏名をインポートできるかご存じの方がいらっしゃいましたら、ご教示いただきたく、よろしくお願いいたします。 (投稿先が間違っていましたらご指
                                                                                                                • Zoho Often Lag

                                                                                                                  Desk Team, We've noticed that Desk, Creator & other apps seems to lag more these days. We often refresh multiple times.
                                                                                                                • Canva Integration

                                                                                                                  Hello! As many marketing departments are streamlining their teams, many have begun utilizing Canva for all design mockups and approvals prior to its integration into Marketing automation software. While Zoho Social has this integration already accomplished,
                                                                                                                • Can't edit Segments

                                                                                                                  Happening with 2 different Zoho One environments, in different browsers. Please fix.
                                                                                                                • Zoho Sheet for Desktop

                                                                                                                  Does Zoho plans to develop a Desktop version of Sheet that installs on the computer like was done with Writer?
                                                                                                                • From Zoho CRM to Paper : Design & Print Data Directly using Canvas Print View

                                                                                                                  Hello Everyone, We are excited to announce a new addition to your Canvas in Zoho CRM - Print View. Canvas print view helps you transform your custom CRM layouts into print-ready documents, so you can bring your digital data to the physical world with
                                                                                                                • Transfer ownership of files and folders in My Folders

                                                                                                                  People work together as a team to achieve organizational goals and objectives. In an organization, there may be situations when someone leaves unexpectedly or is no longer available. This can put their team in a difficult position, especially if there
                                                                                                                • Consumer Financing

                                                                                                                  Does Zoho currently have a payment gateway (such as Stripe, Square, etc) which offers financing for customers? So, let's say the estimate we give the customer is greater than what they can afford at the time, but we can sell the service now, letting them
                                                                                                                • How can Data Enrichment be automatically triggered when a new Lead is created in Zoho CRM?

                                                                                                                  Hi, I have a pipeline where a Lead is created automatically through the Zoho API and I've been trying to look for a way to automatically apply Data Enrichment on this created lead. 1) I did not find any way to do this through the Zoho API; it seems like
                                                                                                                • validation rules doesn't work in Blueprint when it is validated using function?

                                                                                                                  I have tried to create a validation rule in the deal module. it works if I try to create a deal manually or if I try to update the empty field inside a deal. but when I try to update the field via the blueprint mandatory field, it seems the validation
                                                                                                                • Subform edits don't appear in parent record timeline?

                                                                                                                  Is it possible to have subform edits (like add row/delete row) appear in the Timeline for parent records? A user can edit a record, only edit the subform, and it doesn't appear in the timeline. Is there a workaround or way that we can show when a user
                                                                                                                • 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
                                                                                                                • Mandatory Field - but only at conversion

                                                                                                                  Hello! We use Zoho CRM and there are times where the "Lead Created Date & Time" field isn't populated into a "Contractor" (Account is the default phrase i believe). Most of my lead tracking is based on reading the Lead Created field above, so it's important
                                                                                                                • Zoho CRM for Everyone's NextGen UI Gets an Upgrade

                                                                                                                  Hello Everyone We've made improvements to Zoho CRM for Everyone's Nextgen UI. These changes are the result of valuable feedback from you where we’ve focused on improving usability, providing wider screen space, and making navigation smoother so everything
                                                                                                                • File Upload field automatically replaces spaces with underscores – support experience

                                                                                                                  Hi everyone, I want to share my recent experience regarding the File Upload field behavior in Zoho Creator and my interaction with the Zoho support team. When a user uploads a file, the system automatically renames the document by replacing spaces in
                                                                                                                • Deluge function to copy parent record file upload field to child record file upload field

                                                                                                                  I'm stuck trying to write a deluge function that is triggered via automation in child record "Appointments," confirms if a file is in file upload "Report" field of parent "Contacts" record via Contacts lookup field "Contact_Name". If no file is in parent
                                                                                                                • Zoho Books Sandbox environment

                                                                                                                  Hello. Is there a free sandbox environment for the developers using Zoho Books API? I am working on the Zoho Books add-on and currently not ready to buy a premium service - maybe later when my add-on will start to bring money. Right now I just need a
                                                                                                                • Make panel configuration interface wider

                                                                                                                  Hi there, The same way you changed the custom function editor's interface wider, it would be nice to be able to edit panels in pages using the full width of the screen rather than the currently max-width: 1368px. Is there a reason for having the configuration panel not taking the full width? Its impossible at this width to edit panels that have a lot of elements. Please change it to 100% so we can better edit the layouts. Thanks! B.
                                                                                                                • Image Compression Options

                                                                                                                  Much better if we have level of options to compress the image [20%, 40%...] We are dealing with service reports daily that has before and after photos (image field)- the file size too large and one thing, the current limit is 10mb or 15mb for report
                                                                                                                • Cannot get code to work with v2.mergeAndStore!

                                                                                                                  Please can someone help me pass subform items into a repeating mail merge table row using v2.mergeAndStore? I have a mail merge template created in Writer and stored in Workdrive. This template is referenced by a custom CRM function which merges all of
                                                                                                                • How to hide or archive a blog post temporarily in Zoho commerce website builder?

                                                                                                                  I would like to temporarily hide or archive a blog post in zoho commerce website builder so that it doesnt appear on my website till I enable it again. I tried to look for this option but could not find it.  It only allows me to permanently delete a blog
                                                                                                                • Founders using Zoho — are you leveraging Zoho Campaigns + Zoho Social for thought leadership… or just sending emails?

                                                                                                                  I’ve noticed something interesting in the Zoho ecosystem. Many founders use Zoho Campaigns and Zoho Social for basic marketing—newsletters, scheduled posts, and announcements. But very few are using these tools strategically to: • Position themselves
                                                                                                                • WATERFALL CHART IN ZOHO ANALYTICS

                                                                                                                  Hi Team, I would like to know whether Zoho Analytics currently supports a Waterfall Chart as a built-in visualization type. If yes, could you please share the steps to create one? If not, is there any workaround or recommended method to build a Waterfall
                                                                                                                • How to mix different types of inputs (such as dropdown list and textbox)

                                                                                                                  Hi, I'm creating a form called "Room Reservations" for a company. I created a "table" using "Matrix Choice". I created "Room 1", "Room 2" and "Room 3" with the "Questions". I would then like to create two columns with the "Answers", one called "Department"
                                                                                                                • Full Context of Zoho CRM Records for Zia in Zoho Desk for efficient AI Usage

                                                                                                                  Hello everyone, I have a question regarding the use of Zia in Zoho Desk in combination with CRM data. Is it possible to automatically feed the complete context of a CRM record into Zia, so that it can generate automated and highly accurate responses for
                                                                                                                • Ability to assign Invoice Ownership through Deluge in FSM

                                                                                                                  Hi, As part of our process, when a service appointment is completed, we automated the creation of the invoice based on a specific business logic using Deluge. When we do that, the "Owner" of the invoice in Zoho FSM is defaulted to the SuperAdmin. This
                                                                                                                • Reply to Email for SO/PO

                                                                                                                  Hello, We are new to Zoho Books and running into an issue. Our support@ email is our integration user. When our team is sending out PO/SO's we are updating the sender email, but for some reason many of our responses are coming back to our support@ email
                                                                                                                • How to Convert NSF to PST Format Effortlessly? - SYSessential

                                                                                                                  It is highly recommended to obtain the error-free solution of the SYSessential NSF to PST converter to convert NSF files from Lotus Notes. Using this professional software, it becomes easier to convert all NSF database items, including emails, journals,
                                                                                                                • Zoho Commerce - Poor Features Set for Blogging

                                                                                                                  Hi Zoho Commerce team, I'm sure you will have noticed that I have been asking many questions about the Blogs feature in Commerce. I thought that it would be useful if I share my feedback in a constructive way, to highlight the areas which I feel need
                                                                                                                • Pass shipping info to payment gateway Zoho Books to Authorize.net

                                                                                                                  For some reason the integration from Zoho books to Authorize.net does not pass the shipping address. Authorize.net is ready to receive it, but zoho books does not send it
                                                                                                                • Massive Zoho Books failure

                                                                                                                  We have not received any communication or notification from Zoho, but we have detected that Zoho Books is not working for all our users. We cannot access or use Zoho Books. This is critical. We are trying to contact Zoho on the Spain telephone number,
                                                                                                                • Does the Customer “Company Name” field appear anywhere in the Zoho Books UI outside of PDFs?

                                                                                                                  Hi everyone, I’m trying to understand how the Company Name field is actually used in Zoho Books. There is a Company Name field on the customer record, but when viewing transactions like a Sales Order in the normal UI (non-PDF view), that field doesn’t
                                                                                                                • Email outbox is now available in the sandbox

                                                                                                                  Hello all! Testing emails without visibility has always been a blind spot in the sandbox. With the new Outbox, that gap is closed. You can now view and verify every email triggered from your sandbox, whether it’s through workflows, approvals, or mass
                                                                                                                • Zoho Desk blank screen

                                                                                                                  opened a ticket from my email, zoho desk comes up blank, nothing loads. our receptionist also gets the same thing under her login on her computer. our sales rep also gets same thing on zoho desk at his home on a different computer. I tried clearing cache/history/cookies,
                                                                                                                • Looking For Recruit Developer

                                                                                                                  Hi everyone, I am looking for a Zoho Certified Developer to assist with a development project for MetalXpert. We are building a software system designed to bridge the gap between a candidate mobile app and an employer web portal using Zoho Recruit as
                                                                                                                • sales IQ issue on website

                                                                                                                  i integrated the zoho sales IQ code on the website but it is comming in distroted form i am sharing the screenshot below the website is bulit in wix platform
                                                                                                                • 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. There
                                                                                                                • Deprecation of the Zoho OAuth connector

                                                                                                                  Hello everyone, At Zoho, we continuously evaluate our integrations to ensure they meet the highest standards of security, reliability, and compliance. As part of these ongoing efforts, we've made the decision to deprecate the Zoho OAuth default connector
                                                                                                                • Next Page