Hi n8n team/community,
I’m setting up a HubSpot integration in n8n Cloud. I’ve successfully connected HubSpot using the native OAuth credential and confirmed that I can both read and update HubSpot contacts.
However, when I add a HubSpot Trigger such as “On Contact Created” or “On Contact Property Changed,” n8n asks for a different Public/Developer App credential.
Could you clarify the difference between the OAuth credential used for HubSpot actions and the Public App credential used for triggers?
Why are these credentials separate?
Can the OAuth credential be used for both actions and triggers?
If triggers require a Public App credential, do I need to create a separate HubSpot app, and can that credential then be reused across multiple workflows?
I want to understand the correct setup before creating any additional credentials or apps.
Thanks!
Describe the problem/error/question
What is the error message (if any)?
Please share your workflow
(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)
HubSpot Node (Actions): These nodes use OAuth 2.0 to act on behalf of you (the user). When you use the native OAuth credential, you are simply authorizing n8n to access your HubSpot data to perform tasks like reading or updating contacts.
HubSpot Trigger (Webhooks): Triggers rely on Webhooks. For HubSpot to “push” a notification to n8n the moment a contact is created, HubSpot needs a registered App that has a dedicated webhook subscription configuration.
No. The standard OAuth credential used for actions cannot be used for triggers because it lacks the App ID and the formal “App” registration structure required by HubSpot to establish and manage webhook subscriptions.
Yes, you do need to create a separate “Public App” in your HubSpot Developer account, but yes, it is highly reusable.
Creation: You will go to the HubSpot Developer Portal, create a “Public App,” and generate a Client ID, Client Secret, App ID, and a Developer API Key.
Reuse: Once you have configured this “HubSpot Public App” credential in n8n, you can select it in any workflow that uses a HubSpot Trigger. You do not need to create a new HubSpot app for every new workflow.
Hi @Chindu_Reddy Welcome! The Trigger needs APP ID and Developer API Key to manage webhook subscriptions, as well as OAuth. That’s why your existing Cloud OAuth credential can’t be selected for it. Keep that credential for actions.
The public-app setup above needs a correction: new legacy public apps can no longer be created. The Trigger still uses HubSpot’s legacy Webhooks API, so it needs an existing legacy public app, not a new Projects-based app.
Don’t share that app across multiple active HubSpot Triggers either. Publishing a second Trigger replaces the first one’s webhook. Use one Trigger workflow and route its events to sub-workflows.
Without an existing legacy app, use a Schedule Trigger with your current OAuth credential and HubSpot Contact > Get Recently Created/Updated. Save a checkpoint to filter out updates you’ve already processed.