Track Email Response Time In Zoho CRM – Custom Function 

Are you wrestling with the challenge of managing your team’s response times? Ever found yourself forgetting to reply to a client with that “big brain” question? Or perhaps you’re in the dark about how long a lead has languished without a call or email follow-up? If so, you’re not alone. The quest for an efficient way to track and manage communication timelines is a common hurdle for many businesses using Zoho CRM. While Zoho offers robust tools for customer relationship management, it falls short in providing a native solution for real-time tracking of these critical interactions.


Recognizing this gap, we’ve engineered a custom function tailored to Zoho CRM that revolutionizes how response times are monitored and managed. This isn’t just another makeshift workaround; it’s a sophisticated solution designed to bring clarity, accountability, and improved communication to your operations.


The Challenge with Traditional Tracking

Zoho CRM is a powerhouse for managing customer interactions, but it has its limitations. One notable challenge is its inability to automatically update formula fields without manually editing a contact record. This limitation complicates the process of maintaining a real-time tracker for various metrics, such as response times.


Our Innovative Solution

To overcome this hurdle, we’ve crafted a custom function that operates seamlessly within Zoho CRM’s framework. This function is triggered by a Zoho schedule that runs twice daily, ensuring that your tracking is as up-to-date as possible without constant manual intervention.


How It Works

Our solution hinges on two key Workflow rules:


  • Email Received Update: This rule updates a date-time field when a contact sends us an email.
  • Email Sent Update: A parallel rule updates another date-time field when we send an email response.


Once activated, our script diligently calculates and outputs data into three critical fields:


  • Email Received Days: Indicates the number of days since the contact sent the email.
  • Email Sent Days: Reflects the number of days since we’ve responded to the email.
  • Days With No Response: Calculates the total days an email has gone without a response.


This approach not only provides clear insights into response times but also highlights potential delays in communication, allowing for timely follow-ups and adjustments to improve service quality.


Beyond Email Tracking

The real beauty of this custom function lies in its adaptability. While it’s designed for tracking email response times, its methodology can be easily modified to suit various other needs within Zoho CRM. Whether you’re monitoring the duration a Lead has remained in a particular status or tracking how long a deal has been pending estimates, this function offers a robust foundation for numerous applications.


Implementation and Benefits

Integrating this custom function into your Zoho CRM setup is straightforward and yields immediate benefits:


  • Enhanced Accountability: By keeping track of response times, teams can better manage their workload and prioritize communication.
  • Improved Customer Satisfaction: Quick responses are often equated with excellent service. This tool helps ensure your team meets or exceeds customer expectations.
  • Versatile Application: From sales to support, every department can leverage this function to optimize their operations and improve efficiency.


Sharing Our Journey

In the spirit of collaboration, we plan to share the script that powers this custom function. Our goal is to empower other Zoho CRM users to enhance their response time tracking and explore new applications for this versatile tool.


Configure The Fields

Now if you are wanting to implement this function for the exact same solution “tracking email response times” you will need to create a few fields in the module, you can name them whatever you want but in this scenario these are the fields that were created:

  1. Email Received: Date and time field This is a the date that an email was received 
  2. Email Replied: The date and time field that emails were sent by us to the contact 
  3. Days With No Response: Number Field that shows the number of days we have not responded to an email 
  4. Email Received Days: Number Field with that shows the number of days that have passed since the email was received
  5. Email Sent Days: Number Field that shows the number of days that have passed since the last email was sent by us. 


Create Your Workflow Rules


Emails Received


  1. Navigate to workflow rules from settings 

  1. Create a new workflow rule for the Emails Module *note that you must have emails synced with CRM for this to work so if you haven’t done that yet do it now. 
  2. Give your new rule a name “Emails Received” 
  3. Set the workflow to run when an email is received from one of your contacts in CRM
  4. Set the Email Received field to update to ${EXECUTION_TIME}


Emails Sent


  1. Create a new workflow rule for the Emails Module *note that you must have emails synced with CRM for this to work so if you haven’t done that yet do it now. 
  2. Give your new rule a name “Emails Replied” 
  3. Set the workflow to run when an email is received from one of your contacts in CRM 
  4. Set the Email Replied field to update to ${EXECUTION_TIME}

Creating A Custom Record View


Next you will need to set up a contact view that narrows down the records that the script will process. To do this 


  1. Click on the contacts module in CRM 
  2. Click the filter dropdown in the top left and select “New Custom View”
  3. Filter the list however you like, in our case we are only showing emails that have been received
  4. Return to contact view and select your new filter
  5. Get the Custom View ID from the URL


Configure The Scheduled Function


Now create we need to setup the script

  1. From setup select “Schedules”
  2. Create a name for your schedule and choose “Writing Function”
  3. Create a name and description for the function itself
  4. Paste the following code: 
					// Fetch contacts
contactemails = zoho.crm.getRecords("Contacts",0,200,{"cvid":YOUR CUSTOM VIEW ID});
//info contactemails;
for each  contact in contactemails
	emailReceived = contact.get("Email_Received");
	emailReplied = contact.get("Email_Replied");
	daysNoResponse = 0;
	emailSentDays = 0;
	currentDate = zoho.currenttime;
	info currentDate;
	// Calculate days between email received and current date for daysNoResponse
	daysNoResponse = emailReceived.daysBetween(currentDate);
	// Check if Email_Replied is not null and then process
	if(emailReplied != null)
		emailRepliedDate = emailReplied.toDate();
		// Calculate the days between email received and email replied
		daysBetweenReceivedAndReplied = emailReceived.daysBetween(emailRepliedDate);
		if(daysBetweenReceivedAndReplied > 0)
			emailSentDays = daysBetweenReceivedAndReplied;
			daysNoResponse = 0;
			// Reset daysNoResponse if there was a reply after the received date
	// Prepare the map for updating the record
	updateMap = Map();
	// Conditionally add Email_Sent_Days if not null
	if(emailSentDays != null)
	// Update the record with new values
	updateResponse = zoho.crm.updateRecord("Contacts",contact.get("id"),updateMap);
	info updateResponse;


Now because this function grabs the contact record ids from that custom view list if you test the function it will make edits to all the records in that custom view. If you have a lot of contacts in that custom view you might want to create a testing view with only 1 or two records to test. Just remember to update the view ID in the function before saving and scheduling

5. Schedule your function as needed. In our case we have the script run every 6 hours, but you can set the frequency to whatever meets your needs.

Now that you have this script scheduled you can start thinking about what to do with the data.
The main action from this script is to update the Days with No Response so you can use the update of this field to trigger any notifications or tasks you want.
Check out our guide on telegram notifications from Zoho to set up telegram notifications that remind you to respond to leads. 

Or configure a workflow to push an action to Zoho flow. 

Track Email Response Time In Zoho CRM – Custom Function