CRM Data Model 101: Contacts, Accounts, Deals, and Activities
Every CRM is built on four core objects — contacts (people), accounts (companies), deals (opportunities), and activities (interactions). Understanding how they connect is the key to getting the most out of any CRM.
- The four core CRM objects are contacts (people), accounts (companies), deals (opportunities), and activities (interactions).
- Relationships are the key: contacts belong to accounts, deals link to contacts, activities log interactions against any object.
- Custom fields and tags extend the base model without requiring schema changes.
- The simpler the data model, the higher the adoption — avoid over-engineering.
The Four Core Objects
People — the individuals your team sells to, supports, and builds relationships with. Each contact has a name, email, phone, title, company, and custom fields.
Companies — the organizations contacts belong to. Accounts group contacts by employer and store firmographic data (industry, size, revenue).
Opportunities — potential revenue in your pipeline. Each deal has a value, stage, probability, close date, and is linked to one or more contacts.
Interactions — calls, emails, meetings, and notes. Every touchpoint in the relationship is logged as an activity linked to a contact, deal, or account.
How Objects Relate to Each Other
| Relationship | Type | Example |
|---|---|---|
| Contact → Account | Many-to-one | Jane Smith works at Acme Corp |
| Deal → Contact(s) | Many-to-many | $50K renewal involves Jane (champion) and Bob (buyer) |
| Activity → Contact | Many-to-one | Call logged against Jane on March 1 |
| Activity → Deal | Many-to-one | Call linked to the $50K renewal deal |
| Deal → Pipeline Stage | Many-to-one | $50K renewal is in Negotiation stage |
Extending the Model: Tags and Custom Fields
Add structured data to any object — “Industry” on accounts, “Use Case” on deals, “NPS Score” on contacts. Custom fields are typed (text, number, date, dropdown), filterable, and reportable.
Best for: data you want to search, sort, and report on.
Apply freeform labels to any record — “SaaStr-2026”, “High Priority”, “Decision Maker”. Tags are flexible and can be added/removed without schema changes.
Best for: ad-hoc grouping, event tracking, workflow triggers.
crmzero’s data model is transparent and fully accessible via API. Contacts, deals, activities, tags, and custom fields are all first-class objects with full CRUD operations. The API returns typed, consistent JSON — no dynamic blobs or hidden fields.
Frequently Asked Questions
What are the core objects in a CRM?
The four core objects are: contacts (people), accounts (companies), deals (sales opportunities), and activities (interactions like calls, emails, meetings, and notes). These objects are linked together to create a complete picture of business relationships.
What is the relationship between contacts and accounts?
Contacts belong to accounts — it's a many-to-one relationship. Multiple contacts (Jane Smith, Bob Jones) can belong to the same account (Acme Corp). This lets you track all the people you know at a given company.
What are custom fields in a CRM?
Custom fields are user-defined fields that extend the base data model. For example, adding a 'Budget Range' dropdown to deals or a 'LinkedIn URL' text field to contacts. They're typed, searchable, and reportable.
Should I use tags or custom fields?
Use custom fields for structured data you want to filter and report on (industry, deal type). Use tags for flexible, ad-hoc grouping (event attendance, campaign membership). Tags are easier to add but harder to report on.