HubSpot is a CRM platform that helps businesses manage contacts, companies, deals, and customer interactions. Integrating HubSpot with Frontegg allows your application to read and write CRM data — including contacts, companies, deals, quotes, and owners — on behalf of your users through OAuth 2.0 authentication.
Prerequisites
Prerequisites
- A HubSpot account with developer access
Go to developers.hubspot.com and sign in with your HubSpot account.

Once signed in, you will be in your HubSpot developer account. In the left sidebar, navigate to Development → Legacy Apps. This page lists all existing applications in your account.

Click Create legacy app in the top right corner.
In the dialog that appears, select Public (for apps that can be installed by any HubSpot account) and click Next.

On the App Info tab, enter a name for your application in the Public app name field (for example, "Frontegg Integration"). This name appears in HubSpot tools when users install your app.

Click the Auth tab to open the authentication configuration page.

Scroll down to the Redirect URLs section. Enter the following redirect URLs, adding each one separately by typing the URL and clicking + Add redirect URL:
https://YOUR_MCP_GATEWAY_URL/integration-callback

Scroll down to the Scopes section and click Add new scope. Select the required scopes from the list:
| Scope | Description |
|---|---|
crm.objects.contacts.read | Read contact records |
crm.objects.contacts.write | Create and update contact records |
crm.objects.companies.read | Read company records |
crm.objects.companies.write | Create and update company records |
crm.objects.deals.read | Read deal records |
crm.objects.deals.write | Create and update deal records |
crm.objects.owners.read | Read owner (user) records |
crm.objects.quotes.read | Read quote records |
crm.objects.quotes.write | Create and update quote records |
crm.objects.line_items.read | Read line item records |
crm.objects.line_items.write | Create and update line item records |
crm.schemas.contacts.read | Read contact property schemas |
crm.schemas.companies.read | Read company property schemas |
crm.schemas.deals.read | Read deal property schemas |
crm.schemas.custom.read | Read custom object schemas |
Minimum required scopes
Minimum required scopes
For basic CRM functionality, you need: crm.objects.contacts.read, crm.objects.companies.read, crm.objects.deals.read.

After selecting all required scopes, click Update.

Once all required details are set, click Create app at the bottom of the page.

After the app is created, the Auth settings page displays your app credentials:
- Client ID — Your app's unique identifier used to initiate OAuth.
- Client secret — Click Show to reveal the secret. Used to exchange authorization codes for access tokens.
Copy both values and store them securely.
Keep your credentials secure
Keep your credentials secure
Never share or commit your Client secret to version control.

Once you have obtained your Client ID and Client secret from the steps above, enter them in the integration configuration page of the Frontegg portal:
- Open the Frontegg portal and navigate to [ENVIRONMENT] → Integrations → HubSpot.
- Enter the Client ID and Client secret in the corresponding fields.
- Select the required scopes.
- Click Save.