---
title: Citrus America Contact-Company Data Sync Pattern
type: article
created: '2026-04-05'
updated: '2026-04-05'
source_docs:
- raw/2025-12-11-cai-hubspot-status-review-108049664.md
tags:
- crm
- hubspot
- data-model
- automation
- workflow
- sales-ops
- citrus-america
layer: 2
client_source: null
industry_context: null
transferable: true
---

# Citrus America Contact-Company Data Sync Pattern

## Overview

When qualifying data (e.g., "Are you juicing?") is captured during a sales conversation, there is a tension between two valid needs:

1. **Data durability** — if a contact leaves, qualifying information about the business should not be lost
2. **Sales workflow efficiency** — reps work primarily in contact records and should not have to navigate between contact and company views to see or enter key data

The solution adopted for [[clients/citrus-america/_index|Citrus America]] resolves this tension by storing qualifying data at the **company level** as the source of truth, then using an **automation to sync that data to the associated contact record**.

## The Problem

Qualifying fields (e.g., "Are you juicing?", volume estimates, application types) were initially placed on the contact record. This created two risks:

- If a contact leaves or is archived, the qualifying data about the business is lost with them
- Storing data only at the company level forces reps to jump between contact and company views, reducing adoption

Neither pure-contact nor pure-company storage alone satisfies both requirements.

## The Pattern

### 1. Capture via a Unified Form

Create a single lead intake form that collects both **contact-level** fields (name, email, phone, state, category) and **company-level** qualifying fields (juicing status, volume, application type) in one pass. The rep fills out one form; HubSpot routes each field to the correct object.

This eliminates the navigation burden that discourages reps from entering company-level data directly.

### 2. Store Qualifying Data at the Company Level

Fields like "Are you juicing?" are written to the **company record**. This ensures the data persists even if the associated contact is deactivated or reassigned.

### 3. Sync to Contact via Automation

A workflow monitors the company-level qualifying fields and copies their values to the corresponding fields on all associated contact records. This means:

- The contact record shows the qualifying data without the rep having to enter it twice
- Lifecycle stage workflows (MQL, SQL) can still trigger on contact-level field values
- Manual overrides on the contact record remain possible; the sync is one-directional and not a hard lock

> **Note:** The contact and company fields are not continuously synchronized — the automation fires on change, so a manual edit to the contact field will not be overwritten unless the company field changes again.

### 4. Lifecycle Automation Reads Both Objects

The MQL workflow evaluates a combination of contact fields and company fields:

| Field | Object |
|---|---|
| First Name, Last Name, Email, Phone, State, Category | Contact |
| Associated Company exists | Contact → Company association |
| "Are you juicing?" = Yes or "No, but interested" | Contact (synced from Company) |

The SQL workflow reads four BANT fields on the contact record. When all four are set to a qualifying value, a deal is automatically created and assigned to the contact owner.

## Why Not Just Use Company Fields in the Workflow Directly?

HubSpot workflows can evaluate both contact and company fields in a single enrollment trigger. However, keeping a synced copy on the contact record provides two practical benefits:

- **Sales visibility** — reps see all relevant data in one place without switching objects
- **Workflow simplicity** — existing contact-based lifecycle workflows do not need to be restructured to cross-reference company fields

## Implementation Checklist

- [ ] Create unified lead intake form (contact + company fields in one form)
- [ ] Add qualifying fields (juicing status, volume, application type) to the Company object
- [ ] Build sync workflow: on Company qualifying field change → update associated Contact field(s)
- [ ] Verify MQL workflow enrollment criteria include the synced contact field
- [ ] Add BANT fields to the Deal record for post-conversion visibility
- [ ] Confirm SQL workflow creates deal and assigns deal owner = contact owner

## Related Context

- This pattern was defined during a [[meetings/2026-04-05-cai-hubspot-status-review|HubSpot status review]] with Miriam Framson (Citrus America) and the Asymmetric team
- A data cleanup of ~6,260 contacts (3,260 assigned to deactivated user Jay; ~3,000 unassigned) is planned **after** the new workflow and form are live, to avoid re-triggering automations against incorrectly owned records
- See [[knowledge/crm-automation/bant-sql-automation|BANT-to-SQL Automation]] for the deal creation workflow details

## Applicability

This pattern applies broadly to any HubSpot implementation where:

- A business sells to companies (B2B), not individuals
- Qualifying data describes the business rather than a specific person
- Sales rep adoption is a concern and navigation friction must be minimized
- Contact turnover at customer accounts is expected