Function-36: Figure out how long and how much it takes to convert a lead to a deal!

Function-36: Figure out how long and how much it takes to convert a lead to a deal!



Welcome back everyone!

Last week, we learnt how to close all tasks associated with a lead and create a new task. This week, let's look at a function that lets you calculate the total number of activities for a lead and further take note of the activity count for particular dates. For instance, from the period of Demo to Negotiation.

Business scenario: 

We all know how much work goes into handling a lead, negotiating and converting them into deals. It doesn't stop there though. From the start of interacting with a lead to completing the deal and producing an invoice, the work included is too much. But that tedious and endless work becomes quantifiable contribution towards your organization.

Also having all the completed interactions documented and sorted out, you get an idea of how the mindset of customers work, or what are the current trends, etc. Don't look down on this little stat. A person who loves to talk in calls would be easier to convert a lead if the activity created is a call. Sending emails to such a customer might backfire.

So, how about having a custom button with a function that makes it possible to compile the total activities related to a lead. In addition, sort the activities based on the specific dates to get a clearer picture. For instance, displaying the number of days between the First activity created time (for the lead record) and the Lead converted date, updated in a custom number field.

Getting started with the custom function:

  • Go to Setup > Customization > Modules > Deals > Links and buttons > Create new button.
  • Provide a name for the button. For example: "Activities with Dates - Leads". Add a description(optional).
  • Select the placement of the button as View page.
  • Select the action to be performed as "Writing function".
  • Copy the code given below.
  • Click “Edit arguments”.
  • Enter the name as “recid” and select the value as “Lead Id”.
  • Enter the name as “leadowner” and select the value as “Lead owner id”.
  • Click Save&Execute Script.
  • Save the script.
  • Select the profiles who can view this button.
  • Click Save.

The script:


Code for Version 2.0 API:


Sum of Total Activities(Open and Closed):

RelatedTasks = zoho.crm.getRelatedRecords("Tasks", "Leads", leadId.toLong(),1);

RelatedEvents = zoho.crm.getRelatedRecords("Events", "Leads", leadId.toLong(),1);

RelatedCalls = zoho.crm.getRelatedRecords("Calls", "Leads", leadId.toLong(),1);

totalcount = RelatedTasks.size() + RelatedEvents.size() + RelatedCalls.size();

mp = map();

mp.put("Activities_Count", totalcount);

update = zoho.crm.update("Leads", leadId.toLong(), mp);

info mp;

info update;

return "Success";


Sum of Total Activities(Open and Closed) for a particular time period(First Activity Created to Lead Converted Time):

converteddate = input.convertdate.toDate();

RelatedTasks = zoho.crm.getRelatedRecords("Tasks", "Leads", leadId.toLong(),1);

datelist = List();

for each task in RelatedTasks

{

taskcreateddate = task.get("Created_Time").toDate();

datelist.add(taskcreateddate);

}

RelatedEvents = zoho.crm.getRelatedRecords("Events", "Leads", leadId.toLong(),1);

for each event in RelatedEvents

{

eventcreateddate = event.get("Created_Time").toDate();

datelist.add(eventcreateddate);

}

RelatedCalls = zoho.crm._getRelatedRecords("Calls", "Leads", leadId.toLong(),1);

for each call in RelatedCalls

{

callcreateddate = call.get("Created_Time").toDate();

datelist.add(callcreateddate);

}

datevalue = datelist.sort().get(0);

daysdiff = days360(datevalue.toDate(),converteddate);

mp=map();

mp.put("Field_Name",daysdiff);

update = zoho.crm.update("Leads", leadId.toLong(), mp);

info mp;

info update;

return "Success";


Code for Version 1.0 API:


For V1 API - Old Editor - Sum of Total Activities(Open and Closed):

