Article
"CRM Data Model Design: A 6-Step Guide (With Examples)"
resources.rework.com
Quoted on this wiki
Every place a page here uses this source, in the order the words come in it.
Contacts: Individual people your team interacts with “Companies (Accounts): The organizations contacts belong to” Deals (Opportunities): Active sales motions with a close date and value
That third attempt started with a whiteboard, not a laptop. “Contacts vs. Leads vs. Accounts vs. Deals: the relationships between these objects determine what you can report on, what you can automate, and how your pipeline works.” This guide walks you through designing a CRM data model on paper before you configure a single field.
In CRM
In Salesforce, custom objects are powerful but add licensing and maintenance overhead. Salesforce's guide to custom objects covers the setup and permission considerations. In HubSpot, custom objects are available on Enterprise plans and are increasingly capable. In Pipedrive, custom objects don't exist in the same way. You use custom fields on the existing objects instead. “Design for what the CRM can support.” Step 2: Map the Relationships
In CRM
Step 6: Document the Model in a Schema Sheet “Before you configure anything, document your design in a simple spreadsheet.” A basic schema sheet has:
In CRM
Picklist Values tab: Every picklist and every value, with a note on who owns it “Your CRM admin configures from it.” Keep the schema sheet in a shared drive, not just in your head. CRM admins change. Your future self will thank you.
In CRM
Core picklists to define before go-live: “Lead Source: Where contacts enter the CRM. Sample values: Inbound Web, Outbound SDR, Referral, Partner, Event, Content Download, Paid Ad, Trial Signup. Keep these at the source level, not "Facebook Ad - Campaign Name - March 2026." Source-level values stay clean. Campaign-level belongs in your marketing attribution tool.” Industry: Use a consistent taxonomy. Start with 10-12 values and resist requests to add more in the first 90 days. SaaS, Financial Services, Healthcare, Manufacturing, Professional Services, Retail, Media, Education, Non-Profit, Other.
In CRM
Deals (Opportunities): Active sales motions with a close date and value “Activities: Calls, emails, meetings, tasks (the interaction record)” Before you add anything else, validate that these four cover 90% of your sales motion. They usually do. The temptation to add custom objects is strong. Resist it until you've proven the standard objects can't handle the use case.
Core picklists to define before go-live: “Lead Source: Where contacts enter the CRM. Sample values: Inbound Web, Outbound SDR, Referral, Partner, Event, Content Download, Paid Ad, Trial Signup. Keep these at the source level, not "Facebook Ad - Campaign Name - March 2026." Source-level values stay clean. Campaign-level belongs in your marketing attribution tool.” Industry: Use a consistent taxonomy. Start with 10-12 values and resist requests to add more in the first 90 days. SaaS, Financial Services, Healthcare, Manufacturing, Professional Services, Retail, Media, Education, Non-Profit, Other.
That third attempt started with a whiteboard, not a laptop. “Contacts vs. Leads vs. Accounts vs. Deals: the relationships between these objects determine what you can report on, what you can automate, and how your pipeline works.” This guide walks you through designing a CRM data model on paper before you configure a single field.
“The second rebuild happened because they discovered, mid-Q2, that their contact model couldn't support multiple contacts per deal with different roles.” That third attempt started with a whiteboard, not a laptop.
That third attempt started with a whiteboard, not a laptop. “The core lesson: every CRM implementation that falls apart does so because someone started clicking before thinking.” This guide walks you through designing a CRM data model on paper before you configure a single field.
Contacts: Individual people your team interacts with “Companies (Accounts): The organizations contacts belong to” Deals (Opportunities): Active sales motions with a close date and value
Relationship Type Notes Contact → Company Many-to-One One contact belongs to one company (default) Contact → Company Many-to-Many One contact works with multiple companies (Salesforce Accounts feature, HubSpot Associations) Contact → Deal Many-to-Many Multiple contacts can be on one deal (committee buying) Deal → Company Many-to-One One deal belongs to one company Activity → Contact Many-to-One Activities log against a single contact Activity → Deal Many-to-One Activities log against a single deal “The non-obvious question: can a contact belong to multiple companies?” Salesforce handles this with Account Relationships and Contact Roles. HubSpot added multi-association support in 2022. HubSpot's documentation on associations explains how to label relationship types across objects. Pipedrive handles it less elegantly. You can associate a person with multiple deals, but the primary company is singular.
Salesforce handles this with Account Relationships and Contact Roles. HubSpot added multi-association support in 2022. HubSpot's documentation on associations explains how to label relationship types across objects. Pipedrive handles it less elegantly. You can associate a person with multiple deals, but the primary company is singular. “If your sales motion regularly involves contacts who span multiple accounts, design your model around that before you configure.” Step 3: Define What Lives on Each Object