younifyd
Menu

Search Records by Criteria, Word, Email, or Phone

Search Records by Criteria, Word, Email, or Phone

GET/{module}/search

Use it in a workflow

  1. Add a step and choose the Zoho CRM connector.
  2. Pick the Search Records by Criteria, Word, Email, or Phone action (under Search).
  3. Fill in the fields below, then reference the result from later steps as {{searchRecordsByCriteriaWordEmailOrPhone.response.data}}.

Request

Path parameters

modulestringrequired

Specify the API name of the module to search within. Refer to [Get Modules](https://www.zoho.com/crm/developer/docs/api/v8/modules-api.html) to retrieve a list of available modules.

Query parameters

approval_statestring

Specify the approval state to filter records by. The search returns only records in the specified approval state. Possible values: **approval_process_pending**, **webform_invalid**, **review_process_pending**, **webform_invalid_approval**, **zia_vision_validation**, **review_process_rejected**, **webform_unapproved**, **email_parser_waiting**, **approved**, **merge_pending**, **email_parser_rejected**, **zia_vision_rejected**, **zia_vision_pending**, **approval_process_rejected**, **webform_double_optin**.

One ofapproval_process_pendingwebform_invalidreview_process_pendingwebform_invalid_approvalzia_vision_validationreview_process_rejectedwebform_unapprovedemail_parser_waitingapprovedmerge_pendingemail_parser_rejectedzia_vision_rejectedzia_vision_pendingapproval_process_rejectedwebform_double_optin

criteriastring

Specify a criteria string to filter records using field-specific conditions and operators. Performs a search using the following format: `(({field_API_name}:{operator}:{value}) and/or ({field_API_name}:{operator}:{value}))` Replace `{field_API_name}`, `{operator}`, and `{value}` with the appropriate field API name, condition, and value. - You can search using a maximum of 10 criteria, with the same or different fields. - The only operator supported for encrypted fields is `equals`. When using the `equals` operator in the Search API, it behaves like `contains`, retrieving records that include the specified value. For a single condition, if the condition is: `(Company:equals:ABC)` the response includes records with `ABC` as well as `ABC Inc.` in the `Company` field. For multiple conditions, `equals` continues to behave like `contains`. **For example:** `((Company:equals:ABC) and (First_Name:starts_with:M))` This retrieves records where: - `First_Name` starts with `M` - `Company` contains `ABC` (for example, `ABC` or `ABC Inc.`) ** Note**: This behavior does not apply to picklist fields. The `in` operator checks whether a field value matches any value in a given list. **For example:** `(Full_Name:in:Patricia,Boyle,Kate)` This retrieves records where the `Full_Name` is `Patricia`, `Boyle`, or `Kate`. When a single-line field value contains characters such as: `{ } [ ] ^ : - / ! ? * _ @` or spaces, the Search API may return records with similar-looking values, even when the characters are not an exact match. For example: - Record A: `sales-team@zoho.com` - Record B: `sales_team@zoho.com` A search using: `equals:sales-team@zoho.com` may return both records. **Escaping Special Characters** When using parentheses `(` `)`, commas `,`, or a backslash `\` as the last character in a search value: 1. Escape special characters using a backslash (`\`). 2. Encode the value before making the API request. 3. Select the value of the criteria, right-click the value, and choose the `EncodeURIComponent` option. **Example 1: Escaping Parentheses and Commas** Search term: `((Last_Name:equals:Burns,B) and (First_Name:starts_with:M))` Escape the comma: `((Last_Name:equals:Burns\,B) and (First_Name:starts_with:M))` Encode the value: `((Last_Name:equals:Burns%5C%2CB) and (First_Name:starts_with:M))` **Example 2: Escaping a Backslash at the End** Search term: `(Last_Name:equals:K\)` Escape the backslash: `(Last_Name:equals:K\\)` Encode the value: `(Last_Name:equals:K%5C%5C)` **Supported Data Types** - `picklist` - `owner_lookup` - `user_lookup` - `lookup` - `phone` - `email` - `date` - `datetime` - `text` - `textarea` - `integer` - `currency` - `decimal` - `multiselectpicklist` - `bigint` - `percent` - `formula` - `website` - `boolean` - `double` **Supported Operators** - `equals` - `starts_with` - `in` - `not_equal` - `greater_equal` - `greater_than` - `less_equal` - `less_than` - `between` Refer to the following note for operator support by field type. * **Date, DateTime:** `equals`, `not_equal`, `greater_equal`, `greater_than`, `less_equal`, `less_than`, `between`, `in` * **Integer, Currency, Decimal:** `equals`, `not_equal`, `greater_equal`, `greater_than`, `less_equal`, `less_than`, `between`, `in` * **Boolean:** `equals`, `not_equal` * **textarea:** `equals`, `not_equal`, `starts_with` * **Lookup (user/owner):** `equals`, `not_equal`, `in` * **Picklist, Autonumber:** `equals`, `not_equal`, `in` * **Text, Email, Phone, Website:** `equals`, `not_equal`, `starts_with`, `in` * **multiselectpicklist:** `equals`, `not_equal`, `in`, `starts_with` * **bigint:** `equals`, `not_equal`, `greater_than`, `greater_equal`, `less_than`, `less_equal`, `between`, `in` * **percent:** `equals`, `not_equal`, `greater_than`, `greater_equal`, `less_than`, `less_equal`, `between`, `in` * **formula:** Operators depend on the formula return type. Check the corresponding data type's supported operators.

convertedstring

Specify whether to filter records by their conversion status. Applicable only for the Leads module. Possible values: **true** - Returns only converted leads. **false** - Returns only unconverted leads. **both** - Returns all leads regardless of conversion status. Defaults to **false**.

One oftruefalsebothDefault "false"

wordstring

Specify the word or phrase to search for across all searchable text fields in the module. The value must be at least two characters long. Performs a global search with minimum 2 characters required. This is the broadest search method but may be slower than specific field searches. *Mandatory if criteria, email, and phone are not present.*

emailstring (string)

Specify the email address to search for across all email-type fields in the module. Partial matches are supported and searches multiple email fields simultaneously. *Mandatory if criteria, phone, and word are not present.*

phonestring

Specify the phone number to search for across all phone-type fields in the module. The value must be at least three characters long and may include digits, spaces, hyphens, parentheses, and the plus sign. Supports various phone number formats including international, national, and partial numbers. *Mandatory if criteria, email, and word are not present.*

fieldsstring

Specify a comma-separated list of field API names to include in the response. If omitted, the response includes all fields accessible to the current user.

pageinteger (int32)

Specify the page number to retrieve for paginated results. The minimum value is 1. Defaults to 1.

Default 1

per_pageinteger (int32)

Specify the number of records to return per page. The minimum value is 1, the maximum is 200, and the default is 200.

Default 200

sort_bystring

Specify the API name of the field to sort the search results by.

Default "id"

sort_orderstring

Specify the direction in which to sort the results. Defaults to **desc**. Possible values: **asc** - Ascending order (A-Z, 1-9). **desc** - Descending order (Z-A, 9-1).

One ofascdescDefault "desc"

typestring

Specify the user type to filter the search results by. Possible values: **ActiveAndDeactive**, **CurrentUser**, **DeletedUsers**, **ParentRoleUsers**, **ChildRoleUsers**, **DeactiveUsers**, **NotConfirmedUsers**, **ConfirmedUsers**, **ActiveUsers**, **AdminUsers**, **ActiveConfirmedAdmins**, **ActiveConfirmedUsers**, **DeveloperUsers**, **SubordinateRoleUsers**, **AllUsers**, **AllActiveUsers**. **Note** - Only one of the mandatory parameters (`criteria`, `email`, `phone`, or `word`) can be used in a single request. - If multiple parameters are provided, the API processes them in the following priority order: 1. `criteria` 2. `email` 3. `phone` 4. `word` - Only the highest-priority parameter in the request is processed. - The `page` and `per_page` parameters help retrieve records based on their position in Zoho CRM. - A single API call can fetch a maximum of 200 records. - To retrieve more records, adjust the `page` and `per_page` values. Example: To fetch 400 records: - First API call: `page=1&per_page=200` -> Fetches records 1-200 - Second API call: `page=2&per_page=200` -> Fetches records 201-400 By making two API calls, all 400 records can be retrieved. - The Search API allows you to search for and retrieve a maximum of 2,000 records. If the search exceeds 2,000 records, the API returns a `LIMIT_REACHED` error. - Values of fields containing sensitive health data are retrieved only when the **Restrict Data Access through API** option in the compliance settings is disabled. If the option is enabled, the field value is returned as `null`. Refer to [HIPAA compliance documentation](https://www.zoho.com/crm/developer/docs/api/v8/hipaa-compliance.html) for more details. - When you create or edit a record and search for it immediately, you may receive a `204 NO CONTENT` response due to indexing delays. To fetch records without delay, use the [Query API](https://www.zoho.com/crm/developer/docs/api/v8/Get-Records-through-COQL-Query.html). - The `in` operator supports up to 100 values. - The `full_name` field contains the concatenated values of the `First Name` and `Last Name` fields. - `full_name` is a read-only field available only in the `Leads`, `Contacts`, and `Users` modules. To retrieve subform records that match your search criteria, use the API name of the corresponding subform module. To retrieve multi-select lookup (MxN) records that match your search criteria, use the API name of the corresponding linking module.

One ofActiveAndDeactiveCurrentUserDeletedUsersParentRoleUsersChildRoleUsersDeactiveUsersNotConfirmedUsersConfirmedUsersActiveUsersAdminUsersActiveConfirmedAdminsActiveConfirmedUsersDeveloperUsersSubordinateRoleUsersAllUsersAllActiveUsers

include_lite_usersboolean

Indicates whether lite users should be included in the search results.

Default false

role_idstring (int64)

Filter users by role ID. This parameter is supported only for the Users module.

Response

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

dataarray<object>

Represents the list of records matching the search criteria.

idstringrequired

Represents the unique ID of the record.

Ownerobject3 fields

Represents the owner of the record.

Created_Timestring (date-time)

Represents the creation timestamp of the record.

Modified_Timestring (date-time)

Represents the date and time when the record was last modified.

Created_Byobject3 fields

Represents the user who created the record.

Modified_Byobject3 fields

Represents the user who last modified the record.

infoobject

Represents the pagination and sort metadata for the response.

per_pageinteger (int32)

Specify how many records to return per page. The default and the maximum possible value is 200.

countinteger (int32)

Represents the number of records returned in the current page.

pageinteger (int32)

Represents the current page number of the response.

more_recordsboolean

Indicates whether more records are available beyond the current page. Possible values: **true** - More records are available. **false** - No more records are available.

sort_bystring

Represents the field used to sort the records in the response.

sort_orderstring

Represents the sort direction applied to the records in the response. Possible values: **asc** - Ascending order. **desc** - Descending order.

One ofascdesc

json
{
  "data": [
    {
      "id": "string",
      "Owner": {
        "name": "string",
        "id": "string",
        "email": "name@example.com"
      },
      "Created_Time": "2025-01-01T00:00:00Z",
      "Modified_Time": "2025-01-01T00:00:00Z",
      "Created_By": {
        "id": "string",
        "name": "string",
        "email": "name@example.com"
      },
      "Modified_By": {
        "name": "string",
        "id": "string",
        "email": "name@example.com"
      }
    }
  ],
  "info": {
    "per_page": 0,
    "count": 0,
    "page": 0,
    "more_records": false,
    "sort_by": "string",
    "sort_order": "asc"
  }
}

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