HubSpot vs Salesforce: Record Access, Data Model, Change Control and Selection Criteria
HubSpot vs Salesforce turns on record access, data model, change control and administration; this comparison tests one sample access policy on both.
Paul Maxwell, PhD
AUTHOR
GET WEEKLY REVOPS INSIGHTS
No spam. Unsubscribe anytime.
A HubSpot vs Salesforce evaluation built on a feature matrix finds both platforms able to do what the matrix asks: both have record permissions, pipelines, workflows, custom reports and sandboxes. The differences that decide the outcome appear after the contract. An access rule the business operates is one setting in one platform and, in the other, a workflow that writes a person's name onto every matching record. A configuration change reaches production by a different route on each platform, and on one of them the route depends on the subscription tier.
This article compares the two platforms where their documented mechanics differ. It starts with record access and tests a sample policy of seven rules against both, then covers the data model, change control, automation, reporting, industry data models and administration, and closes with a reference table, costs and returns, a selection procedure, antipatterns and limits. The firm publishing it is a HubSpot Solutions Partner; that interest is stated once, here, and it is the reason Salesforce's stronger axes are named in specific terms.
Record-level access is the set of individual records a user can open, as distinct from the objects and fields that user can work with. An org-wide default is Salesforce's baseline access to one object's records, which the role hierarchy and sharing rules can open but never narrow. A HubSpot-user property is a custom property whose value is a user; HubSpot treats a user named in one as an owner of the record for permission purposes.
Record Access in Salesforce and HubSpot
Salesforce determines record access with seven documented tools: org-wide defaults, the role hierarchy, the territory hierarchy, sharing rules, teams, manual sharing and programmatic sharing, checked whenever a user opens a record, runs a report or searches, through the interface or the API (Salesforce, Record-Level Access: Under the Hood). The org-wide default is Private, Public Read Only, Public Read/Write or Controlled by Parent, and the role hierarchy opens a record to the roles above its owner (Trailhead, record access). Sharing rules are based on the owner or on criteria that records must match, grant access to public groups, roles or territories, and can never be stricter than the org-wide default (Trailhead, sharing rules).
HubSpot sets permissions per object under Settings, Users & Teams, where View, Edit and Delete each take one scope: all records, the team's records, or the user's own, with an Unassigned checkbox for records nobody owns (HubSpot user permissions). Ownership is read from the owner properties and from any custom property of the HubSpot-user field type, and a team-scoped user reaches records owned by members of their teams. Teams require a Professional or Enterprise subscription. On Enterprise, teams can be nested, and a parent team reaches the records of its nested teams while a nested team cannot reach the parent's (HubSpot teams).
Set side by side, the documentation supports a sharper statement than the claim that Salesforce is more flexible. Below the all-records scope, every HubSpot record grant is a name written on the record: an owner, a user in a HubSpot-user property, or a teammate of either. The one exception, the Unassigned checkbox, is keyed on the absence of any name. A rule keyed on anything else, such as a product line or a closed-won stage, can be enforced only by automation that writes a person onto each matching record, at one write per record and one rewrite per staffing change. Salesforce states the same rule once, as a criteria-based sharing rule to a group, and computes the per-record grants itself. The test is mechanical: restate each rule as "users in this group see records where this condition holds", then ask whether the condition names an owner or a team.
Salesforce has a limit of its own on this axis. Grant Access Using Hierarchies can be switched off only on custom objects (Trailhead, record access), so on opportunities a manager above the owner always sees the owner's deals, just as a team-scoped HubSpot manager sees every deal the team owns. A rule hiding a deal from its owner's manager therefore has no destination in either platform's core mechanisms. At field level, HubSpot's property restriction is an Enterprise feature that does not stop the API from setting a restricted value (HubSpot property restriction), as HubSpot field-level permissions explains.
A Sample Access Policy Tested on Both Platforms
The organisation below is sample data, built so the arithmetic can be checked; it describes no client. Its 44 users are four regional teams of one manager and eight reps, a specialist for each of two product lines (Instruments and Software), three finance users, a vice president of sales and two administrators. Of its 2,000 deals, 700 include Instruments, 900 include Software, 250 include both, and 600 are closed-won. Each product line is a checkbox field on the deal, so both platforms read the condition from the deal's own fields.
| Rule | HubSpot | Salesforce |
|---|---|---|
| RuleR1. Reps see and edit their own deals | HubSpotOwn-deals scope | SalesforceOwner access under a Private default |
| RuleR2. Managers see their region's deals | HubSpotOne team per region, team scope | SalesforceManager role above the reps' roles |
| RuleR3. The vice president sees every deal | HubSpotAll-deals scope | SalesforceTop of the role hierarchy |
| RuleR4. Specialists read every deal in their line | HubSpotA workflow writes the specialist into a HubSpot-user property | SalesforceOne criteria-based sharing rule per line, read-only |
| RuleR5. Finance reads closed-won deals only | HubSpotA workflow writes a finance user into a HubSpot-user property; finance team scope | SalesforceA criteria-based sharing rule on stage, read-only |
| RuleR6. Margin is visible to finance and managers only | HubSpotProperty restriction, on Enterprise | SalesforceField-level security |
| RuleR7. A confidential deal is hidden from the owner's manager | HubSpotNo destination | SalesforceNo destination in defaults, hierarchy or sharing rules |
Salesforce meets six rules with configuration alone, R4 and R5 through three public groups and three criteria-based sharing rules, with no record written by an administrator. HubSpot meets R1, R2, R3 and R6 with scopes and a property restriction, and R4 and R5 only through three HubSpot-user properties kept current by workflows. R4 writes 700 values for Instruments and 900 for Software, 1,600 writes on 1,350 distinct deals because the 250 deals carrying both lines are written twice. R5 adds 600, so 2,200 values are written before the policy holds on existing deals.
The ongoing costs diverge further. Replacing the Software specialist is one group-membership change in Salesforce, which then recalculates access, and 900 rewritten deals in HubSpot, where access follows the name on the record. R7 fails on both platforms for one structural reason, which shows the test does not favour either product by construction.
Data Model: Associations, Relationships and Inherited Access
The data-model difference that bears on this comparison is whether a relationship carries access. HubSpot associations are many-to-many, with up to 50 labels per object pair on Professional and Enterprise (HubSpot association labels), and custom objects require Enterprise (HubSpot custom objects). The permissions guide does not list association with a visible record as a ground for access. Salesforce relationships do carry access: the record-access paper documents that a user who sees a child opportunity, case or contact can view the parent account, and that a master-detail record follows its master's sharing. A specialist working one opportunity sees its account in Salesforce, and in HubSpot only once named on the company record too.
Change Control: Sandboxes, Deployment and Source Control
HubSpot's standard sandbox exists only on Enterprise subscriptions, and only a Super Admin can create one or deploy from it (HubSpot sandbox deployment). It copies up to 5,000 contacts with up to 100 associated deals, companies and tickets each, and a deployment moves up to 300 changes at a time. No sandbox is listed below Enterprise, so a Professional account is changed where the business works.
Salesforce's org development model builds a change in Developer sandboxes, integrates it in a Developer Pro sandbox and runs user-acceptance testing in a partial sandbox. The change is retrieved as metadata, stored in source control and deployed from there to production with a manifest file listing its components (Trailhead, planning changes to an org). The same unit places the full sandbox, which holds a copy of production data, after release, for training. A Salesforce change can therefore be reviewed as a file difference before it ships. Following the model is optional, since the unit also mentions changes made directly in the org through the Setup UI. HubSpot's deployment article describes a selection of assets inside the sandbox, not configuration held as files.
Automation and Extensibility
A HubSpot workflow can run custom code in JavaScript, or in Python as a beta, on Data Hub Professional or Enterprise, and each action must finish within 20 seconds and 128 MB of memory (HubSpot custom code actions). Apex runs inside Salesforce under governor limits, such as 100 SOQL queries, raised to 200 for asynchronous calls (Trailhead, asynchronous Apex). Logic that exceeds the HubSpot limits has to run outside the action, on a service the workflow calls. Apex logic stays on the platform, inside limits a developer designs around.
Reporting in HubSpot CRM and Salesforce
HubSpot's custom report builder, on Professional and Enterprise, analyses a primary data source with related objects, and the number of custom reports allowed depends on the subscription (HubSpot custom reports); the HubSpot custom report builder guide covers its design. A Salesforce joined report combines up to five blocks from report types related to the same object (Trailhead, joined reports). Both platforms filter reports by record access. Salesforce checks access on every report run, and HubSpot shows a user with own-records permission only their assigned records in reports (HubSpot user permissions). On either platform, two users running one report can see different rows.
HubSpot's forecast tool, on Sales Hub or Service Hub Professional and Enterprise, is set up per pipeline with forecast categories and goals per user (HubSpot forecast setup), and its documentation describes no territory object. Salesforce's record-access paper treats territories as an access structure, with assignment rules that share a record to a territory and grants inherited by users in the territories above it.
Ecosystem and Industry Data Models
Salesforce sells industry solutions, and some carry vendor-built data models: Financial Services Cloud is described as industry-specific data models built on Sales Cloud. HubSpot's lineup is organised by function, from Marketing Hub to Agent Hub over Smart CRM, and it sells no industry edition. For a bank or an insurer, that vendor-built record model is a genuine Salesforce advantage. Listings on the AppExchange and the HubSpot App Marketplace are not counted, since a count cannot show whether a sector's requirement is met.
Administration and the Configuration Surface
An access audit has to read every mechanism that can grant a record. In Salesforce that is the seven tools plus the implicit grants between accounts and their child records, and the record-access paper notes that a sharing change can trigger access changes across the organisation, which take time to recalculate in a large one. The paper that explains how those grants are computed is addressed to "expert architects working on Salesforce implementations that have complex record access requirements" and assumes expertise in SQL. HubSpot answers the same question with three scopes, a checkbox, team membership and the ownership properties, a list short enough to audit from the user and team settings. The sample shows the catch: R4 and R5 are access rules that live in HubSpot workflows, so an access audit that stops at Users & Teams misses them, while Salesforce keeps equivalent logic inside its sharing configuration.
Salesforce vs HubSpot Reference Table
| Dimension | HubSpot | Salesforce |
|---|---|---|
| DimensionRecord access tools | HubSpotOwn, team or all records per object and action | SalesforceSeven, from org-wide defaults to programmatic sharing |
| DimensionAccess by field value | HubSpotA workflow writes a named user into a HubSpot-user property | SalesforceA criteria-based sharing rule to a group, role or territory |
| DimensionUpward visibility | HubSpotTeam scope; nested teams on Enterprise | SalesforceRole hierarchy, fixed on standard objects |
| DimensionField-level control | HubSpotProperty restriction on Enterprise; API writes not blocked | SalesforceField-level security |
| DimensionRelationships and access | HubSpotLabelled associations; no documented access effect | SalesforceAccounts and child records share access |
| DimensionTest environments | HubSpotStandard sandbox on Enterprise; 300 changes per deployment | SalesforceDeveloper, Developer Pro, partial and full sandboxes |
| DimensionConfiguration as files | HubSpotNot described for CRM settings | SalesforceMetadata held in source control |
| DimensionReports and record access | HubSpotOwn-records users see their assigned records | SalesforceAccess checked on every report run |
| DimensionCode in automation | HubSpotCustom code action: 20 seconds, 128 MB | SalesforceApex under governor limits |
| DimensionReport scope | HubSpotPrimary data source plus related sources | SalesforceJoined reports of up to five blocks |
| DimensionIndustry data models | HubSpotNone; lineup by function | SalesforceIndustry clouds, such as Financial Services Cloud |
Costs and Returns of Each Platform
Salesforce buys expressiveness where HubSpot has less: field-value access rules, configuration held as reviewable files, and vendor-built industry data models. It pays in the specialist knowledge its record-access paper assumes, in the environment pipeline that file-based review requires, and in sharing recalculation after a realignment, which its record-access paper links to performance problems in an inefficient sharing architecture. Its case is strongest where the policy has many rules like R4 and R5, where auditors expect changes reviewed before deployment, or where an industry cloud already models the business. It is weakest where every rule names an owner or a team, since the business then pays for mechanisms it never configures.
HubSpot buys a configuration surface small enough to audit, one CRM beneath every hub, and a sandbox on Enterprise. It pays in per-record writes for field-value rules, 2,200 in the sample, in Enterprise gates on nested teams, custom objects, property restriction and sandboxes, and in CRM settings that the documented deployment route does not hold as files. Its case is strongest where the policy reduces to owners and teams and marketing, sales and service should share one CRM, and weakest where criteria-based access is extensive or the people in criteria-based roles change frequently, because each change is a bulk rewrite.
Access Policy Test: Selection Procedure
- Write every access rule in one form, including rules that exist only in practice: users in a named group can view or edit records of a named object where a stated condition holds.
- Classify each condition as the owner, the owner's team, a field value, or an exclusion from someone above the owner.
- Map each rule to HubSpot under Settings, Users & Teams: owner and team rules to scopes (nested teams need Enterprise), field-value rules to a HubSpot-user property and a workflow, exclusions to no destination.
- Map each rule to Salesforce under Setup, Sharing Settings: owners to the org-wide default, managers to the role hierarchy, field values to criteria-based sharing rules, exclusions to no destination.
- For each HubSpot workflow rule, count the matching records, which are the backfill, and the named people, who are the future rewrites.
- Weight the remaining axes against the business's constraints; the weighted scorer beneath this article does that arithmetic.
- Build the hardest expressible rule in each vendor's evaluation account, with test users holding exactly the policy's permissions.
- Verify by signing in as a restricted test user and confirming that the deals index shows the count the rule predicts, then removing the condition from one record and confirming that access to it is lost. Passing the first check and failing the second means a workflow that writes and never clears.
Selection Antipatterns and Their Symptoms
Users on a new HubSpot account ask for all-records scope or for regular exports. The access they need is keyed on a field value that a feature-matrix evaluation never classified, and the fix is a workflow-maintained HubSpot-user property or a change of policy, a choice cheaper at step 2 than after launch.
A specialist still reads a deal after its product line was removed. The workflow writes the HubSpot-user property but has no branch that clears it, so the repair is a clearing branch and re-enrolment whenever the product-line property changes.
A newly appointed specialist sees none of the predecessor's deals. The old name is still on every matching deal, 900 for Software in the sample, because HubSpot grants access to the name rather than the role; naming a stable member of a specialist team and granting team scope turns later replacements into team changes, subject to step 8.
A Salesforce manager can see a deal marked confidential. Opportunities are a standard object whose hierarchy grant cannot be switched off, and sharing rules only add access, so the remedy lies outside those mechanisms and must be designed before confidentiality is promised.
Boundaries of This Comparison
Behaviour, tiers and limits are as documented in September 2026 by HubSpot and by Salesforce's Trailhead units and Winter '27 record-access paper; as both products change, the vendors' documentation is authoritative over this text. Licence prices are excluded because they vary with edition, seat count and contract. HubSpot's tier gates are stated throughout, while Salesforce's edition gates are not tabulated here, so criteria-based sharing, territories and each sandbox type should be confirmed against the Salesforce edition being quoted. Running both platforms is covered in the HubSpot Salesforce integration guide, the move from one to the other in the Salesforce to HubSpot migration guide, an example of the move in the illustrative Salesforce to HubSpot migration case study, and the wider argument in the comparative white paper on Salesforce and HubSpot.
Documentation establishes what each platform can be configured to do, not that either produces better commercial outcomes, and no controlled comparison of the two is known to this article; the sample counts illustrate arithmetic, not a typical organisation. One HubSpot step rests on inference: the documentation states that a user named in a HubSpot-user property has owner access, and that team scope covers records team members own, but not that the two combine, so step 8 tests it. Salesforce also documents access features outside the seven tools tested here, such as restriction rules, whose coverage should be confirmed before a design relies on them.
Frequently Asked Questions
Which is better: Salesforce vs. HubSpot? Neither, in the abstract. Salesforce is stronger on field-value access rules, change review and industry data models; HubSpot is stronger where access reduces to owners and teams and a small team runs one CRM.
How does HubSpot CRM vs Salesforce compare on permissions? HubSpot scopes access to own, team or all records, and below the all-records scope it grants access only to users named on the record and their teammates. Salesforce adds criteria-based sharing rules, which grant access by field value without writing to the record.
What differs in the HubSpot CRM vs Salesforce CRM data model? HubSpot associations are many-to-many with labels and carry no documented access. Salesforce relationships carry access: an account and its child records share it, and a detail record follows its master.
Is Salesforce CRM vs HubSpot CRM mainly a question of price? Licence price is real and excluded here. The costs that decide a HubSpot vs. Salesforce choice are structural: per-record writes and Enterprise gates on one side, specialist administration and an environment pipeline on the other.
Does Salesforce CRM vs HubSpot need a different kind of administrator? An access audit in Salesforce reads seven sharing tools and the implicit grants between records, and Salesforce's explanation of how they combine is written for expert architects. HubSpot's model can be audited from the user and team settings, except for access rules built as workflows.
In Summary
Salesforce grants record access through seven documented tools, including criteria-based sharing rules that state a field-value rule once. Below the all-records scope, HubSpot grants access to users named on the record and their teammates, so the same rule becomes a workflow that writes names: 2,200 writes in the sample, and 900 rewrites when one specialist is replaced. Salesforce is also stronger on file-based change review and industry data models. HubSpot's access model is small enough to audit and runs every hub on one CRM, at the price of Enterprise gates and access logic that moves into workflows. Neither platform can hide a deal from its owner's manager with its core mechanisms.
The access policy, written as rules of one form with each condition classified, is the document to prepare before any vendor demonstration. A policy of owners and teams turns the choice into a question of administration and cost, while a policy with many field-value rules has already settled access in Salesforce's favour.
Ten axes · weight them yourself
Which of these matters for the business making the decision?
Every score carries a reason. Nothing is asserted to be better in general — the totals depend entirely on what is weighted, and the result changes hands under plausible weightings.
On default weights: Salesforce 76, HubSpot 71.
Both answers are work, and each has an illustrative case study
A comparison is only useful if it ends somewhere. These are the two projects the result implies, each with an illustrative case study: a composite, not the record of a single client engagement.
If the incumbent wins on the axes that matter
Run both, and decide which system owns what
Replacing a system that is winning on the reader's own weighting is the wrong project. The work is object ownership, identity resolution, and reporting both teams will accept. Smaller than a migration and harder to specify.
Illustrative case studyA manufacturer running both CRMs, and the reporting both sides signed offThe serviceIf the platform is no longer the constraint
Migrate, once it is known what still works
Cost is governed by how much of the existing configuration is still load-bearing, which is an audit question before it is a migration question. In the illustrative case below, 340 automations resolved to 96 that still fired.
Illustrative case studyAnnual cost from $148,000 to $63,000, with 74 automations rebuilt rather than portedThe service