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
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.
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 for request errors and retry behavior, or return to the action catalog.
Was this helpful?