leadIdStr = input.leadId.toString();
RelatedTasks = zoho.crm._getRelatedRecords("Tasks", "Leads", leadIdStr,1,200);
RelatedEvents = zoho.crm._getRelatedRecords("Events", "Leads", leadIdStr,1,200);
RelatedCalls = zoho.crm._getRelatedRecords("Calls", "Leads", leadIdStr,1,200);
totalcount = RelatedTasks.size() + RelatedEvents.size() + RelatedCalls.size();
mp = map();
mp.put("Activities Count", totalcount);
update = zoho.crm._updateRecord("Leads", leadIdStr, mp);
info mp;
info update;
return "Success";

For V1 API - Old Editor - Sum of Total Activities(Open and Closed) for a particular time period(First Activity Created to Lead Converted Time):

leadIdStr = input.leadId.toString();
converteddate = input.convertdate.toDate();
RelatedTasks = zoho.crm._getRelatedRecords("Tasks", "Leads", leadIdStr,1,200);
datelist = List();
for each task in RelatedTasks
{
taskcreateddate = task.get("Created Time").toDate();
datelist.add(taskcreateddate);
}
RelatedEvents = zoho.crm._getRelatedRecords("Events", "Leads", leadIdStr,1,200);
for each event in RelatedEvents
{
eventcreateddate = event.get("Created Time").toDate();
datelist.add(eventcreateddate);
}
RelatedCalls = zoho.crm._getRelatedRecords("Calls", "Leads", leadIdStr,1,200);
for each call in RelatedCalls
{
callcreateddate = call.get("Created Time").toDate();
datelist.add(callcreateddate);
}
datevalue = datelist.sort().get(0);
daysdiff = days360(datevalue.toDate(),converteddate);
mp=map();
mp.put("Field Name",daysdiff);
update = zoho.crm._updateRecord("Leads", leadIdStr, mp);
info mp;
info update;
return "Success";

 

Note:

  • You can also set this button in the List View page of the Module, to see the stats of all records simultaneously.
  • The code is zoho.crm._getRelatedRecords for Version 1.0 of APIs.

 

Found this useful? Try it out and let me know how it works! If you have questions, do not hesitate to ask! Share this with your team if you find it useful. Do check out other custom functions shared in this series here.

 

See you all next week with another interesting custom function. Ciao! 


