Kaizen #150 : Track and Monitor Activities in Zoho CRM using the Export Audit Log API

Kaizen #150 : Track and Monitor Activities in Zoho CRM using the Export Audit Log API

Hello all!

Welcome back to another post in our Kaizen series



This post details how to back up and track history of actions, such as those performed on a module (example: Leads), track actions performed by specific CRM users, and filter entries within a specific time range, using the Export Audit Log API introduced in Version 7.

Use Case

Zylker, a startup IT firm, has hired 10 project trainees for a six-month training program for the role of Technical Support Engineers. The manager at Zylker has added each trainee to the Zoho CRM as a user. These trainees interact with customers by giving product demos, attending meetings and calls, creating tasks, and being responsible for making deals won. 

Solution 

Zylker uses Zoho CRM's Export Audit Log API to track trainee activities. By exporting audit logs, the manager monitors how many calls, meetings, and tasks each trainee has completed. This helps the manager highlight areas where trainees need improvement and adjust training programs. After six months, the manager reviews the logs to decide which trainees performed well and should be offered permanent positions.

Note:
Users in the Administrator profile or CEO Role can access the audit logs. However, other users can only view their own and their sub-ordinates' audit Logs.

Exporting Audit Log

The Export Audit Log API is an asynchronous API, and an export job will be scheduled to export the audit log details. The exported audit log will be downloaded in either CSV or ZIP format, depending on the number of entries in the result. You can check the job's status using the Get the Status of the Export Audit Log Job API. Once the job is complete, you can download the results using the Download Export Audit Log Result API.

Let us see how Zylker uses the Zoho CRM API to monitor their trainees' performance.

Create Export Audit Log Job

Sample Request: {api-domain}/crm/{version}/settings/audit_log_export

Request Method: POST

Scope: ZohoCRM.settings.audit_logs.CREATE 

Notes:
  • The above sample request exports up to the last three years of audit log data across all modules in your Zoho CRM. 
  • The input request is optional i.e., if you skip the input request, the system will still export all actions in Zoho CRM. 
  • Use filters to export specific audit entries.

