Hey folks! Welcome to a fresh week of Kaizen.
In this post, we will be looking at the Field Trackers in ZOHO CRM APIs. Currently, this support is provided to all the picklist fields (system-defined and custom) and is available by default for a picklist field (Stage) in the Deals module and a datetime field (Rescheduled_To) in the Appointments module.
Field Trackers
Field trackers in ZOHO CRM help you to monitor the changes made to a specific field. It ensures data integrity and compliance as it helps in maintaining the history of changes applied to the critical data.
It captures the details such as who made the change, when the change occurred, the previous and current values of the field. Users can use this data to analyse how a field's value evolved and identify the important patterns/trends in the business.
Picklist Field Trackers
Both system-defined and custom picklist fields support Field Tracker. The history details of the field will be available in a related list with five default fields - picklist values, duration, modified time, modified by, and moved to.
To enable this support for a picklist, follow these steps.
- Go to Setup > Customization > Modules and Fields in your ZOHO CRM account.
- Select your desired module in which you want to create a picklist field tracker.
- Select the settings icon (...) of the required picklist field and click Edit Properties.
- In the Picklist properties page, select the Enable history tracking for picklist values checkbox.
Refer to
this help guide to learn more about picklist trackers and how to add additional fields that you want to view in the picklist history related list. At most, only one picklist field can be tracked within a module.
Consider you are a Manager and you have enabled field tracking for the Lead Status picklist field within the Leads module to trace the timeline of your leads' status changes. Now, take the following steps to obtain the picklist history details:
STEP 2: In the response, check for the history_tracking key in the Lead Status field.
In the history_tracking key,
- the module key, provides both the api_name and id of the new module responsible for tracking picklist history details. As a result, it naturally establishes a relationship with the Leads module, and it will be accessible as a new related list within the same module.
- the duration_configured_field key provides the field api_name and id of the key which contains the duration of the picklist values in that picklist tracking module.
STEP 3: With the api_name of new picklist tracking module, you can fetch the history details in two ways.
(i) Fetching picklist changes of all the leads records from that new module
As we already know that picklist tracking details are maintained in a new module, make a
GET Records API call with the following details.
Replace the module_api_name with the api_name of the picklist tracking module(Lead_Status_History), which is obtained from the fields metadata of the Leads module.
Request URL: {api-domain}/crm/{version}/{module_api_name}
For our case, it will be provided as https://www.zohoapis.com/crm/v5/Lead_Status_History.
Possible Parameters: fields, page, per_page, sort_by and sort_order.
For our case, make a
GET Fields Metadata API call to the related list (
Lead_Status_History). The response will give you the list of fields available in the related list.
Scope: ZohoCRM.modules.ALL (or) ZohoCRM.modules.{module_name}.READ
To fetch individual history records, use this {api-domain}/crm/{version}/{module_api_name}/{record_id} request url and replace the record_id with the id fetched in this response.
(ii) Fetching the history details of a particular lead
This approach fetches the related list data of a particular record in a module (here it is Leads).
Request URL: {api-domain}/crm/{version}/{module_api_name}/{record_id}/{related_list_api_name}
For our case, it will be given as https://www.zohoapis.com/crm/v5/Leads/5545974000004023008/Lead_Status_History.
Request Method: GET
Possible Parameters: fields, page, per_page, sort_by and sort_order.
Scope: ZohoCRM.modules.ALL (or) ZohoCRM.modules.{module_name}.READ
To fetch individual history records, use this {api-domain}/crm/{version}/{module_api_name}/{record_id}/{related_list_api_name}/{related_record_id} request url and replace the related_record_id with the id fetched in this response.
Stage History
In the Deals module, a picklist field called Stage acts as a default field tracker. The history details of this picklist are recorded in a new module called DealHistory. In this module, there are four default fields followed from the Deals module which cannot be unfollowed. They are Expected Revenue, Amount, Probability and Closing date. You can add additional fields from the Deals module to this list based on your requirement.
The module's relationship with the Deals module identifies it as a related list within the Deals module as Stage History. You can retrieve the history details of this default picklist field tracker in those aforementioned two ways.
Let us show you a sample of each way for better understanding.
(i) Fetching picklist changes of all the deals records from DealHistory
Make a
GET Records API call to the DealHistory module with the following details.
Request URL: {api-domain}/crm/{version}/Stage_History or {api-domain}/crm/{version}/DealHistory/{record_id}
Possible Parameters: fields, page, per_page, sort_by and sort_order.
Scope: ZohoCRM.modules.ALL (or) ZohoCRM.modules.DealHistory.READ
(ii) Fetching the history details of a particular deal
Request URL: {api-domain}/crm/{version}/Deals/{record_id}/Stage_History or {api-domain}/crm/{version}/Deals/{record_id}/Stage_History/{related_record_id}
Possible Parameters: fields, page, per_page, sort_by and sort_order.
Scope: ZohoCRM.modules.ALL (or) ZohoCRM.modules.Deals.READ