Update: As you must be aware, API V1.0 will be deprecated and support for version 1.0 API will be available only till Dec 31, 2018. Version 1.0 compatible Functions will continue to work until Dec 31, 2019. You're advised to migrated to API Version 2.0 at the earliest. Check this  announcement  for more. We've updated the post to include the Version 2.0 compatible Function.


      Zoho Campaigns Resources


        • Desk Community Learning Series


        • Digest


        • Functions


        • Meetups


        • Kbase


        • Resources


        • Glossary


        • Desk Marketplace


        • MVP Corner


        • Word of the Day


        • Ask the Experts


          • Sticky Posts

          • How to reach the official Zoho Support channels and avoid fake ones.

            Dear Customers, Thanks a lot for choosing Zoho! Our applications are built to help achieve your day-to-day business goals. We are committed to engaging with you, to understand and develop solutions that enhance your productivity.  We are happy and ready to help you use our services effectively. Understanding and avoiding fake support Just like using popular bank names and financial applications for phishing purposes, using Zoho and claiming to be providing Zoho Support or services with false numbers
          • Function #35: Close all tasks associated with a lead and create a new task.

            Welcome back everyone! Last week, we learnt how to close all tasks of a deal depending upon the deal stage. This week, let's look at a custom function that lets you close all of the tasks associated with a lead while simultaneously creating a new task, like when you need to halt all progress towards a lead while the lead is not available at the moment but create a reminder task. Business scenario: The success of a company, in one way or another, is determined by the leads it gets. Each lead is just
          • Zoho CRM Webinar - Redesigning Daily User Experiences with Canvas

            <br> Your users across roles use the CRM for day-to-day tasks that are necessary. Whether they perform their tasks on time, the right way, or at all depends on a lot of factors, including User Experience. Many businesses struggle with rigid layouts,
          • Join us at the Canada ZUG Meetup: What’s New in Zoho CRM

            Hello Zoho Community! Start your year with fresh insights into Zoho CRM’s latest updates and tools. Whether you're a CRM beginner or a experienced user, this meetup is crafted to help you optimise your processes and leverage new features. Explore practical
          • CRM Hack #2: Automate sending of birthday greetings to your customers.

              Hello everyone! What sets you apart as a sales person is your ability to add that personal touch to your business relationship with your customers. Sending a gift on a special day, or leaving a note wishing them on their birthdays, are small, yet significant actions that show your customers that you care. And these are actions done without any expectations :) You must be engaging with a lot of customers and it is highly unlikely that they all are your friends on Facebook or some social channel,

          Zoho CRM Plus Resources

            Zoho Books Resources


              Zoho Subscriptions Resources

                Zoho Projects Resources


                  Zoho Sprints Resources


                    Zoho Orchestly Resources


                      Zoho Creator Resources


                        Zoho WorkDrive Resources



                          Zoho CRM Resources

                          • CRM Community Learning Series

                            CRM Community Learning Series


                          • Tips

                            Tips

                          • Functions

                            Functions

                          • Meetups

                            Meetups

                          • Kbase

                            Kbase

                          • Resources

                            Resources

                          • Digest

                            Digest

                          • CRM Marketplace

                            CRM Marketplace

                          • MVP Corner

                            MVP Corner




                            Zoho Writer Writer

                            Get Started. Write Away!

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

                              Zoho CRM コンテンツ



                                ご検討中の方

                                  • Recent Topics

                                  • Support for Developing Zoho Recruit Extensions via Zoho Sigma

                                    Hi, I’m interested in building an extension for Zoho Recruit using Zoho Sigma. However, when I navigate to Sigma and attempt to create a new extension (via the "New Extension" option), Zoho Recruit does not appear as a listed service—only options like
                                  • Email Administrators! Join our tips & troubleshooting series

                                    Greetings to all the admins out there! This announcement is exclusively for you. As we step into the New Year, we’re excited to start a dedicated series of admin-specific tips curated to support you. These posts will help you overcome everyday challenges
                                  • Notes badge as a quick action in the list view

                                    Hello all, We are introducing the Notes badge in the list view of all modules as a quick action you can perform for each record, in addition to the existing Activity badge. With this enhancement, users will have quick visibility into the notes associated
                                  • 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
                                  • Personalize your booking pages with Custom CSS

                                    Greetings from the Zoho Bookings team! We’re introducing Custom CSS for Zoho Bookings, designed to give you complete control over the look and feel of your booking pages. With this new feature, you can upload your own CSS file to customize colors, fonts,
                                  • Free Webinar : Unlock AI driven business insights with Zoho Inventory + Zoho Analytics

                                    Are you tired of switching between apps and exporting data to build customized reports? Say hello to smarter & streamlined insights! Join us for this exclusive webinar where we explore the power of the Zoho Inventory–Zoho Analytics integration. Learn
                                  • No OR Filter for Views with a Related Modules Criteria

                                    We would like to create a Deal View where the User can see all their deals. For that, we would need an OR to connect the criteria. One of the Fields is a "multiselect User", these (Related Modules Criteria) can only be Filter with an AND. Even between
                                  • Import Function: ONLY update empty fields

                                    When setting up an import from a spreadsheet to CRM, there is a checkbox "Don't update empty values for existing contacts" (see screenshot below). While I see some limited benefit from this functionality, I think there should also be an "ONLY update empty
                                  • Sales IQ Chat Widget is Only Displaying Last Name

                                    Can anyone suggest why the widget is only displaying "last name"?! We have the latest version of the wordpress plugin installed. Thanks Thanks!
                                  • Free Webinar: Zoho Sign for Zoho Projects: Automate tasks and approvals with e-signatures

                                    Hi there! Handling multiple projects at once? Zoho Projects is your solution for automated and streamlined project management, and with the Zoho Sign extension, you can sign, send, and manage digital paperwork directly from your project workspace. Join
                                  • Begin the year with best practices in the Zoho Desk mobile app : Part 2

                                    In focus: Optimizing collaboration and supervision Let's begin 2026 with Part 2 of our tips series on driving your ticketing operations at your fingertips. In Part 1, we explored streamlining operations within tickets. This helped individuals at Omniserve
                                  • Process checklist in CRM

                                    Hi We've created a new sales process that I'm mapping into the CRM - issue I have is that some of the tasks / milestones I would like to capture require very simple tick box responses but there are quite a few under a variety of sub categories so I don't
                                  • Can we disable add to cart in Zoho Commerce?

                                    Hello, Our sales happen on the phone. During the call the customer is directed to our website to inspect the products together with the sales rep. So we need a way to present our inventory. I figured Zoho Commerce is a good fit for this use case. However we would have to disable the possibility to purchase products in the shop. Is that possible? Sunny regards, Artjom
                                  • Holidays - Cannot Enter Two Holidays on Same Day

                                    I have a fairly common setup, where part-time employees receive 1/2 day's pay on a holiday and full-time employees receive a full day's pay. Historically, I've been able to accommodate this by entering two separate holidays, one that covers full-time
                                  • How to update "Lead Status" to more than 100 records

                                    Hello Zoho CRM, How do I update "Lead Status" to more than 100 records at once? To give you a background, these leads were uploaded or Imported at once but the lead status record was incorrectly chosen. So since there was a way to quickly add records in the system no matter how many they are, we are also wondering if there is a quicker way to update these records to the correct "Lead Status". I hope our concern makes sense and that there will be a fix for it. All the best, Jonathan
                                  • Zoho DataPrep and File Pattern configuration

                                    I'm using Zoho data prep to ingest data from One Drive into Zoho Analytics... The pipeline is super simple but I can't any way to get all the files that I need. Basically I need to bring all the files with a certain pattern and for that I'm using a regex
                                  • JWT Token authentication problem that sometimes generates infinite redirect loops

                                    Description : Nous proposons un bouton sur notre plateforme permettant de rediriger l'utilisateur vers le portail ZohoDesk via un jeton JWT pour une authentification transparente. Cependant, il arrive que certains utilisateurs soient pris dans une boucle
                                  • Zoho desk desktop application

                                    does zoho desk has a destop applicaion?
                                  • How do I bulk archive my projects in ZOHO projects

                                    Hi, I want to archive 50 Projects in one go. Can you please help me out , How can I do this? Thanks kapil
                                  • ZOHO Work Drive Back Up

                                    I am looking for a ZOHO Work Drive backup solution. Something that is cloud based. There's lots of these kinds of options for Google Drive and other providers, but I have not seen anything for WorkDrive. Any suggestions?
                                  • ZOHO Reports - Filter Logic?

                                    Hi, I need a way to apply filter logics such as ((1 AND 2) OR 3). All I can see as of now is a way to enter different AND filters in the respective filter column. But how can I add an OR filter? Any advice would be highly appreciated. Mark
                                  • Scanned Doc - selecting Item overwrites Rate

                                    I have a Vendor Invoice which was uploaded to Documents. I select Add To > New Bill. The OCR is actually quite good, but it is reading an Item Description instead of an Item Number. I remove the description and select the correct Item Number... and it
                                  • Recruit API search

                                    Hi all, Attempting to call the search api endpoint from Postman using the word element as mentioned in api docs Search Records - APIs | Online Help - Zoho Recruit When making the call to /v2/Candidates/search?word=Saudi receive response of { "code": "MANDATORY_NOT_FOUND",
                                  • Manage control over Microsoft Office 365 integrations with profile-based sync permissions

                                    Greetings all, Previously, all users in Zoho CRM had access to enable Microsoft integrations (Calendar, Contacts, and Tasks) in their accounts, regardless of their profile type. Users with administrator profiles can now manage profile-based permissions
                                  • Saving reading position + Keep screen on

                                    While Zoho Notebook is excellent for saving and annotating articles, its utility is severely limited by the lack of reading progress synchronization. On the Android app, if a user exits a long note after reading 50%, the app fails to save the position.
                                  • Multiple Vendor SKUs

                                    One of the big concerns we have with ZOHO Inventory is lack of Vendor Skus like many other inventory software packages offer. Being able to have multiple vendor skus for the same product would be HUGE! It would populate the appropriate vendor Sku for
                                  • Zoho LandingPage is integrated with Zoho One!

                                    Greetings to the Zoho One users out there! We're delighted to let you know that Zoho LandingPage is available in Zoho One too! With Zoho LandingPage, you can host custom-made landing pages, and persuade the visitors to dive deeper by making further clicks,
                                  • Android app sync problem - multiple devices have same problem

                                    Hello, I am having a problem with synchronization in the Android app. When I create a drawing, the data does not sync correctly—only a blank note is created without the drawing. I tested this on multiple devices, including phones and tablets, and the
                                  • How can i resend a campaign to only one of the recipients on the original campaign

                                    How can i resend a campaign to only one of the recipients on the original campaign ? Sincererly, Mike
                                  • How to show branch instead of org name on invoice template?

                                    Not sure why invoices are showing the org name not the branch name? I can insert the branch name using the ${ORGANIZATION.BRANCHNAME} placeholder, but then it isn't bold text anymore. Any other ideas?
                                  • Create CRM Deal from Books Quote and Auto Update Deal Stage

                                    I want to set up an automation where, whenever a Quote is created in Zoho Books, a Deal is automatically created in Zoho CRM with the Quote amount, customer details, and some custom fields from Zoho Books. Additionally, when the Sales Order is converted
                                  • Marketing Automation Requirements Questions

                                    I would like to set up a multi-email drip campaign- please see the structure below and confirm if I can achieve this set up in Zoho marketing automation. Where applicable, highlight gaps and workarounds. Thanks Drip email campaign- Can I create one drip
                                  • Zoho CRM for Gmail Extension Not Working in Brave Browser?

                                    Is anyone able to get the Zoho CRM Chrome Extension working in the Brave browser? They're both built on the Chromium platform and every other Chrome Extension works with the exception of Zoho CRM for Gmail so any ideas here?
                                  • Sharing URLs and direct access

                                    Hello, I am storing my team's email signature images on Workdrive. I am creating a public image download share and adding “?directDownload=true” so that the image can be accessed without the Workdrive interface. A few questions: 1) Can we generate friendly
                                  • how to change the page signers see after signing a document in zoho sign

                                    Hello, How can I please change the page a signer sees after signing a document in Zoho Sign? I cannot seem to find it. As it is now, it shows a default landing page "return to Zoho Sign Home". Thanks!
                                  • Question about using custom_fields in Storefront Add-to-Cart API (error 2003 – required details)

                                    Hi everyone, I’m working with the Zoho Commerce Storefront API, specifically the Add to Cart endpoint: POST /storefront/api/v1/cart According to the documentation, this endpoint supports a custom_fields parameter for adding line-item custom data. I’m
                                  • Can a project be cloned?

                                    Good afternoon, greetings. I would like to ask if it's possible to clone a project in Microsoft Project. I found a way to do it using templates, but I'm not sure if there's a direct way to clone a project. Thank you in advance for your attention, and
                                  • Timesheet Tasks in Zoho Books: associate to service item

                                    How do we associate a service item to timesheet tasks in Zoho Books? For example: Joe spent 5 hours on project:task1 which is Service Item#1 (Income:Service1). When the invoice is issued thru the Project Invoice section, this is not available. When the
                                  • Why Sharing Rules do Not support relative date comparison???

                                    I am creating a Sharing Rule and simply want to share where "Last Day of Coverage" (Date field) is Greater than TODAY (Starting Tomorrow). However, sharing rules don't have the option to compare a date field to a relative date (like today), only to Static
                                  • Task/Activity indicator in SalesPipeline overview has disappeared

                                    I Just logged in my ZOHO CRM first 2026 checking my salespipeline overview , Every record card used to show an indication that there was an open task (Yellow if the expiry date was close, red if the expiry date was today and grey when it had expired).
                                  • Next Page