Skip to main content

    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.

    Endpoints

    • POST /settings/audit_log_export

    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/v8/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"
                }
            }
        ]
    }