Create Export Audit Log

The audit log provides a chronological sequence of actions performed by users in Zoho CRM.

Purpose

To export the audit log data from your Zoho CRM. 

This is an asynchronous API, and an export job will be scheduled to export the audit log details. The exported audit log will be downloaded as either a CSV file or a ZIP file. 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.

Request Details

Request URL

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

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Scope

scope = ZohoCRM.settings.audit_logs.CREATE 

General Notes

  • 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.
  • The sample request, by default, 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 as detailed below.

Sample Request

Copiedcurl "https://www.zohoapis.com/crm/v7/settings/audit_log_export"
-X POST
-d "@input.json"
-H "Authorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxxxxxxx9be93.9b8xxxxxxxxxxxxxxxf"

Input JSON Keys To Export Audit Log Using Single Filter

  • audit_log_exportJSON array, mandatory

    Contains the details for the audit log export request.

    • criteriaJSON object, mandatory

      To export the data log based on specific criteria. The system will only export the data log matching the given criteria.

      • fieldJSON object, mandatory

        Represents the field to be filtered. The system will only export the data log based on the specified field.

        • api_namestring, mandatory

          Represents the API name of the field to be filtered. 

          Supported values :

          • action  - To filter the entries based on the actions that have been performed on the records. 
          • done_by - To export the log of actions performed by specific org users. 
          • module - To export the log of actions performed on specific modules.
          • audited_time - To export the log of actions performed in the chosen timeframe.  

            Note : Each attribute's supported comparators and their corresponding values are listed in the table below.

      • comparatorJSON object, mandatory

        Represents the comparison operator used in the criteria to export the data log. The value of the "comparator" key will vary based on the value given in the api_name.

        • Supported comparators: "between", "in", and "equal".
      • value(datatype for the value key will vary depending on the attribute of the "api_name" key), mandatory

        Represents the value used in the criteria. Based on the value and its corresponding comparator, the data log will be exported.

The table below represents the supported comparators and its corresponding values for each attribute in the "api_name" key:

api_nameSupported ComparatorsSupported values
action "equal" and "in""added", "updated", and "deleted"
done_by"equal" and "in"

Specify the unique IDs of the Zoho CRM users. 

To get the unique IDs, use the GET Users API.

module "equal" and "in"Specify the Module API names and unique IDs, using the GET Module Metadata API.
audited_time "between"

Specify the audited time range in the JSON array.

Example : "2024-07-13T00:00:00+05:30" 
Note that the audited time range should not exceed 180 days.

Sample Input to Export Audit Log Data Using Single Filter

Copied{
    "audit_log_export": [
        {
            "criteria": {
                "comparator": "between",
                "field": {
                    "api_name": "audited_time"
                },
                "value": [
                    "2024-07-13T00:00:00+05:30",
                    "2024-07-20T23:59:59+05:30"
                ]
            }
        }
    ]
}

Input JSON Keys To Export Audit Log Using Multiple Filters

  • audit_log_exportJSON array, mandatory

    Contains the details for the audit log export request.

    • criteriaJSON object, mandatory

      To export the data log based on specific criteria. The system will only export the data log matching the given criteria.

      • group_operatorstring (it is mandatory to include the group_operator key when specifying the group key.)

        Represents the group operator used in the criteria. Supported value: "and".

      • groupJSON array 

        Represents the group of criteria used for exporting CRM data logs.

      • fieldJSON object, mandatory

        Represents the field to be filtered. The system will only export the data log based on the specified field.

        • api_namestring, mandatory

          Represents the API name of the field to be filtered. To know the supported values, refer to the above Sample Input Section.

      • comparatorJSON object, mandatory

        Represents the comparison operator used in the criteria to export the data log. Supported comparators: "between", "in", and "equal".

      • value(datatype for the value key will vary depending on the attribute of the "api_name" key), mandatory

        Represents the value used in the criteria. Based on the value and its corresponding comparator, the data log will be exported.

 Filter Specific Notes (single and multiple criteria)

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

Downloadable File Specific Notes

  • 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 containing up to 100,000 entries.
  • A maximum of 10,00,000 audit entries will be exported in a ZIP file.

Sample Input to Export Audit Log Data Using Multiple Filters

