# Architecture and ownership

Separate shared identities, commercial facts, offers and external accounts.

CRM owns Deal (which also holds leads), Interaction, Tasks, Notes, Feedback and Automation: Lead Source. Core owns shared people, organizations, memberships, organizational structure, campaigns and classifications. Products & Services owns Offers. Tooling and Access owns external accounts.


[![Shared sources and CRM business records.](/systems/crm/diagrams/ownership-en.svg)](/systems/crm/diagrams/ownership-en.svg)

*Arrows show data use, not automatic actions.*

## Follow the data

Core identities → CRM mirrors → Deal and Interaction (through Company° and People°). Core Campaign → CRM Campaign mirror → Deal.Campaign° → Interaction.Campaign (lookup through Deal°). Tooling account → Lead Source → seller resolution for Cal.com. Offer mirror → Deal.Product*.

The booking workflow explicitly creates a missing Person in Core through an authorized integration, then waits for its CRM mirror. This is a source write in that workflow, not proof that every consumer table supports API creation or write-back.

## Preserve the boundaries

The customer is Counterparty; the seller’s organization is Accountable. The sales Relationship table was removed on 2026-11-04; Core Business Relationship between organizations is a different record and stays. Campaign describes an initiative; Campaign° on the Deal says which campaign a lead came from. A tag records classification or provenance, not a campaign link or permission to contact. A deal proposes an offer; it does not rewrite the shared price.

## Resolve conflicts at the source

Correct shared identity in Core, catalog facts in Products & Services and account identifiers in Tooling and Access. Correct sales links, follow-up and campaign links in CRM. Older descriptions still promise two-way mirrors and automatic deduplication; do not rely on either for People or Companies, since Airtable sync is one-way. Campaign has a documented one-way sync contract, including retained source deletions. See [Campaign in CRM](/systems/crm/entity-campaign).

## Distinguish access from filtering

Created By, Auth User and Authorized Users are fields, not a full permission audit. Company views, intake filters and conditional fields guide work; they do not enforce security against all readers or API writers. Do not assume records are isolated between companies.