# Architecture and ownership

Which facts Products & Services owns, what it reads from Core and what the CRM reads from it.

Products & Services is the only writer of Product, Product Component, Offer, Price List, Brand and Product Category. It reads companies and tags from Core. It publishes Offer to the CRM. Systems Central records the six native record types with this system as their system of record, and Offer as mirrored in the CRM.

## Follow the data

| Direction | What moves | How it is used here |
| --- | --- | --- |
| Core → Products & Services | Organization (mirror) | Offer Seller*, Product Provider° and Owner°, Brand Owner° |
| Core → Products & Services | Tags (mirror) | Optional Tags on every table |
| Core → Products & Services | Person, Membership, Department, Position, Team, Classification term (mirrors) | Shared identity and organizational context |
| Products & Services → CRM | Offer, as Offer (mirror) | Deal.Product* links one Offer; Offer (Price), (Item) and (Unit) are CRM lookups |

The Tags mirror is a one-way sync of Name, Kind and notes, with source editing off and removed source rows retained; that contract dates from 2026-10-22. For the Organization sync and the CRM Offer sync, check field mapping, refresh interval and treatment of archived rows in the Airtable sync settings before relying on them.

## Preserve the boundaries

A reader never writes to this base. A fact that only one domain needs stays on that domain's own record. The CRM keeps the negotiated amount in Deal.Value*; the list price stays in Offer.Price*. Changing a deal does not change an offer, and changing an offer does not change past deals.

The Provider of a product makes or delivers it; the Seller of an offer is the group company whose name goes on the proposal. The same service sold by two companies is two offers. A Brand is the name on the product, not the company that sells it.

The CRM documents its own use of offers in [Offer in CRM](/systems/crm/entity-offer). This system documents what an offer is.

## Built and proposed

The proposal that defines this domain, that Products & Services is the only writer of what the business sells and that Sales, Fintable and Inventory mirror it read-only, is still proposed, not yet adopted. It describes a larger domain than the one built today.

| The proposal says | State on 2026-10-28 |
| --- | --- |
| One base writes Product, Product Component, Offer, Price List, Brand and Product Category | Built: six native tables |
| Goods and services in one Product table, Kind derived from Product Type* | Built |
| A Deal in the CRM proposes an Offer | Built: Deal.Product* links Offer (mirror) |
| Price List owned by a Workspace through the Organization mirror | Changed: seller and currency are derived from the list's offers; the stored owner and currency columns were retired on 2026-09-23 |
| Fintable reads Offer; Service [SV] retires into Products & Services | Not built |
| Inventory's Items split, with catalog columns moving here; Price Lists and Price List Lines become Price List and Offer | Not built |
| Vendor Quote moves here when Products & Services takes purchasing | Not moved: it stays as Cost in Inventory |

Accepting the proposal and deciding when Vendor Quote moves is tracked by the Work Item "Accept Products ownership and decide when Vendor Quote moves". Delivery workflows and task templates per Product are proposed for a future Project Management base, where each domain writes its own workflows and tasks (proposed, not yet adopted); they are not kept here.

## Resolve conflicts at the source

Correct company facts in Core and tag wording in the Core Tags catalog. Correct catalog facts here. Correct proposal links and negotiated values in the CRM. A mirror that disagrees with its source is out of date; the source is right.