Appointments' Rescheduled History
In the Appointments module, a datetime field named Rescheduled_To acts as a default field tracker. The history details of this particular field are stored in a separate module with the API Name Appointments_Rescheduled_History__s. It is also accessible as a related list under the Appointments module with the same module API name as the related lists API name. Only the recent 20 rescheduled data of an appointment will be available in this tracker module.
This module has six default fields - Appointment_Name, Rescheduled_Time, Rescheduled_By, Rescheduled_From, Rescheduled_To, Reschedule_Note and Reschedule_Reason. You cannot remove the existing fields or add new fields to this module. The lookup field with display label Appointment Name and API name Appointment_Name points to the corresponding appointment to which the history data belongs.
Apart from fetching the rescheduled history data, Zoho CRM also helps you to CREATE, UPDATE and DELETE the history records for this field. This helps you to synchronise the rescheduled history when importing the Appointments records from a third party application.
Let us look into a few scenarios in which the use of each of the Appointments Rescheduled History CRUD operations.
Scenario 1
As a Manager, you might want to retrieve all the rescheduled appointment history data to determine the most common reasons for rescheduling.
Request URL: {api-domain}/crm/{version}/Appointments_Rescheduled_History__s (or)
{api-domain}/crm/{version}/Appointments__s/{appointment_id}/Appointments_Rescheduled_History__s
Scope: ZohoCRM.modules.appointments_rescheduled_history.READ
Possible Parameters: fields, page, per_page, sort_by and sort_order
The
'204 - No Content' response will be thrown if the reschedule count of the specific appointment is 1. This response will not include the current appointment time, which is the last rescheduling of the appointment. You can retrieve it only using the
GET Appointments API.
Scenario 2
For instance, you are using a third party application for booking appointments and have decided to move to ZOHO CRM. But, losing the rescheduled history data for "not completed" appointments can be a major concern. In such a scenario, you can seamlessly transfer and incorporate the rescheduled data for these appointments with the help of
Add Appointments Rescheduled History API.
In this context, we are just adding new records of rescheduled data to the tracking module(Appointments_Rescheduled_History__s), which records the details of the Rescheduled_To field. Given that Appointments_Rescheduled_History__s is a module, it also allows us to execute UPDATE and DELETE operations, as elaborated in the forthcoming scenarios.
Following are the details of the API:
Request URL: {api-domain}/crm/{version}/Appointments_Rescheduled_History__s
Request Method: POST
Scope: ZohoCRM.modules.appointments_rescheduled_history.CREATE
Sample Request Body:
{ "data": [ { "Rescheduled_From": "2023-09-19T15:00:00+05:30", "Rescheduled_To": "2023-09-22T10:30:00+05:30", "Appointment_Name": { "name": "AC Service - Leota Dilliard (Sample)", "id": "5545974000004330038" }, "Rescheduled_Time": "2023-09-19T15:30:00+05:30", "Rescheduled_By": { "name": "Patricia Boyle", "id": "5545974000000393001" }, "Reschedule_Note": "Customer unavailable", "Reschedule_Reason": "By Customer" } ] } |
You can add up to 100 records in a single API call, with a limit of 20 rescheduled history records allowed for a single appointment.
Scenario 3
To ensure accuracy and completeness, you may want to update the reason and other details for rescheduling the appointment. At times you would even want to insert additional information to the existing history data. In situations like these, use the
Update Appointments Rescheduled History API.
Following are the particulars about this API,
Request URL: {api-domain}/crm/{version}/Appointments_Rescheduled_History__s (or) {api-domain}/crm/v5/Appointments_Rescheduled_History__s/{record_id}
Scope: ZohoCRM.modules.appointments_rescheduled_history.UPDATE
{ "data": [ { "id": "5545974000004365002", "Reschedule_Note": "Team unavailable", "Reschedule_Reason": "By Team" } ] } |
You can update all the POST request JSON keys except the Appointment_Name key. Using this API, you can update a maximum of 100 rescheduled history records per API call.
Scenario 4
As a Manager, you may want to delete certain history entries that contain sensitive or outdated information to comply with the data privacy regulations. You can use the
Delete Appointments Rescheduled History API to remove sensitive/outdated and even duplicate entries.
Following are the details of this API:
Request URL: {api-domain}/crm/{version}/Appointments_Rescheduled_History__s/{record_id}
Scope: ZohoCRM.modules.appointments_rescheduled_history.DELETE
You can delete only one rescheduled history record per API call. The rescheduled history records of an appointment in the recycle bin will still be available in the related list. To remove them, you have to delete the appointment from the recycle bin.
We trust you found this post both beneficial and informative!
Your thoughts and perspectives matter to us. If there is a topic you would like us to delve into or if you have any questions, please feel free to drop a comment below or send us an email at
support@zohocrm.com.
Stay tuned until we circle back to you on next Friday!
Cheers!
Recent Topics
Problem Management Module
I am looking for a Problem Management module within Zoho Desk. I saw in some training videos that this is available, and some even provided an annual price for it. I want an official confirmation on whether this is indeed available. This is not a particularly
Deluge sendmail in Zoho Desk schedule can't send email from a verified email address
I am trying to add a scheduled action with ZDesk using a Deluge function that sends a weekly email to specific ticket client contacts I've already verified the email address for use in ZDesk, but sendmail won't allow it in its "from:" clause. I've attached
Unable to explore desk.zoho.com
Greetings, I have an account with zoho which already has a survey subscription. I would like to explore desk.zoho.com, but when I visit it while logged in (https://desk.zoho.com/agent?action=CreatePortal) I just get a blank page. I have tried different
Offline support for mobile app
Accessing your files and folders from your mobile devices is now quicker and simpler, thanks to the power of offline support. Whether on an Android or iOS device, you can use the Offline function to save files and folders, so you can review them even
Zoho Desk KB article embedded on another site.
We embed KB articles from Zoho Desk on another site (our application). When opening the article in a new tab, there is no issue, but if we choose lightbox, we are getting an error "To protect your security, help.ourdomain.com will not allow Firefox to
Transitioning to API Credits in Zoho Desk
At Zoho Desk, we’re always looking for ways to help keep your business operations running smoothly. This includes empowering teams that rely on APIs for essential integrations, functions and extensions. We’ve reimagined how API usage is measured to give
List of packaged components and if they are upgradable
Hello, In reference to the article Components and Packaging in Zoho Vertical Studio, can you provide an overview of what these are. Can you also please provide a list of of components that are considered Packaged and also whether they are Upgradable?
Does Attari Messaging app have Bot option and APIB
Hi, Does Attari also have Bot and API as we use in WhatsApp??
How to add application logo
I'm creating an application which i do not want it to show my organization logo so i have changed the setting but i cannot find where to upload/select the logo i wish to use for my application. I have seen something online about using Deluge and writing
Introducing Keyboard Shortcuts for Zoho CRM
Dear Customers, We're happy to introduce keyboard shortcuts for Zoho CRM features! Until now, you might have been navigating to modules manually using the mouse, and at times, it could be tedious, especially when you had to search for specific modules
Empowered Custom Views: Cross-Module Criteria Now Supported in Zoho CRM
Hello everyone, We’re excited to introduce cross-module criteria support in custom views! Custom views provide personalized perspectives on your data and that you can save for future use. You can share these views with all users or specific individuals
Send Automated WhatsApp Messages and Leverage the Improved WhatsApp Templates
Greetings, I hope all of you are doing well. We're excited to announce a major upgrade to Bigin's WhatsApp integration that brings more flexibility, interactivity, and automation to your customer messaging. WhatsApp message automation You can now use
Verifying Zoho Mail Functionality After Switching DNS from Cloudflare to Hosting Provider
I initially configured my domain's (https://roblaxmod.com/) email with Zoho Mail while using Cloudflare to manage my DNS records (MX, SPF, etc.). All services were working correctly. Recently, I have removed my site from Cloudflare and switched my domain's
Zoho Analytics Regex Support
When can we expect full regex support in Zoho Analytics SQL such as REGEXP_REPLACE? Sometimes I need to clean the data and using regex functions is the easiest way to achieve this.
Change of Blog Author
Hi, I am creating the blog post on behalf of my colleague. When I publish the post, it is showing my name as author of the post which is not intended and needs to be changed to my colleague's name. How can I change the name of the author in the blogs?? Thanks, Ramanan
Show Attachments in the customer portal
Hi, is it possible to show the Attachments list in the portal for the particular module? Bests.
Zoho CRM Formula - Current Time minus Date/Time field
Hello, I am trying to prevent duplicate emails going to clients when more than 1 deal is being updated. To do this, I would like to create a formula to identify if a date/time field is >= 2 hours ago. Can someone please help me write this formula? Example:
Does Zoho Docs have a Line Number function ?
Hi, when collaborating with coding tasks, I need an online real time share document that shows line numbers. Does Zoho's docs offer this feature ? If yes, how can I show them ? Regards, Frank
Feature Request - Insert URL Links in Folders
I would love to see the ability to create simple URL links with titles in WorkDrive. or perhaps a WorkDrive extension to allow it. Example use case: A team is working on a project and there is project folder in WordDrive. The team uses LucidChart to create
Organization Emails in Email History
How can I make received Org Emails to show up here?
How to sync from Zoho Projects into an existing Sprint in Zoho Sprints?
Hi I have managed to integrate Zoho Projects with Zoho Sprints and I can see that the integration works as a project was created in Zoho Sprints. But, what I would like to do is to sync into an existing Zoho Sprints project. Is there a way to make that
how to differentiate if whatsapp comes from certain landing page?
I create a Zobot in SalesIQ to create a Whatsapp bot to capture the lead. I have 2 landing pages, one is SEO optimized and the other want is optimized for leads comes from Google Ads. I want to know from which landing page this lead came through WhatsApp
How to record company set up fees?
Hi all, We are starting out our company in Australia and would appreciate any help with setting up Books accounts. We paid an accountant to do company registration, TFN, company constitution, etc. I heard these all can be recorded as Incorporation Costs, which is an intangible asset account, and amortised over 5 years. Is this the correct way to do it under the current Australian tax regulations? How and when exactly should I record the initial entry and each year's amortasation in Books? Generally
How to create a drop down menu in Zoho Sheets
I am trying to find out, how do I create a drop down option in Zoho sheet. I tried Data--> Data Validation --> Criteria --> Text --> Contains. But that is not working, is there any other way to do it. Thanks in Advance.
Show Payment terms in Estimates
Hi, we are trying to set up that estimates automatically relates payment terms for the payment terms we introduced on Edit contact (Field Payment terms). How can it be done? Our aim is to avoid problems on payment terms introduced and do not need to introduce it manually on each client (for the moment we are introducing this information on Terms and Conditions. Kind Regards,
How can I calculate the physical stock available for sale?
Hey Zoho Team, I've tried to calculate the physical stock on hand in various ways - but always receive a mismatch between what's displayed in Zoho Inventory & analytics. Can you please let me know how the physical stock available for sale is calculated?
When dispatched to crew, assigning lead missing
Hello, For the past two or three weeks, whenever an officer assigns Service Appointment to a team, the lead person is missing from the assigned service list. Therefore, we have to reschedule the SA and then the lead person becomes visible in the assigned
open word file in zoho writer desktop version
"How can I open a Microsoft Word (.doc or .docx) file in Zoho Writer if I only have the file saved on my computer and Zoho Writer doesn't appear as an option when I try 'Open with'? Is there a way to directly open the .doc file in Zoho Writer?"
I want to transfer the project created in this account to another account
Dear Sir I want to transfer the project created in one account to another account
Inactive User Auto Response
We use Zoho One, and we have a couple employees that are no longer with us, but people are still attempting to email them. I'd like an autoresponder to let them no the person is no longer here, and how they can reach us going forward. I saw a similar
Weekly Tips : Customize your Compose for a smoother workflow
You are someone who sends a lot of emails, but half the sections in the composer just get in your way — like fields you never use or sections that clutter the space. You find yourself always hunting for the same few formatting tools, and the layout just
Zoho Slowness - Workarounds
Hi all, We've been having intermittent slowness and Zoho just asks for same stuff each time but never fix it. It usually just goes away on it's own after a couple weeks. Given that speed is a very important thing for companies to be able to keep up with
Custom Bulk Select Button
Zoho CRM offers the ability to select multiple records and invoke a Custom Button This functionality is missing from Recruit Currently we can only add buttons in the detail page and list But we cannot select Multiple Records and invoke a function with
Zoho CRM still doesn't let you manage timezones (yearly reminder)
This is something I have asked repeatedly. I'll ask once again. Suppose that you work in France. Next month you have a trip to Guatemala. You call a contact there, close a meeting, record that meeting in CRM. On the phone, your contact said: "meet me
Power of Automation :: Smart Ticket Management Between Zoho Desk and Projects
Hello Everyone, A custom function is a software code that can be used to automate a process and this allows you to automate a notification, call a webhook, or perform logic immediately after a workflow rule is triggered. This feature helps to automate
First day of trying FSM in the field.
What we found. 1. with out a network connection we were unable to start a service call? 2. if you go to an appointment and then want to add an asset it does not seem possible. 3. disappointed not to be able to actually take a payment from within the app
BUG - Google Business Buttons - Add a button to GBP Post
I am experiencing an issue with the "Add a button" feature when creating posts for my Google Business Profile (GBP) through Zoho Social. When I schedule or publish a GBP post and include a call-to-action button with a specific URL, the post itself publishes
Rich text Merge field - Not using font specified in HTML
I have a rich text merge field in a writer template which is creating a table. I have chosen to use this method instead of a repeat region because I need to specify specific cell background colours which change every time the document is created. The
Support for Custom Fonts in Zoho Recruit Career Site and Candidate Portal
Dear Zoho Recruit Team, I hope you're doing well. We would like to request the ability to use custom fonts in the Zoho Recruit Career Site and Candidate Portal. Currently only the default fonts (Roboto, Lato, and Montserrat) are available. While these
CC and/or BCC users in email templates
I would like the ability to automatically assign a CC and BCC "User (company employee)" into email templates. Specifically, I would like to be able to add the "User who owns the client" as a CC automatically on any interview scheduled or candidate submitted
Next Page