HubSpot CRM
Create, update, search and delete HubSpot contacts, companies, deals, tickets and engagements, and manage contact-list membership.
| Nodes | HubSpot CRM (actions), HubSpot CRM Trigger (polling) |
| Auth | Flero-managed sign-in, your own HubSpot app, or a private-app token |
| Availability | HubSpot CRM: all workspaces. Trigger: limited release |
Connecting
Flero-managed sign-in
Click Sign in with HubSpot CRM in the node and approve the app for your portal. The app requests:
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, tickets, crm.lists.read, crm.lists.write, sales-email-read
The person connecting must be a HubSpot super admin or have the App Marketplace Access permission in the portal. HubSpot may show a note that the app has not been reviewed by HubSpot. That note is expected.
Your own HubSpot app
Create a public app in your HubSpot developer account, add the Redirect URL shown in Flero's credential dialog, and paste the app's client ID and secret. The scopes you request must match the app's required scopes exactly, or HubSpot rejects the sign-in.
Private-app token
Create a private app in your portal with the scopes you need, then store its access token as an API Key credential. Flero sends it as a bearer token, which is what HubSpot expects. The legacy hapikey API key is not supported.
Operations
| Resource | Operations |
|---|---|
| Contact | Get Many, Create or Update, Get, Update, Delete, Search, Get Recently Created/Updated |
| Company | Get Many, Create, Get, Update, Delete, Search, Get Recently Created/Updated |
| Deal | Get Many, Create, Get, Update, Delete, Search, Get Recently Created/Updated |
| Ticket | Get Many, Create, Get, Update, Delete |
| Engagement | Get Many, Create, Get, Delete (type: notes, calls, emails, meetings or tasks) |
| Contact List | Add, Remove |
Enter record properties as plain fields, for example firstname, lastname, email, phone, company and jobtitle for a contact. Flero wraps them in HubSpot's properties object. email is required for Create or Update on a contact.
Search takes filterGroups, sorts, query, properties, limit and after. Results are in output.data.results, and the next page cursor is in output.data.paging.next.after.
The new record's ID after a create is {{ $node["Create Contact"].output.data.id }}.
Triggers
The HubSpot CRM Trigger offers polling triggers built from the list and search operations. It is in limited release. Until it is available, use a Schedule trigger followed by Get Recently Created/Updated.
Limits
- HubSpot's API rate limits apply. Flero does not throttle calls.
- New scopes need a new sign-in. Existing connections keep their old grants until you Reconnect.
Common errors
| Symptom | Check |
|---|---|
| Sign-in fails before the consent screen | The connecting user is not a super admin and lacks App Marketplace Access. |
| HubSpot rejects your own app's sign-in | The requested scopes do not match the app's required scopes exactly. |
401 with a token credential |
The private-app token is wrong or was rotated. Paste the new one. |
400 on Create Contact |
email is missing, or a property name does not exist in your portal. |
Related
Found something out of date? This page lives in the Flero docs content set.