HubSpot - List Objects
↩ Part of the HubSpot integration.
Description
Section titled “Description”Lists records of one object type (GET /crm/v3/objects/{object_type}) and returns the results array directly, ready to iterate, transform or export.
This node has no filters: it walks the object type from the beginning, one page at a time. When you need to filter by a property value, use Search objects instead.
Configuration
Section titled “Configuration”| Field | Type | Required | Description |
|---|---|---|---|
credentials_id | credentials | Yes | HubSpot credential |
object_type | text | Yes | Object type: contacts, companies, deals, tickets. Defaults to contacts if left empty |
limit | number | No | Results per page (max 100) |
after | text | No | Pagination cursor, taken from paging.next.after of the previous page |
properties | text | No | Properties to return, comma-separated (e.g. email,firstname) |
All the text fields accept dynamic variables, which is what makes the pagination loop possible.
Credentials
Section titled “Credentials”This module requires a HubSpot credential:
| Field | Description |
|---|---|
token | Private App token (starts with pat-), from HubSpot → Settings → Integrations → Private Apps |
Output
Section titled “Output”data is the array of records (the results field of the HubSpot response), not the envelope:
[ { "id": "701", "properties": { "email": "ana@acme.com", "firstname": "Ana", "hs_object_id": "701" }, "createdAt": "2026-08-05T10:00:00.000Z", "updatedAt": "2026-08-05T11:22:00.000Z", "archived": false }, { "id": "702", "properties": { "email": "luis@acme.com", "firstname": "Luis", "hs_object_id": "702" }, "createdAt": "2026-08-05T10:04:00.000Z", "updatedAt": "2026-08-05T10:04:00.000Z", "archived": false }]The cursor for the next page travels in _meta:
{ "moduleVersion": "1.0.0", "success": true, "count": 2, "after": "702", "objectType": "contacts", "totalMs": 260 }When _meta.after is undefined, there are no more pages.
Usage Example
Section titled “Usage Example”First page of contacts
Section titled “First page of contacts”{ "credentials_id": "hubspot_marketing", "object_type": "contacts", "limit": 100, "properties": "email,firstname,lastname,lifecyclestage"}Next page, driven by the cursor
Section titled “Next page, driven by the cursor”{ "credentials_id": "hubspot_marketing", "object_type": "contacts", "limit": 100, "after": "{{data.after}}", "properties": "email,firstname,lastname,lifecyclestage"}Companies to export to a spreadsheet
Section titled “Companies to export to a spreadsheet”{ "credentials_id": "hubspot_marketing", "object_type": "companies", "limit": 100, "properties": "name,domain,industry,city"}- The maximum page size is 100 (imposed by HubSpot). Asking for more returns a
400. - The node fetches one page per execution. To walk the whole object type, feed
_meta.afterback into theafterparameter on the next iteration and stop when it comes back empty. - If
propertiesis empty, HubSpot returns only its own set of default properties — usually far fewer fields than you expect. - The output is an array, so a downstream iterator node receives one item per record.
- The result is not sorted or filtered. For “contacts created in the last 24 hours” or “deals over 10.000”, use Search objects.
Related Nodes
Section titled “Related Nodes”- HubSpot: Search objects — the same array, but with filters and sorting.
- HubSpot: Get object — read one specific record.
- HubSpot: Update object — update each record while iterating the list.