> For the complete documentation index, see [llms.txt](https://docs.ebbot.ai/ebbot-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ebbot.ai/ebbot-docs/integrations/automations-integrations/integration-setup-guides/hubspot-integration-in-automations/actions/search-crm-objects.md).

# Search CRM Objects

Searches HubSpot records of any type (tickets, deals, contacts, companies) using advanced filter groups, and returns the records that match.

**Action identifier:** `search_crm_objects`. **Reference checked:** 29 September 2026.

## Inputs

| Field          | Type           | Required/default | Meaning                                                                                                                                                    |
| -------------- | -------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `object_type`  | string         | Required         | The type of object to search (e.g. 'tickets', 'deals', 'contacts', 'companies')                                                                            |
| `filters_json` | string         | Required         | A JSON string representing the 'filterGroups' array. Example: '\[{"filters": \[{"propertyName": "hs\_pipeline\_stage", "operator": "EQ", "value": "1"}]}]' |
| `properties`   | list\[string]  | `[]`             | Optional list of properties to include in the search results                                                                                               |
| `limit`        | integer        | `100`            | The maximum number of results to return (default 100)                                                                                                      |
| `after`        | string \| null | `null`           | Pagination cursor — use the value from the previous response's paging.next.after to load more results                                                      |

## Output shape

Paths are relative to this action's output. Select them from the builder's variable picker; do not add a `ticket` wrapper to actions that return top-level fields. Nullable property fields and empty defaults are not proof that a value was retrieved.

| Path                                      | Type               | Meaning                                                                                                           |
| ----------------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------- |
| `total`                                   | integer            | Total matching records reported by HubSpot, not the number on this page. Returns 0 when this page has no results. |
| `results`                                 | list of objects    | Records returned by this execution; see the retrieval limits below.                                               |
| `results[].id`                            | string             | HubSpot record ID.                                                                                                |
| `results[].properties`                    | object             | Property values returned for this record; some declared fields may be empty.                                      |
| `results[].properties.subject`            | string \| null     | The subject of the ticket                                                                                         |
| `results[].properties.content`            | string \| null     | The content of the ticket                                                                                         |
| `results[].properties.hs_pipeline`        | string \| null     | The pipeline ID                                                                                                   |
| `results[].properties.hs_pipeline_stage`  | string \| null     | The pipeline stage ID                                                                                             |
| `results[].properties.hs_ticket_priority` | string \| null     | The priority of the ticket                                                                                        |
| `results[].properties.firstname`          | string \| null     | First name of the contact                                                                                         |
| `results[].properties.lastname`           | string \| null     | Last name of the contact                                                                                          |
| `results[].properties.email`              | string \| null     | Email address of the contact                                                                                      |
| `results[].properties.phone`              | string \| null     | Phone number                                                                                                      |
| `results[].properties.name`               | string \| null     | Name of the company                                                                                               |
| `results[].properties.domain`             | string \| null     | Domain name of the company                                                                                        |
| `results[].properties.dealname`           | string \| null     | Name of the deal                                                                                                  |
| `results[].properties.amount`             | string \| null     | Amount of the deal                                                                                                |
| `results[].properties.dealstage`          | string \| null     | Stage of the deal                                                                                                 |
| `results[].createdAt`                     | string             | Creation timestamp returned by HubSpot; empty when unavailable.                                                   |
| `results[].updatedAt`                     | string             | Last-update timestamp returned by HubSpot; empty when unavailable.                                                |
| `results[].archived`                      | boolean            | Archive flag returned by HubSpot; defaults to false when omitted.                                                 |
| `results[].url`                           | string             | Record URL returned by HubSpot, when available; otherwise empty.                                                  |
| `paging`                                  | dict\[string, Any] | Pagination information. Pass `paging.next.after` as `after` to retrieve the next page with the same query.        |
| `exists`                                  | boolean            | True when this page contains at least one result.                                                                 |

Property objects can contain additional fields returned by HubSpot. The declared fields above are not a promise that every property is populated.

## Behavior and limits

`filters_json` is a JSON **string containing the filterGroups array**, not the entire search request. Supply `properties` separately to request specific fields. Use HubSpot's current search operators and limits for the chosen object type.

The action fetches one page. When `paging.next.after` is present, pass it to `after` on the next execution while retaining the same query. `total` describes matching records; it is not the number fetched into the current page. If the returned results are empty, this implementation returns `exists: false`, `total: 0` and empty paging.

Invalid JSON fails before the request; invalid filter structure or unsupported object operations can be rejected by HubSpot. Not every object shown in a generic object-type selector necessarily supports CRM search.

See [Troubleshooting](/ebbot-docs/integrations/automations-integrations/integration-setup-guides/hubspot-integration-in-automations/troubleshooting.md) for request errors and retry behavior, or return to the [action catalog](/ebbot-docs/integrations/automations-integrations/integration-setup-guides/hubspot-integration-in-automations/actions.md).
