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