younifyd
Menu

Get Timelines

Get Timelines

GET/{module}/{recordId}/__timeline

Use it in a workflow

  1. Add a step and choose the Zoho CRM connector.
  2. Pick the Get Timelines action (under Records).
  3. Fill in the fields below, then reference the result from later steps as {{getTimelines.response.data}}.

Request

Path parameters

modulestringrequired

Specifies the API name of the CRM module to retrieve timeline entries from. Use the value from the **api_name** field returned by [Get Modules](https://www.zoho.com/crm/developer/docs/api/v8/modules-api.html).

recordIdstringrequired

Specifies the unique ID of the CRM record to retrieve timeline entries for.

Query parameters

include_inner_detailsstring

Use this parameter if you want to retrieve additional details about updates made to a record in the `field_history` object of the response. **Possible Values** - field_history.data_type : Gives the data type of the field that was updated. - `field_history.field_label` : Gives the label details of the fields that were updated. - field_history.pick_list_values : Represents the list of values available for a picklist field. - `field_history.enable_colour_code` : Indicates whether colour coding is enabled for the picklist values. - `done_by.profile` : Provides details of the user's profile who updated the record. - `done_by.type__s` : Indicates the type of user (for example, portal user or regular user) who modified the record.

page_tokenstring

Specify the **next_page_token** or the **previous_page_token** after you have paginated and retrieved 200 records. Note that you cannot give **per_page** parameter if you give **page_token** in the request.

pageinteger (int32)

Specifies the page number for retrieving timeline entries in paginated results.

per_pageinteger (int32)

Specifies the number of timeline entries to return per page. The value must be **3**.

One of3

filtersstring

**`filters` Parameter** The `filters` parameter is used to filter responses from the Timeline API based on specific conditions. Each filter condition consists of the following components: - field` - `comparator` - `value` **Supported `field.api_name` Values** The following values are supported for `field.api_name`: - `record.module.api_name` - `source` - `audited_time` - `done_by.id` **`record.module.api_name`** Use this field to filter timeline details related to the following record types: - `Notes` - `Attachments` - `Tasks` - `Calls` - `Events` - `Emails` **Allowed Comparators** - `equal` - `in` **Allowed Values** - `Notes` - `Attachments` - `Tasks` - `Calls` - `Events` - `Emails` **Example: Filter Notes** ```json { "field": { "api_name": "record.module.api_name" }, "comparator": "equal", "value": "Notes" } ``` **Example: Filter Notes and Tasks** ```json { "field": { "api_name": "record.module.api_name" }, "comparator": "in", "value": ["Notes", "Tasks"] } ``` **`done_by.id`** Use this field to filter timeline details performed by a specific user. **Allowed Comparators** - `equal` - `in` **Allowed Values** - User IDs **Example** ```json { "field": { "api_name": "done_by.id" }, "comparator": "in", "value": ["5843104000000424001"] } ``` **`audited_time`** Use this field to filter timeline data based on the audit timestamp. **Allowed Comparator** - `between` **Allowed Values** - Time in ISO 8601 format **Example: Filter Timeline Details Between Two Dates** ```json { "field": { "api_name": "audited_time" }, "comparator": "between", "value": [ "2023-10-25T00:00:00+12:00", "2023-10-30T23:59:59+12:00" ] } ``` **`source`** Use this field to filter timeline data based on its source. **Allowed Comparators** - `equal` - `in` **Allowed Values** - `crm_api` - `mass_delete_via_crm_api` - `bulkapi` - `approval_process` - `assignment_rules` - `blueprint` - `mass_update_via_blueprint` - `orchestration` - `convert` - `massconvert` - `custom_function` - `macro` - `crm_ui` - `mass_update` - `mass_update_via_scheduler` - `mass_delete_via_clean_up` - `bulk_action` - `change_owner` - `mass_change_owner_via_scheduler` - `review_process` - `scoringrule` - `wizard` - `workflow` **Example: Filter by a Single Source** ```json { "field": { "api_name": "source" }, "comparator": "equal", "value": "crm_ui" } ``` **Example: Filter by Multiple Sources** ```json { "field": { "api_name": "source" }, "comparator": "in", "value": ["crm_api", "crm_ui"] } ``` --- **Combining Multiple Conditions** Use `group_operator` and `group` to combine multiple filter conditions. **Example** ```json { "group_operator": "AND", "group": [ { "field": { "api_name": "record.module.api_name" }, "comparator": "in", "value": ["Notes"] }, { "field": { "api_name": "source" }, "comparator": "in", "value": ["crm_ui", "crm_api"] } ] } ``` You can also refer to the sample request for the complete structure. > **Note:** The value of the `filters` parameter must be URL-encoded before sending the request. **URL Encoding Example** The following filter: ```json { "comparator": "between", "field": { "api_name": "audited_time" }, "value": [ "2023-06-07T00:00:00+05:30", "2023-06-07T12:59:59+05:30" ] } ``` is encoded as: ```text filters=%7B%22comparator%22%3A%22between%22%2C%22field%22%3A%7B%22api_name%22%3A%22audited_time%22%7D%2C%22value%22%3A%5B%222023-06-07T00%3A00%3A00%2B05%3A30%22%2C%222023-06-07T12%3A59%3A59%2B05%3A30%22%5D%7D ``` You can use the **Encode URL** and **Decode URL** options in the [URL Encoder/Decoder tool](https://www.zoho.com/toolkit/encode-decode.html) to encode or decode this value.

sort_bystring

Specifies the field to sort timeline entries by. The only supported value is **audited_time**.

One ofaudited_time

sort_orderstring

Specifies the sort order for timeline entries. Possible values: **asc**, **desc**.

One ofascdesc

include_timeline_typesstring

To include extra types in the "timeline" object. You can get "signals" data through this to get signals-related timeline entries.

includestring

Use this parameter if you want to view the details of updates to the record through signals or any other means. The possible values are extension and type. For example, if the record was updated through a signal, then the response will have details of the extension as email insights, while the type of update will be signals.

Response

Returns 200 with an object. Read it in later steps with {{getTimelines.response.data.<field>}}.

__timelinearray<object>

Represents an array of timeline entries for the specified CRM record. Each entry captures an audited event with its timestamp, action type, source, and contextual details.

audited_timestring (date-time)required

Represents the timestamp at which the action was audited and recorded in the timeline.

actionstring | null

Represents the type of action performed on the record. This field is nullable.

One ofconvertedscore_updatedsurvey_sentemail_notification_sentconsent_mail_sentrecommendation_feedbackwebhook_invokedfunction_executedowner_assignedowner_reassignedtask_assignedcreate_recordcreate_connected_recordtransition_executedcommand_center_logstate_change_on_editprocess_exit_on_editabrupt_exitabrupt_exit_apiportals_invitation_sentportals_invitation_acceptedportals_invitation_resentportals_user_type_activatedportals_user_type_deactivatedportal_user_transferredportal_user_deletedimage_removedimage_uploadedfind_and_merge_duplicatetag_removedtag_addedtags_overwrittensubmitted_for_reviewresubmitted_for_reviewreviewedrejected_in_reviewreviewed_during_resubmitentered_in_systemupdatedwebinar_invitation_sent

idstring

Represents the unique ID of the timeline entry.

sourcestring

Represents the source system or trigger origin of the timeline event.

One ofunknowncrm_uicrm_apiwebformoutlookcrm_mobileqbsocialworkflowimportmigrationconvertsystem_generatedmass_updategooglemicrosoftmass_update_via_schedulermass_change_owner_via_schedulermass_delete_via_crm_uimass_delete_via_crm_apimass_delete_via_clean_upphonebrifge_apizoho_docsmass_addition_via_uizoho_projectssandboxapproval_manualapproval_autoapproval_rejectapproval_reject_actionmass_update_via_blueprintmail_parseremail_workflowbcc_dropboxzoho_financezoho_formszoho_deskzoho_surveygoogle_adwordszoho_calendar

extensionobject | null3 fields

Represents the extension details associated with a signal-type timeline entry, including the extension namespace, ID, and signal information.

done_byobject | null4 fields

The details of the user who modified the record such as the name, ID, name and ID of that user's profile, and the user type.

related_recordobject | null3 fields

The name and ID of the parent record which the task, call, or meeting belongs to.

automation_detailsobject | null11 fields

Represents the automation context associated with the timeline entry, including details about triggered workflows, approval processes, scoring rules, ownership changes, and review processes.

recordobject4 fields

Represents the CRM record associated with the timeline entry.

converted_recordobject | null3 fields

Represents the details of a converted record associated with the timeline entry.

field_historyarray | null

**Contains the following details:** * **api_name** - the API name of the field that was modified. This is available by default in the response. * **_value** - the old and new values of the field. This is available by default in the response. The following values are available when you specify the `include_inner_details` parameter: * **enable_colour_code** - indicates whether color coding is enabled for the picklist field. * **data_type** - the data type of the field that was modified. * **pick_list_values** - details of the various values available for the picklist.

typestring

Represents the type of the timeline entry. Possible values: **timeline** (standard CRM activity), **signal** (event from a Zoho extension).

One oftimelinesignal

infoobject

Represents the pagination metadata for the timeline response.

next_page_tokenstring | nullrequired

Represents the token to retrieve the next page of timeline entries. The value is null when no more pages are available.

previous_page_tokenstring | nullrequired

Represents the token to retrieve the previous page of timeline entries. The value is null on the first page.

countinteger (int32)required

Represents the number of timeline entries returned in the current page.

more_recordsbooleanrequired

Indicates whether additional timeline entries are available beyond the current page.

pageinteger (int32)required

Represents the current page number in the paginated results.

per_pageinteger (int32)required

The number of records you want to fetch per page. You can use this parameter for the first page only. For the subsequent pages, you must use the "page_token" parameter.

json
{
  "__timeline": [
    {
      "audited_time": "2025-01-01T00:00:00Z",
      "action": "converted",
      "id": "string",
      "source": "unknown",
      "extension": {
        "namespace": "string",
        "id": "string",
        "signal": {
          "display_label": "string",
          "action": "string",
          "id": "string",
          "medium": "string"
        }
      },
      "done_by": {
        "name": "string",
        "id": "string",
        "profile": {
          "name": "string",
          "id": "string"
        },
        "type__s": "string"
      },
      "related_record": {
        "name": "string",
        "id": "string",
        "module": {
          "name": "string",
          "id": "string",
          "api_name": "string"
        }
      },
      "automation_details": {
        "type": "string",
        "rule": {
          "name": "string",
          "id": "string"
        },
        "pathfinder": {
          "process_entry": false,
          "process_exit": false,
          "state": {
            "trigger_type": "string",
            "name": "string",
            "is_last_state": false,
            "id": "string"
          }
        },
        "workflow": {
          "field_update_action": [
            {
              "name": null,
              "id": null
            }
          ]
        },
        "approval_process": {
          "next_approver": [
            {
              "name": null,
              "id": null
            }
          ],
          "comments": "string",
          "takeover_reason": "string",
          "current_stage": 0,
          "takeover_stage": "string",
          "rejected_details": {
            "stage": {
              "from": null,
              "to": null
            },
            "name": "string",
            "id": "string"
          },
          "delegate_details": {
            "from": {
              "name": null,
              "id": null
            },
            "to": {
              "name": null,
              "id": null
            }
          },
          "approver_details": {
            "name": "string",
            "id": "string"
          }
        },
        "assigned_to": {
          "name": "string",
          "id": "string"
        },
        "scoring_rule": {
          "zia_type": false,
          "negative_score": {
            "new": "string",
            "old": "string"
          },
          "positive_score": {
            "new": "string",
            "old": "string"
          },
          "touch_point": {
            "negative_score": {
              "new": null,
              "old": null
            },
            "positive_score": {
              "new": null,
              "old": null
            },
            "score": {
              "new": null,
              "old": null
            }
          }
        },
        "owner": {
          "name": "string",
          "id": "string",
          "new": {
            "name": "string",
            "id": "string"
          },
          "old": {
            "name": "string",
            "id": "string"
          }
        },
        "review_process": {
          "deluge": {
            "name": "string",
            "id": "string"
          },
          "deactivated_process": {
            "name": "string",
            "id": "string"
          },
          "rejection": {
            "reason": "string",
            "comment": "string"
          }
        },
        "group_id": "string",
        "module": {
          "api_name": "string",
          "name": "string",
          "id": "string"
        }
      },
      "record": {
        "module": {
          "api_name": "string",
          "id": "string"
        },
        "name": "string",
        "id": "string",
        "count": "string"
      },
      "converted_record": {
        "name": "string",
        "id": "string",
        "module": {
          "api_name": "string",
          "id": "string"
        }
      },
      "field_history": null,
      "type": "timeline"
    }
  ],
  "info": {
    "next_page_token": "string",
    "previous_page_token": "string",
    "count": 0,
    "more_records": false,
    "page": 0,
    "per_page": 0
  }
}

Need more? See the Zoho CRM guide for connection setup and behaviour shared by every action.