Hi everyone,
I’m building an app to help us standardize client HubSpot portals, and I want to check if I’ve understood the split between public apps and private apps correctly.
My goal
We want to automate the initial setup of new client portals with a consistent schema. This includes:
- Creating deals, contacts, companies, and tasks
- Defining and editing custom properties on standard objects
- Creating lists and list memberships
- Creating views, email templates, and meetings
- Eventually also managing deal stages/pipelines and custom objects
My current understanding
-
Public apps (via OAuth) → can handle everything currently exposed in the public app APIs:
- Creating properties for standard objects (contacts, companies, deals)
- Creating and managing records
- Creating lists and memberships
- Creating views, tasks, email templates, meetings
-
Private apps (per client) → still required for things not exposed to public apps, namely:
- Creating pipelines and pipeline stages
- Creating pipeline popups
- Creating custom objects and schemas
Planned workflow
-
Client installs the public app to get the “standard manifest” across their portal.
-
For custom schemas and pipelines:
- Either the client invites me temporarily as Super Admin, or
- The client generates a one-time private app token with minimal scopes, I provision the custom schemas, and they revoke it afterward.
My questions
- Does my current understanding of what’s possible with public apps vs. private apps line up with how HubSpot works today?
- Are there any scopes I’m missing that would allow pipelines and custom objects to be handled in a public app (or is this strictly private app territory)?
- For debugging “insufficient scopes” errors — is there a good way to confirm whether the test account itself is limiting access, even with Super Admin + Enterprise Trial?
Any feedback or corrections would be greatly appreciated ![]()