---
title: Contact vs Company Object Strategy
type: article
created: '2026-04-05'
updated: '2026-04-05'
source_docs:
- raw/2025-10-09-cai-hubspot-call-93068091.md
tags:
- hubspot
- crm
- data-architecture
- sales-ops
layer: 2
client_source: null
industry_context: null
transferable: true
---

# Contact vs Company Object Strategy

## Principle

In HubSpot (and CRM systems generally), fields should be assigned to the object that *owns* the underlying truth. The guiding question is:

> **Is this attribute about the person, or about the place/business?**

- **Contact object** → person-specific attributes (name, email, phone, role, personal preferences)
- **Company object** → location- and business-specific attributes (juicing status, number of locations, volume estimates, service model preferences)

## Rationale

People leave companies. When a contact is marked inactive or removed, any data stored on that contact record is effectively lost. If the same information lives on the company record, it persists regardless of personnel changes.

> *"The place didn't go away. What you know about the place stays."*
> — Mark Hope, working session with Citrus America

This is especially relevant in B2B sales where:
- A single company may have multiple contacts over time (turnover, succession)
- Multiple contacts at the same company should share a consistent view of that company's attributes
- Deals are ultimately with businesses, not individuals

## Implementation Pattern

### Fields that belong on the Company object

Any question that describes the business or location rather than the individual:

- Are you currently juicing?
- How many locations do you have?
- How much volume do you anticipate juicing?
- What is your preferred service model?
- Industry / market segment

### Fields that belong on the Contact object

- First name, last name
- Email address
- Phone number
- Geographic region (state/province)
- Job title, role type
- Communication preferences

### Lifecycle qualification implications

When lifecycle stage criteria span both objects (e.g., SQL qualification), HubSpot workflows can evaluate a combination of contact *and* company fields in a single trigger. The contact's stage is what advances — but the company record supplies the qualifying data.

This means:
- A contact cannot become SQL without being associated with a company
- Company fields (juicing status, locations, etc.) are required *for SQL qualification* but not required simply to create a company record
- Adding an **"Unknown"** option to company dropdown fields allows progression without blocking the workflow when information is genuinely unavailable

## Data Consistency Benefit

When company-level attributes live on the company object, all contacts associated with that company share the same data. There is no risk of two contacts at the same account having conflicting answers to "Are you currently juicing?" — the answer lives in one place.

## Practical Workflow

1. **Inbound contact created** → associate immediately with a company (make company name a required field on forms and manual entry)
2. **Sales rep qualifies the contact** → enriches company record with business attributes (juicing status, locations, etc.)
3. **Lifecycle stage advances** → workflow evaluates both contact and company fields to determine Lead → MQL → SQL progression
4. **Contact leaves the company** → company record and its attributes remain intact; deal records remain associated with the company; sales rep's next task is to find the replacement contact

## Related Patterns

- [[wiki/knowledge/hubspot/lifecycle-stage-qualification-criteria]] — how contact and company fields combine to drive stage transitions
- [[wiki/knowledge/hubspot/deal-creation-automation]] — automated deal creation at Opportunity stage, requiring both a contact and company association
- [[wiki/clients/citrus-america/index]] — client where this pattern was first implemented

## Evidence

Established during a working session with Citrus America (Miriam Framson) and Asymmetric team (Mark Hope, Melissa Cusumano, Chris Ostergaard). The decision was driven by a real scenario: a hotel contact who was the deal champion left the company, effectively resetting the sales relationship to zero because no company-level data had been captured independently.