{
  "id": 11033542,
  "title": "The three-object CRM data model that ends your data silos",
  "url": "https://urgent.news/2026/09/30/the-three-object-crm-data-model-that-ends-your-data-silos",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-30T21:09:21.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/alexboissonneault/the-three-object-crm-data-model-that-ends-your-data-silos-1a3l"
  },
  "original_language": "en",
  "account": "A CRM data model is the schema of a revenue system, including objects, fields, relationships, and states. However, traditional CRMs ship without a designed schema, and users can freely add properties, pipeline stages, and workflows. This leads to data silos, as different teams use incompatible mental models - marketing focuses on leads, sales on deals, and customer success on accounts. To address this, a three-object architecture is proposed: Company, Contact, and Deal. Company represents the economic entity that pays, Contact is a human at a company, and Deal is a discrete revenue opportunity with a lifecycle. Contacts without an open Deal are Leads, and Deals with type=renewal are Renewals. By focusing on these three objects, data silos are reduced, and revenue questions can be answered through simple two-hop queries. The migration process involves exporting properties, defining the target state machine, and gradually migrating data from the old model to the new one. The success of the migration is measured by the ability to answer revenue questions with one query path, yielding consistent results across different users.",
  "summary": "Every few weeks a developer gets pulled into a meeting they didn't ask for. The revenue team's CRM is \"a mess,\" the reports don't match, and someone has decided that the engineer who once wrote a SQL query against it is now responsible for fixing it. If that's you, this is the map I wish someone had handed me the first time I opened a CRM with several hundred custom properties and a lifecycle…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}