HubSpot
CRM and marketing: contacts, companies, deals, tickets and more in one HubSpot account.
CRM and marketing: contacts, companies, deals, tickets and more in one HubSpot account.
API key
- Open developers.hubspot.com and create an API key with only the access your apps need.
- Copy it. It may be shown only once.
What to create: An access token from a HubSpot legacy private app (Development > Legacy apps > Create legacy app > Private), scoped to what the app needs.
Add it to your Gateway. It asks for the key:
everyapp provider add hubspotUse it in an app
In the app's everyapp.config.ts:
capabilities: {
hubspot: { access: "read", why: "What the app does with it." },
},The app calls HubSpot's API with integrationFetch(), and the Gateway adds the key. Use "write" if the app changes things. More in API providers.
Check it worked: everyapp provider show hubspot shows the key as set.
Rate limits: 250000 a day. Private apps on Free and Starter: 100 per 10 seconds per app and 250,000 a day per account; Pro 190 and 625,000; Enterprise 190 and 1,000,000.
Connect accounts
Each person connects their own HubSpot account in the Gateway, once, and every app that asks uses it. Apps never see the tokens. How connecting works
The redirect URI to register, with your Gateway's address (like apps.example.com):
https://<your gateway>/connect/hubspot-oauth/callbackThe app's scopes in HubSpot's developer console must match the sets apps declare, or HubSpot refuses the authorize URL.
- Open developers.hubspot.com and create an OAuth app (also called a client or an integration).
- Add the redirect URI above.
- Copy the client ID and client secret. The secret is often shown only once.
Add it to your Gateway. It asks for the client ID and secret:
everyapp provider add hubspot-oauthOr add it in Manage workspace → Providers.
Use it in an app
capabilities: {
"hubspot-oauth": { access: "read", scopes: ["contacts.read"], why: "What the app does with it." },
},Apps ask for these scope sets:
| Set | Allows | Provider scopes |
|---|---|---|
contacts.read | Contacts (read) | crm.objects.contacts.read |
contacts.write | Contacts (read and write) | crm.objects.contacts.read, crm.objects.contacts.write |
companies.read | Companies (read) | crm.objects.companies.read |
deals.read | Deals (read) | crm.objects.deals.read |
Check it worked: everyapp provider show hubspot-oauth shows the client as set. Then open the account menu → Connected accounts → Connect HubSpot.
Something wrong or missing? Open an issue.