Cadences Analytics

Purpose

To retrieve analytics of follow-up actions executed in a specific Cadence in Zoho CRM.

Endpoints

  • GET/settings/automation/cadences/{cadence_id}/actions/analytics

Request Details

Request URL

{api-domain}/crm/{version}/settings/automation/cadences/{cadences_id}/actions/analytics 

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Scope

ZohoCRM.settings.cadences.ALL

Parameters

  • follow_ups_executed_fromdatetime, optional

    Specify the start date and time from which the follow-up actions were executed.
    Format: ISO 8601 (e.g., 2025-11-14T00:00:00+05:30)

  • follow_ups_executed_tilldatetime, optional

    Specify the end date and time until which the follow-up actions were executed.
    Format: ISO 8601 (e.g., 2025-11-14T23:59:59+05:30)

  • filtersstring, optional

    Specify filters to narrow analytics based on follow-up action type. Pass a JSON-formatted filter in the format of the below example.
    For example: {"field":{"api_name":"follow_ups.action.type"},"comparator":"equal","value":"tasks"}

    Supported values:

    • field: follow_ups.action.type
    • comparator: equal
    • value: tasks, email_notifications, schedule_call, whatsapp_message_notification

    Note that this parameter values must be encoded

Sample Request

Copiedcurl "https://www.zohoapis.com/crm/v8/settings/automation/cadences/4794410000000820007/actions/analytics"
-X GET
-H "Authorization: Zoho-oauthtoken 1000.8cb99dxxxxxxxxxxxxx9be93.9b8xxxxxxxxxxxxxxxf"

Response JSON

  • idstring

    Unique identifier of the cadences.

  • namestring

    Name of the cadences.

  • moduleJSONobject

    The module associated with the cadences, represented by its id and api_name (e.g., Leads, Contacts).

  • created_byJSONobject

    Details of the user who created the cadences, represented by their id and name.

  • follow_upsJSONarray

    Contains follow-up actions configured in the cadences and their analytics.

    • id string

      Unique identifier of the follow-up action.

    • parent_follow_up JSONobject

      The preceding follow-up action that triggers this follow-up, represented by its id and type. Returns null if this is the first follow-up in the cadence.

    • action JSONobject

      Details of the follow-up action configured in the cadence, represented by its id, name, and type. Possible values for type: tasks, schedule_call, email_notifications, whatsapp_message_notification. When the type is email_notifications, a template object is included with the email template's id and name. When the type is whatsapp_message_notification, a message_template object is included with the template's id and title.

    • analytics JSONobject

      Provides analytics metrics for the follow-up action. The metrics returned vary based on the action type:

      • For tasks: includes task count, open, completed, and failed task counts that together track the progress of tasks in the cadence.
      • For schedule_call: includes call count, scheduled, completed, cancelled, missed, overdue, created, and failed call counts that together track the status of calls in the cadence.
      • For email_notifications: includes email count, sent, unsent, opened, clicked, replied, bounced, and unsubscribed email counts that together track the engagement for emails in the cadence.
      • For whatsapp_message_notification: includes WhatsApp message count, delivered, and failed message counts that together track the delivery status of WhatsApp messages in the cadence.

