Search Companies
hubspot.search_companies
ActionCRM & salesconnection required
Calls the HubSpot API with the connection's credentials.
Search companies with POST /crm/v3/objects/companies/search. With no `property_name` a property filter matches on `name`.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- Bearer token
- Providers
- HubSpot
- Secret shape
- the HubSpot private-app token, or {"token": "…"}
- Resolved by
- config.connection_id, else node.connection_id
Configuration
9 fields, none required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
property_name The property to filter on. Leave blank to search on this node's default property, or to run a free-text query instead. | string | No | — | — | — |
operator How the property is compared to the value. | string | No | EQ | one of "EQ", "NEQ", "LT", "LTE", "GT", "GTE", "BETWEEN", "IN", "NOT_IN", "HAS_PROPERTY", "NOT_HAS_PROPERTY", "CONTAINS_TOKEN", "NOT_CONTAINS_TOKEN" | — |
value The value to match. Give a comma-separated list for IN and NOT_IN, and `low,high` for BETWEEN; HAS_PROPERTY and NOT_HAS_PROPERTY ignore it. | string | No | — | — | Acme |
query A free-text search over the object's default searchable properties, used instead of a property filter. | string | No | — | — | — |
filter_groups HubSpot's own filterGroups structure as a JSON array, for anything one property filter cannot express. Groups are OR-ed, filters inside a group are AND-ed; at most 5 groups of 6 filters, 18 in total. | array | No | — | array of object | — |
properties Comma-separated HubSpot property names to return. HubSpot returns only its own default set when this is blank; use hubspot.list_properties to discover custom ones. | string | No | — | — | — |
sorts Sort order as a JSON array of {"propertyName": "createdate", "direction": "DESCENDING"} — HubSpot applies at most one sort per search. | array | No | — | array of object | — |
limit How many records to return; HubSpot caps a search page at 200. | number | No | 10 | 1–200 | — |
after Paging cursor taken from the previous page's `after` output; blank starts at the first page. | string | No | — | — | — |
- At least one of value, query, filter_groups, property_name must be set.
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"limit": 10,
"operator": "EQ",
"value": "Acme"
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
results The records on this page, each with its id and properties. | array | — |
count How many records this page carried. | number | — |
after Cursor to pass as the next call's `after`; empty when this was the last page. | string | — |
total How many records match the search in total, as HubSpot counts it. | number | — |
{
"after": "",
"count": 0,
"results": [],
"total": 0
}Notes
- A search never returns more than 10,000 records in total, however far you page: HubSpot answers a deeper page with a 400. Narrow the filter, or sort by `hs_lastmodifieddate` and walk the window forward, for a larger export.
- Newly created and updated records take a few seconds to become searchable. A search run immediately after a write can legitimately return nothing.
See Search Companies run in a workflow.
In a technical demo we add the HubSpot connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.