Connects your Workflow to HubSpot CRM so you can query, create, update, and delete CRM records by using Flowgear-managed OAuth and live HubSpot metadata.
0.0.0.9 - Initial release.
Use this Connection to store the HubSpot OAuth settings and token state used by all HubSpot CRM methods.
| Property |
Type |
Description |
Client ID |
String |
The OAuth client identifier issued by HubSpot. |
Client Secret |
Masked |
The OAuth client secret issued by HubSpot. |
Access Token |
Masked |
The OAuth access token used for HubSpot API requests. |
Refresh Token |
Masked |
The OAuth refresh token used to renew the access token. |
Access Token Expires At UTC |
String |
The UTC timestamp after which Flowgear refreshes the current access token. |
Granted Scopes |
String |
The space-delimited OAuth scopes currently granted to the Connection. You can leave this blank if you are unsure which scopes were granted. Flowgear refreshes it from HubSpot after authorization, during connection testing, and before template discovery when needed. |
- Create a HubSpot developer app and use its
Client ID and Client Secret for this Connection.
- Add the Flowgear OAuth callback URLs to the app's redirect URL list:
https://app.flowgear.net/r/auth
https://appnew.flowgear.net/r/auth
https://appnext.flowgear.net/r/auth
- Configure the app with the HubSpot scopes required by this Node. The connector requests the following scope set during authorization:
oauth
crm.objects.contacts.read
crm.objects.contacts.write
crm.objects.companies.read
crm.objects.companies.write
crm.objects.deals.read
crm.objects.deals.write
crm.objects.custom.read
crm.objects.custom.write
crm.schemas.custom.read
- You do not need to type values into
Granted Scopes. Flowgear fills that property from HubSpot and uses it to decide which templates to show.
- In the Flowgear Console, create a
Connection of type HubSpot CRM, enter the Client ID and Client Secret, then click Connect your Account.
- Complete the HubSpot sign-in and consent flow for the HubSpot account you want the Node to access. HubSpot developer accounts cannot install apps directly, so use a test or target HubSpot account for authorization.
- Test the Connection after authorization. The test refreshes the stored
Granted Scopes from HubSpot and confirms that the Connection includes at least one supported CRM read or write scope.
- Template discovery depends on a working HubSpot Connection because object and Property definitions are loaded from live HubSpot metadata instead of a bundled schema.
- For HubSpot guidance on app setup, see Legacy public apps.
The Node exposes metadata-driven query and single-record CRUD methods. Query uses a direct ObjectType parameter plus an Options object. Create, Update, and Delete use a direct ObjectType parameter plus streamed Items, and each method returns one normalized response row per processed record.
Queries HubSpot CRM records and returns one normalized response row per record.
| Parameter |
Type |
Description |
Connection |
Connection |
The HubSpot CRM Connection used to authenticate the request. |
ObjectType |
String |
The HubSpot object type to query, such as contacts, companies, or deals. Templates can also expose custom object types when the Connection has the required scopes. |
Options |
Object |
Optional query settings such as Id, Properties, and IncludeArchived. |
Options.Id |
String |
Optional HubSpot record ID for a single-record read. |
Options.Properties |
String |
Optional comma-separated list of HubSpot Property API names to include in the response. |
Options.IncludeArchived |
Boolean |
Set to true to include archived records. |
| Return |
Type |
Description |
Response |
Array |
Normalized response rows that include returned HubSpot Property values, record metadata such as objectType, recordId, createdAt, and updatedAt, provider diagnostics such as providerStatus, providerCategory, and providerCorrelationId, plus the raw response payload. |
Creates HubSpot CRM records one row at a time and returns one normalized response row per created record.
| Parameter |
Type |
Description |
Connection |
Connection |
The HubSpot CRM Connection used to authenticate the request. |
ObjectType |
String |
The HubSpot object type to create. |
Items |
Array |
HubSpot records to create, with writable Properties as direct children of each item. The fields exposed in templates depend on the selected object type and the Connection's granted scopes. |
| Return |
Type |
Description |
Response |
Array |
Normalized response rows for each created record, including returned HubSpot Property values, record metadata, provider diagnostics, and the raw response payload. |
Updates HubSpot CRM records one row at a time and returns one normalized response row per updated record.
| Parameter |
Type |
Description |
Connection |
Connection |
The HubSpot CRM Connection used to authenticate the request. |
ObjectType |
String |
The HubSpot object type to update. |
Items |
Array |
HubSpot records to update, with Id plus writable Properties as direct children of each item. The fields exposed in templates depend on the selected object type and the Connection's granted scopes. |
| Return |
Type |
Description |
Response |
Array |
Normalized response rows for each updated record, including returned HubSpot Property values, record metadata, provider diagnostics, and the raw response payload. |
Deletes HubSpot CRM records one row at a time and returns one normalized response row per deleted record.
| Parameter |
Type |
Description |
Connection |
Connection |
The HubSpot CRM Connection used to authenticate the request. |
ObjectType |
String |
The HubSpot object type to delete. |
Items |
Array |
HubSpot records to delete, with Id as a direct child of each item. |
| Return |
Type |
Description |
Response |
Array |
Normalized response rows for each deleted record, including the input request context, record metadata, provider diagnostics, and an empty raw response payload for successful deletes. |
- If
Granted Scopes is blank on the Connection, Flowgear refreshes it from HubSpot before filtering templates.
Query uses Options.Id for a single-record read. If you do not supply Options.Id, the Node queries records for the selected object type and handles paging internally.
- Use a comma-separated string in
Options.Properties for new Workflows. The Node still accepts a JSON string array for backward compatibility.
Create, Update, and Delete place HubSpot fields directly on each Items[] row instead of nesting them inside Request or Properties wrappers.
- Template availability depends on the scopes granted to the Connection. Core object templates are filtered by read or write scope. Custom-object query templates require
crm.objects.custom.read, and custom-object create, update, and delete templates require crm.objects.custom.write.
- Template discovery requires valid HubSpot credentials because the Node loads object and Property metadata from live HubSpot APIs instead of a bundled schema.
- Existing HubSpot Connections may need to be re-authorized before custom-object templates appear because the connector now requests
crm.objects.custom.read, crm.objects.custom.write, and crm.schemas.custom.read.
- This release does not include search, batch operations, associations, owners, pipelines, quotes, or line items.