The Vehicle Object and the CFO's One Upgrade
Northwind Fleet Services manages 2,300 commercial vehicles for mid-market shippers and is migrating off Mailchimp plus a heavily customized Salesforce org. The CRM export holds 180,000 contacts, 41,000 companies, and an estimated 40% duplication from five years of trade-show lists and event microsites.
Northwind wants four things in year one: a "Vehicle" record that links each unit to both a company and a service contact; subscription revenue reporting on maintenance contracts; five regional teams that can only see their own records and dashboards; and a nightly two-way sync of roughly 40,000 record changes. There is also an audit requirement - they must show who changed a contract's value, and when, going back three years.
Sales has already signed for Sales Hub Professional. Marketing wants Marketing Hub Professional. The CFO has approved exactly one upgrade and told the implementation lead, "Do not come back in eight months with a half-built portal." In-house there is one HubSpot-experienced admin, shared with the support team.
1. Map each of Northwind's four requirements to the HubSpot capability it depends on, and recommend a specific edition strategy. Flag anything that must be verified with HubSpot before the contract is signed.
Read the worked answer
Map first, buy second, and put every uncertain line in writing before signature.
Vehicle record. A custom object with associations to Company and Contact is an Enterprise-tier capability across the Hubs. This alone forces at least one Enterprise subscription covering the object and its associations. It is not negotiable and it is not a Professional workaround - the usual workaround (a deal per vehicle) will collapse at 2,300 units and contaminate revenue reporting.
Subscription revenue reporting. Recurring line items on deals work in Sales Hub Professional. Multi-touch revenue attribution across campaigns sits in Marketing Hub Enterprise. Decide which question the CFO is actually asking before paying for the second.
Regional visibility and five teams. Teams plus permission sets exist below Enterprise, but record-level partitioning and granular object permissions commonly require Enterprise. Verify the exact granularity with a HubSpot technical resource.
Two-way nightly sync of 40,000 changes. Operations Hub data sync, Professional at minimum; Enterprise if the mapping needs custom code. 40,000 changes per day is well within batch endpoints, but confirm the portal's daily API ceiling.
Recommendation. Sales Hub Enterprise (custom object + permissions) + Operations Hub Professional (sync) + Marketing Hub Professional (email and lifecycle). One upgrade is not the same as one Enterprise everywhere - this package spends the CFO's approval where it buys capability and defers Marketing Hub Enterprise until attribution is a real requirement.
2. Write the migration and deduplication sequence. Be explicit about what you do *not* migrate.
Read the worked answer
Deduplicate before migration, never after - merging inside HubSpot destroys the losing record's timeline permanently.
Sequence. (1) Export full contacts, companies, and the Vehicle-equivalent from Salesforce. (2) Normalise: lowercase emails, strip personal domains from company matching, E.164 phone format. (3) Match on unique keys, not fuzzy names - email for people, root domain plus country for companies. (4) Agree survivorship rules with a business owner in the room: most recently active record wins on person; Salesforce account owner wins on company. Write the rules down. (5) Freeze the source during cutover and run one final delta import.
What does not migrate. Do not push 180,000 contacts into the portal. Segment first: keep contacts with a deal in the last 24 months, an owner, or a verified open in the last 12 months; archive the remainder to a warehouse for compliance and legal hold. This protects the marketing contact tier, keeps segmentation honest, and avoids paying for 72,000 duplicate ghosts. Also exclude competitor domains and the ten highest-volume event microsite lists until each is manually assessed.
Validation. Pilot 500 records end to end, reconcile counts at every stage, and run a smoke test that the Vehicle association resolves to the right contact before the bulk load. Migration failures are almost always association failures, not field failures.
3. How do you structure the first nine months so the CFO's feared outcome - a half-built portal - cannot happen?
Read the worked answer
The CFO's fear is a sequencing failure, not a budget failure, so the answer is gates rather than promises.
Phase the work around decisions the business already owns. Phase 1 (weeks 1–6): clean data, core lifecycle, deals pipeline, and the one revenue dashboard the CFO asked for. Phase 2 (weeks 7–14): the Vehicle custom object and associations. Phase 3 (weeks 15–22): regional permissions and the two-way sync. Each phase ships something usable on its own, so a stall in Phase 3 still leaves a working portal.
Definition of done per phase. Written at kickoff, with a named business owner and an acceptance test - e.g., "Vehicle associated to correct contact for 50 sampled units," not "custom object built." No phase starts without the previous sign-off.
Fix the bus factor now. One shared admin is the single most likely cause of the outcome they fear. Budget for a second trained admin in Phase 1, and require that all workflows and properties carry descriptions.
Governance. A 30-minute weekly steering call with the admin, a written change log, and a standing agenda item: what changed in scope, and who approved it. If a phase is slipping, the conversation is about cutting scope, not extending the timeline silently.