The sample input below is used to export an audit log for all 10 trainees in the Calls, Events, and Tasks modules over a six-month time range.
{
    "audit_log_export": [
        {
            "criteria": {
                "group_operator": "and",
                "group": [
                    {
                        "field": {
                            "api_name": "done_by"
                        },
                        "comparator": "in",
                        "value": [
                            {
                                "name": "Joe",
                                "id": "5725767000000583089"
                            },
                            {
                                "name": "Boyle",
                                "id": "5725767000000583000"
                            },
                            {
                                "name": "John",
                                "id": "5725767000000583001"
                            },
                            .
                            .
                            .

                        ]
                    },
                    {
                        "group_operator": "and",
                        "group": [
                            {
                                "group_operator": "and",
                                "group": [
                                    {
                                        "field": {
                                            "api_name": "audited_time"
                                        },
                                        "comparator": "between",
                                        "value": [
                                            "2024-01-05T00:00:00+05:30",
                                            "2024-06-04T23:59:59+05:30"
                                        ]
                                    },
                                    {
                                        "field": {
                                            "api_name": "module"
                                        },
                                        "comparator": "in",
                                        "value": [
                                            {
                                                "api_name": "Calls",
                                                "id": "5725767000000033015"
                                            },
                                            {
                                                "api_name": "Events",
                                                "id": "5725767000000002195"
                                            },
                                            {
                                                "api_name": "Tasks",
                                                "id": "5725767000000002193"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        }
    ]
}
The above input schedules a job to export data that matches the criteria. The response to the above request is given below, and we will discuss how to see the status of the export audit log job and how to download the result in the upcoming sections in this post.

Refer to the Input JSON Keys to Export Audit Log Using Multiple Filters for input keys' explanations.

Note
With filters (either single or multiple criteria), you can export up to 6 months (180 days) of audit log data. Note that the time range should not exceed 180 days. 

Sample Response:

{
    "audit_log_export": [
        {
            "status": "success",
            "code": "SCHEDULED",
            "message": "ExportAuditlog scheduled successfully.",
            "details": {
                "id": "5725767000003525045" //unique job ID of the export audit log job.
            }
        }
    ]
}


The manager has scheduled an export audit log job to review their trainees' activities within the specified time range (six months).

Get the Status of the Export Audit Log Job

The manager at Zylker retrieves the details of the export audit log jobs that were scheduled previously using the POST Export Audit Log API.
  • Exporting All Trainees' Activities: By reviewing the complete log, the manager can analyze the overall performance of all trainees.
  • Filtering Specific trainees' Activities: Once after reviewing the entire log, the manager could filter data of only those trainees with average performance and provide them with the required training to help them improve.
Zylker retrieves the status of all scheduled export audit log jobs using the following URL: 

{api-domain}/crm/{version}/settings/audit_log_export

By default, it returns all the scheduled export jobs.

For retrieving the status of a specific scheduled export audit log job, Zylker uses the following URL:

{api-domain}/crm/{version}/settings/audit_log_export/{export_job_id}

Request Method: GET

Scope:  ZohoCRM.settings.audit_logs.READ 

Here is the sample response showing the status of the export audit log job for all the trainees:

{
    "audit_log_export": [
        {
            "id": "5725767000003525048",
            "status": "finished",
            "job_start_time": "2024-08-07T12:12:39-07:00",
            "job_end_time": "2024-08-07T12:12:44-07:00",
            "expiry_date": "2024-08-14T12:12:39-07:00",
            "created_by": {
                "name": "Jim", //Zylker's Manager
                "id": "5725767000000411001"
            },
            "criteria": {
                "group_operator": "and",
                "group": [
                    {
                        "comparator": "between",
                        "field": {
                            "api_name": "audited_time"
                        },
                        "value": [
                            "2024-01-05T00:00:00+05:30",
                            "2024-06-04T23:59:59+05:30"
                        ]
                    },
                    {
                        "comparator": "in",
                        "field": {
                            "api_name": "module"
                        },
                        "value": [
                            {
                                "api_name": "Tasks",
                                "id": "5725767000000002193"
                            },
                            {
                                "api_name": "Events",
                                "id": "5725767000000002195"
                            },
                            {
                                "api_name": "Calls",
                                "id": "5725767000000033015"
                            }
                        ]
                    }
                ]
            },
            "download_links": [
            ]
        }
    ]
}


Response JSON Keys explanation: 
  • audit_log_export (JSON array) : Contains the details for the audit log export request of the trainees.
  • id (string) : Represents the unique job ID of the export audit log job.
  • status (string) : Represents the status of the export audit log job. Possible values: Progress, Scheduled, Finished, and Failed.
  • job_start_time (string) : Represents the time at which the export job started.
  • job_end_time (string) : Represents when the export job was completed.
  • expiry_date (string) : Represents the expiry time of the exported audit log available in the download links.
  • created_by (JSON object) : Represents the ID and Name of the Zoho CRM user who initiated the export job.
  • criteria (JSON object) : Represents the conditions specified for a specific export audit log job using the Create Export Audit Log API.
  • download_links (JSON array) : Represents the unique downloadable link for the exported audit log. You can use this link to download the log data using the GET - Download Export Audit Log Result API

Download Export Audit Log Result

The manager at Zylker can download the result logs using the the "download_links" JSON array key in the response Get the Status of the Export Audit Log Job API.

An export audit log will be in either CSV or ZIP format, depending on the number of entries in the result. If the audit log contains 100,000 or fewer entries, the system will automatically export the logs in a CSV file. If there are more than 100,000 entries, the logs will be split into multiple CSV files inside a ZIP file, with each CSV file holding up to 100,000 entries. A maximum of 10,00,000 audit entries will be exported in a ZIP file.

Request Method: GET 

Scope: ZohoFiles.files.READ

In our case, download the audit log result in the CSV file format. 
Based on the downloaded results, the manager will analyze the trainees' performance to make hiring decisions and identify areas where those with average performance may need additional training. This approach helps the manager at Zylker to keep track of all trainees' activities regularly.

We trust that this post meets your needs and is helpful. Let us know your thoughts in the comment  or reach out to us at support@zohocrm.com
Stay tuned for more insights in our upcoming Kaizen posts!







    • Recent Topics

    • Items attribute questions

      Many of my items have attributes, such as size and color. How can I add new fields to the "New Items" screen to capture that in my Purchase Orders, Items, and Sales Order pages? I only see these attribute fields when adding an Item Group. Also, on the
    • Is there a way to search mail for items you haven't yet responded to?

      I'm trying to create a search to show emails that haven't been responded to and that have also been assigned a tag or label. Is there a way to search for the inverse of replied?
    • Zobot and Sales IQ

      What will happen to the Zoho Sales IQ being integrated to the website after creating the Zobot on the website too
    • Subtotals per Header

      Hey, we would like to display subtotals per header in our invoices:
    • upgrade storage

      how to upgrade my storage
    • Linking items from books and subscription

      Linking books and subscription It is a pity that it is not possible to associate with a product an article present in ZohoBooks This would make it possible to manage products composed of a nomenclature of articles of books
    • Add the ability to view number of hours planned for a workorder while in the Dispatch Console

      Hi Zoho, When dispatching a work order through the Dispatch Console, there's currently no way to view the number of planned hours for the service tasks associated with that specific work order. Having to click into the details each time to check planned
    • Uploading Files from uploads api

      I tried uploading the image from the API call but its giving me unauthorized error even i have given valid token in header. After uploading i need that id to pass in create ticket api uploads but its not uploading that file. Please help me out in th
    • Categorize Items with Item Headers

      Hello customers, Did you ever want to classify items based on specific categories to help your customers understand your invoice better? With the new Item Header feature, you can easily categorize items in your invoices and estimates and give them a common title.  Item Headers are available in the Invoices, the Recurring Invoices and the Estimates module. It can be carried forward from estimates to invoices at the time of converting the estimates.  To add an item header: Go to the Estimates, Invoices
    • URLs being masked despite disabling tracking

      Hey, We had disabled click tracking from an email update we are sharing with our users. Despite this, the URL the end user is receiving is masked, and looks like "https://qksyl-cmpzourl.maillist-manage.net/click/1d8e72714515cda6/1d8e72714515ca70" instead
    • Change format of quantity format

      Hi,  I would like to change the qunatity format from 1,00 to 1.  Is this possible?   thanks!
    • square up and Zoho books

      Since we set up the app connection between square up and Zoho books we have realised that when the amounts are getting transferred Zoho is adding VAT again making the numbers 20% more than they should be. We have checked our settings and they VAT/ Tax
    • How to provide Access rights to specific Bank accounts

      We have several bank accounts. I want to provide certain members access to only 2-3 accounts. It appears that when I give permissions, they are for ALL bank accounts. How do I do that?
    • Errors Getting a Bank Transaction

      Using Postman(for testing), I am receiving errors when attempting to get a single bank transaction. I am able to receive the list of bank transactions with https://www.zohoapis.com/books/v3/banktransactions/?organization_id={org_id} but when I try to
    • Subscriptions Plans and CRM Products Integration?

      Is there any way to set up plans and pricing in Zoho Subscriptions and have those available as Products in the CRM? We are trying to set up the CRM and the Products seem to be more geared toward selling products that are not subscription based.  So if we sell annual or monthly contracts which are $10/seat/month, I can set this up as a plan in Subscriptions, but how can I set the same thing up in the CRM for the salespeople to sell/quote? What is the best practice for setting up the CRM Products to
    • Mapping Zoho Subscription Plans and Products to CRM and Books

      We have products that are one time products and subscription products.   1) We would like to have the ability to create an opportunity in CRM that includes both one-time charge products and subscription products.  Currently the only way of creating a subscription product is by defining a "Product->Plan" hierarchy in Zoho Subscription.  It appears that the only SYNC between Subscription and CRM is around contacts and the Product->Plan hierarchy doesn't sync to CRM, thus, you would need a duplicate
    • Zoho People Attendance Module - Split Shifts

      Hello, Our business employs a number of college students who often split their workdays between work hours and class schedules, resulting in split shifts. For example: Employee 1 works 9am to 11:30am and then leaves for class, returning to work at 3pm
    • Bulk update fields based on date

      Hi! I need all the quotes with "Quote Stage" set to "Next Year" to update to "Draft" every January 8 (every year). Can you help?
    • Target for a campaign

      Hi, Hope you can help me. I need to create a report (for a marketing campaign) that combines Deals and Contacts to export all the contacts with closed deals. I can easily do that, what I cannot do is to remove from the target the contacts that have more
    • Zoho Desk + Jira integration - Email notifications and comments posted by administrator instead of real user

      Dear All, I set up the integration under my admin account, and now when users leave comments in Jira (to created tickets in Zoho Desk), the email notifications show that the ‘Administrator’ left a comment, not a real user. The same happens in the ticket
    • Celebrating the power of visuals

      On World Photography Day, we would like to highlight the power of visuals in customer service. Visuals promote learning and understanding in less time. A photograph can rekindle a memory, convey more than words, and give a fresh perspective. How does
    • Customer address in Zoho Bookings

      Hello,  Is it possible to add customer address information to the Zoho bookings appointment screen? Or have it pull that information automatically from the CRM? We are wanting to use this as a field management software but it is difficult to pull the address from multiple sources when it would be ideal to have a clickable address on the appointment screen that opens up the user's maps.  It would also be advantageous for the "list view" to show appointment times instead of just duration and booking
    • Blocking / black listing customers

      Hi, We have a situation, we observed that certain customers are blocking multiple appointments with our advsiors but not showing up. Some of these are repeat offenders. This leads to those service hours getting blocked and not available for genuine customers.
    • Option to block bookings from specific email address or ip adresss in zoho booking

      Sometime few of our client keep booking irrelevant booking service just to resolve their queries and they keep booking it again and again whenever they have queries. Currently its disturbing our current communication process and hierarchy which we have
    • Feature Request: Email Templates for notifications accross all services

      Currently in Zoho Bookings, email notifications (such as booking confirmations, reminders, and cancellations) must be customized individually for each service. This becomes time-consuming and error-prone when managing multiple services that require consistent
    • Allow customers to choose meeting venue and meeting duration on booking page

      My business primarily involves one-to-one meetings with my clients. Given the hybrid-work world we now find ourselves in, these meetings can take several forms (which I think of as the meeting "venue"): In-person Zoom Phone call I currently handle these
    • Approval-based booking with Zoho Creator and Zoho Bookings

      Hi community members, We have developed a workaround for approval-based booking using Zoho Creator and Zoho Bookings! This provides a temporary solution as we work on the native feature, and it's useful for anyone needing an approval workflow when confirming
    • Member Accounts in Related List

      Hi Team, Currently, when a parent account is associated with an account in FSM, there is no related list displaying the associated member accounts under the parent account’s related list section. To view member accounts, I have to manually search using
    • how do i remove a specific Zoho Service from my account

      I no longer need Zoho CRM, ZRM Assist nor ZRM BugTracker. How do I remove them from the list of apps for my account?
    • I Want migarte all invoice details to zoho sheets

      I want to migrate all existing invoice details to Zoho Sheet, and automatically update the sheet whenever a new invoice is created.
    • were can i find my invoices i need this for my accountant

      were can i find my invoices i need this for my accountant, how can i get id direct to my email?
    • ONLY email field not populating Writer fillable document (randomly)

      I have a Zoho Writer fillable document that has pulled all my data from my Zoho Sheets file, EXCEPT the email column. It pulled every data before and after that column with no issues. Screenshots attached. It's not my first time using the app or the feature,
    • My number is marked as spam

      Hello Zoho Mail Support, My phone number was incorrectly flagged as “spam” during sign-up. This is my personal number, and I have not engaged in any spam activities. Kindly review and verify my account so I can proceed with my email setup. Thanks.
    • Personnalisation des paramètres dans Zoho Mail

      Pourquoi cela compte-t-il ? La personnalisation des paramètres dans Zoho Mail permet aux administrateurs de configurer l’environnement de messagerie en fonction des besoins spécifiques de leur organisation. Que ce soit pour alléger l’interface pour certaines
    • How To Save Data Into Zoho CRM Sandbox

      Hi Community, I want to save data into my zoho sandbox , for this I am using this api endpoint - https://www.zohoapis.com/crm/v8/Patients but I am getting this error - { "success": false, "message": "Zoho API request failed", "error": { "code": "INVALID_MODULE",
    • Automate pushing Zoho CRM backups into Zoho WorkDrive

      Through our Zoho One subscription we have both Zoho CRM and Zoho WorkDrive. We have regular backups setup in Zoho CRM. Once the backup is created, we are notified. Since we want to keep these backups for more than 7 days, we manually download them. They
    • Question about retrieving unsubscribed contacts (outside of lists) via API

      Hello, I am currently using Zoho Marketing Automation and would like to integrate it with our company’s core system. For this purpose, I am exploring the API options available to retrieve contact information. Specifically, I would like to know if there
    • Getting “mandatory field missing: Service_Line_Items” When Creating Work Order via Zoho Flow Deluge

      Hi Team, I’m trying to create a Work Order in Zoho FSM with only a Service Line Item (no Parts). However, I keep getting this error: Work Order Response: {"code":"MANDATORY_NOT_FOUND","details":{"api_name":"Service_Line_Items"},"message":"required field
    • How to customize the colors of the Client Portal login screen and add the company logo?

      As title, how to customize the colors of the Client Portal login screen and add the company logo?
    • Daily updates/fixes and how to see what was changed?

      When I receive the notification that zoho was updated and I need to refresh it. How can I see what was changed or fixed? Sometimes they change things that effect my books and I need to know what they did. For example over this past weekend something was
    • Next Page