Copied{
    "audit_log_export": [
        {
            "criteria": {
                "group_operator": "and",
                "group": [
                    {
                        "field": {
                            "api_name": "action"
                        },
                        "comparator": "equal",
                        "value": "updated"
                    },
                    {
                        "group_operator": "and",
                        "group": [
                            {
                                "field": {
                                    "api_name": "done_by"
                                },
                                "comparator": "in",
                                "value": [
                                    {
                                        "name": "Kane",
                                        "id": "2276164000000799020"
                                    },
                                    {
                                        "name": "Patricia",
                                        "id": "2276164000000799326"
                                    }
                                ]
                            },
                            {
                                "group_operator": "and",
                                "group": [
                                    {
                                        "field": {
                                            "api_name": "audited_time"
                                        },
                                        "comparator": "between",
                                        "value": [
                                            "2023-12-05T00:00:00+05:30",
                                            "2024-01-04T23:59:59+05:30"
                                        ]
                                    },

                                    {
                                        "field": {
                                            "api_name": "module"
                                        },
                                        "comparator": "in",
                                        "value": [
                                            {
                                                "api_name": "Leads",
                                                "id": "2276164000000000125"
                                            },
                                            {
                                                "api_name": "Contacts",
                                                "id": "2276164000000000129"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        }
    ]
}

 The above input represents the criteria to export audit log data updated by either Patricia or Boyle, or both, in the Leads and Contacts modules within the specified time and date range.

Possible Errors

  • INVALID_DATAHTTP 400
    • The audited time range exceeds the supported limit
      Resolution: To export the audit log, make sure that the time range specified in the "value" JSON array for the audited time range does not exceed 180 days.
    • The value given seems to be invalid
      Resolutions:
      • The value give in the "group_operator" key seems to be invalid. The supported value : "and"
      • Specify valid values to the "comparator" key. Refer to the above Sample Input Section.
  • ALREADY_SCHEDULEDHTTP 400

    The data log has already been scheduled
    Resolution: You can check the details of the exported audit log using the Get the Status of the Export Audit Log Job API.

  • AMBIGUITY_DURNG_PROCESSINGHTTP 400

    Amibiguity while processing the request
    Resolutions: Specify the correct API names and IDs for the modules and Zoho CRM users.

  • NOT_SUPPORTEDHTTP 400
    • The value given in the "api_name" key in the "field JSON object" is not supported 
      Resolution: Specify a valid value. See the supported values.
    • The value given in the "value" key in the "criteria JSON object" is not supported
      Resolution: Specify a valid value. Refer to the above Sample Input Section.
  • EXPECTED_FIELD_MISSINGHTTP 400

    One or more expected fields are missing 
    Resolution: The "criteria JSON object" should not be empty. Refer to the above Sample Input Section.

  • DEPENDENT_MISMATCHHTTP 400

    The datatype of the "value" key in the criteria seems to be invalid.
    Resolution: Specify valid datatypes. Refer to the above Sample Input Section.

  • LIMIT_EXCEEDEDHTTP 400
    • The "audit_log_export" JSON array size has exceeded the allowed limit
      Resolution: Specify the "audit_log_export" JSON array within the allowed limit. The supported limit is 1. Refer to the above Sample Input Section for the sample JSON structure.
    • The "group JSON array" size has exceeded the allowed limit
      Resolution: Specify the "group" JSON array within the given limit. The supported limit is 2.  Refer to the above Sample Input Section.
  • MANDATORY_NOT_FOUNDHTTP 400
    • The required key "ID" seems to be missing.
      Resolution: It is mandatory to specify the unique IDs of the Zoho CRM users when the value of the "api_name" is "done_by". To get the unique IDs of Zoho CRM Users, use the GET Users API.
    • The required fields are missing
      Resolutions:
      • The criteria given seem to be empty. Specify a valid values in the criteria. Refer to the above Sample Input Section.
      • The "api_name" key is missing in the field JSON object. Please ensure to include the "api_name" key with a valid value.
      • One or more filters have been provided without corresponding criteria. Proceed by specifying valid criteria for each filter. Refer to the above Sample Input Section.
      • The "api_name" in the "field" JSON object should not be empty. Refer to the above Sample Input Section.
  • DEPENDENT_FIELD_MISSINGHTTP 400

    Dependent keys are missing 
    Resolutions:

    • Specify the group_operator key when you include the group JSON array to apply multiple filters, and vice versa.  Refer to the above Sample Input Section.
    • Specify the "comparator" and "value" keys when you include the "field JSON object", and vice versa. Refer to the above Sample Input Section.
  • INVALID_REQUEST_METHODHTTP 400

    The http request method type is not a valid one
    Resolution: You have specified an invalid HTTP method to access the API URL.
    Specify a valid request method. Refer to the endpoints section above.

  • OAUTH_SCOPE_MISMATCHHTTP 401

    Unauthorized
    Resolution: The client does not have a valid scope to export the Zoho CRM audit log. Create a new token with valid scope. Refer to scope section above.

  • AUTHENTICATION_FAILUREHTTP 401

    Authentication failed
    Resolution: Pass the access token in the request header of the API call.

  • NO_PERMISSIONHTTP 403

    Permission denied
    Resolution: Contact the system admin.

  • INVALID_URL_PATTERNHTTP 404

    Please check if the URL trying to access is a correct one
    Resolution: The request URL specified is incorrect. Specify a valid request URL. Refer to the request URL section above.

  • INTERNAL_ERRORHTTP 500

    Internal Server Error
    Resolution: Unexpected and unhandled exception in the server. Contact support team.

Sample Response

Copied{
    "audit_log_export": [
        {
            "status": "success",
            "code": "SCHEDULED",
            "message": "ExportAuditlog scheduled successfully.",
            "details": {
                "id": "2276164000001019012"
            }
        }
    ]
}