Possible Errors

  • INVALID_REQUEST_METHODHTTP 400

    The http request method type is not a valid one.
    Resolution: Check the HTTP Method of the request.

  • INVALID_DATAHTTP 400
    • The given id seems to be invalid.
      Resolution: When details.resource_path_index is 3, ensure a valid cadence ID and entity cadence ID are provided in the request.

    • The value given is invalid.
      Resolution: When details.param_name is filters and details.expected_data_type is jsonobject, ensure the filters parameter is passed as a valid JSON object and not as a string or any other data type.

    • The value given is invalid.
      Resolution: When details.param_name is filters, details.api_name is field, and details.expected_data_type is jsonobject, ensure the field key within the filters parameter is passed as a valid JSON object and not as a string or any other data type.

    • The value given is invalid.
      Resolution: When details.param_name is filters and details.api_name is api_name, ensure a valid value is provided for the api_name key within the field object of the filters parameter.

    • The value given is invalid.
      Resolution: When details.param_name is filters and details.api_name is group_operator, ensure the group_operator value is one of the supported values listed under details.supported_values: and or or.

    • The value given is invalid.
      Resolution: When details.param_name is filters, details.api_name is group, and details.expected_data_type is jsonarray, ensure the group key is passed as a valid JSON array and not as any other data type.

    • Please provide ISO time format to the param.
      Resolution: When details.expected_data_type is datetime and details.param_name is follow_ups_executed_from or follow_ups_executed_till, ensure the value is provided in a valid ISO 8601 datetime format.

    • The timezone given is invalid.
      Resolution: When details.param_name is follow_ups_executed_from or follow_ups_executed_till, ensure the timezone offset included in the datetime value is a valid UTC offset (e.g., +05:30).

  • NOT_SUPPORTEDHTTP 400

    The value given is not supported.
    Resolution: When details.param_name is filters and details.api_name is api_name, ensure the value provided for the api_name key within the field object of the filters parameter is a supported field API name.

  • DEPENDENT_FIELD_MISSINGHTTP 400
    • Dependent field missing.
      Resolution: When details.param_name is filters and details.dependee.api_name is field, ensure the comparator and value keys are also included in the filters parameter when the field key is provided.

    • Dependent field missing.
      Resolution: When details.param_name is filters, details.dependee.api_name is group_operator, and details.api_name is group, ensure the group and group_operator keys are always provided together in the filters parameter.

  • DEPENDENT_MISMATCHHTTP 400
    • The given value is invalid.
      Resolution: When details.param_name is filters, details.api_name is comparator, and details.dependee.api_name is api_name, ensure the comparator value is compatible with the field's data type. Supported comparator values are listed under details.supported_values.

    • The given value is invalid.
      Resolution: When details.param_name is filters, details.api_name is value, and details.dependee.api_name is api_name, ensure the value key is of the data type specified in details.expected_data_type, which corresponds to the field's data type.

    • The given value is invalid.
      Resolution: When details.param_name is filters, details.api_name is value, and details.dependee.api_name is comparator, ensure the value key is provided as a JSON array when the comparator is set to between.

    • The given value in follow_ups_executed_from time should be before follow_ups_executed_till time.
      Resolution: When details.dependee.param_name is follow_ups_executed_till and details.param_name is follow_ups_executed_from, ensure the value of follow_ups_executed_from is a datetime that occurs before the value of follow_ups_executed_till.

  • DEPENDENT_PARAM_MISSINGHTTP 400

    Dependent param missing.
    Resolution: When details.dependee.param_name is follow_ups_executed_from or follow_ups_executed_till, ensure both follow_ups_executed_from and follow_ups_executed_till are always provided together in the request.

  • EXPECTED_FIELD_MISSINGHTTP 400

    Specify at least one field.
    Resolution: When details.param_name is filters, ensure the filters parameter is not an empty object. Provide at least one of the expected fields listed under details.expected_fields: field or group.

  • MANDATORY_NOT_FOUNDHTTP 400

    Required field missing.
    Resolution: When details.param_name is filters and details.api_name is api_name, ensure the api_name key is included within the field object of the filters parameter.

  • TRIVIAL_CRITERIAHTTP 400

    Always true or false criteria found.
    Resolution: When details.param_name is filters, review the filter criteria to ensure the conditions do not always evaluate to true or false. Avoid contradictory conditions such as combining is empty and is not empty for the same field.

  • OAUTH_SCOPE_MISMATCHHTTP 401

    You do not have the scope required to use this API.
    Resolution: Use the correct scope and generate the grant and access tokens.

  • NO_PERMISSIONHTTP 403

    Permission denied.
    Resolution: This error occurs when the user doesn't have permission. Contact administrator to obtain manage permission for cadences.

  • INVALID_URL_PATTERNHTTP 404

    The request URL is incorrect.
    Resolution: Specify a valid request URL. Refer to the request URL section at the beginning of this page for more details.

  • INTERNAL_ERRORHTTP 500

    Unexpected and unhandled exception in Server.
    Resolution: Contact support team at support@zohocrm.com.

Sample Response

Copied{
    "cadences": [
        {
            "module": {
                "api_name": "Leads",
                "id": "4794410000000000125"
            },
            "name": "Lead followup",
            "follow_ups": [
                {
                    "analytics": {
                        "open_tasks_count": 1,
                        "failed_tasks_count": 0,
                        "completed_tasks_count": 0,
                        "tasks_count": 1
                    },
                    "parent_follow_up": null,
                    "action": {
                        "name": "task1",
                        "type": "tasks"
                    },
                    "id": "479442000000094014"
                },
                {
                    "analytics": {
                        "created_calls_count": 0,
                        "cancelled_calls_count": 0,
                        "failed_calls_count": 0,
                        "completed_calls_count": 0,
                        "scheduled_calls_count": 1,
                        "calls_count": 1,
                        "overdue_calls_count": 0,
                        "missed_calls_count": 0
                    },
                    "parent_follow_up": {
                        "id": "479442000000094014",
                        "type": "tasks"
                    },
                    "action": {
                        "name": "Demo",
                        "type": "schedule_call"
                    },
                    "id": "479442000000094026"
                },
                {
                    "analytics": {
                        "email_count": 0,
                        "bounced_email_count": 0,
                        "clicked_email_count": 0,
                        "replied_email_count": 0,
                        "sent_email_count": 0,
                        "unsent_email_count": 1,
                        "opened_email_count": 0,
                        "unsubscribed_email_count": 0
                    },
                    "parent_follow_up": {
                        "id": "479442000000094026",
                        "type": "schedule_call"
                    },
                    "action": {
                        "template": {
                            "name": "Template",
                            "id": "479442000000080016"
                        },
                        "name": "1",
                        "type": "email_notifications"
                    },
                    "id": "479442000000094048"
                },
                {
                    "analytics": {
                        "whatsapp_count": 0,
                        "delivered_whatsapp_count": 0,
                        "failed_whatsapp_count": 0
                    },
                    "parent_follow_up": {
                        "id": "479441000000115093",
                        "type": "email_notifications"
                    },
                    "action": {
                        "message_template": {
                            "id": "479441000000115032",
                            "title": "templatewhtsapp"
                        },
                        "name": "cad whtsapp",
                        "id": "479441000000115279",
                        "type": "whatsapp_message_notification"
                    },
                    "id": "479441000000115111"
                }
            ],
            "id": "4794410000000820007",
            "created_by": {
                "name": "Patricia Boyle",
                "id": "4794410000000642001"
            }
        }
    ]
}