Tutorial

How to Design a CRM Data Model for a Small B2B Sales Team

Design a CRM data model for a small B2B sales team with four core objects, minimal custom fields, and honest pipeline stages.

A CRM data model is the structure that decides what your small B2B sales team can record, filter, and report on. The right model mirrors how your deals actually move from first call to signed contract, without adding fields nobody wants to fill in. This guide covers the four core objects, the field discipline, and the pipeline rules that keep a small team honest.

Why does your CRM data model matter?

Your CRM data model determines which reports you can trust and which follow-up tasks are possible. If contacts, companies, and deals are not connected cleanly, every dashboard becomes guesswork. Get the core objects right and the rest is forgiving.

A data model is the set of objects, fields, and relationships a CRM uses to store your information. Most small teams start by importing a spreadsheet export, and that is when the trouble begins. Without clear rules, the same company appears under three spelling variants, and deals get linked to whichever contact is nearest in the list. Expect to find roughly 30% duplicate companies in a CRM that has run for a year without a merge rule.

Bad structure shows up in the reports first. The forecast says a deal is worth fifty thousand, but nobody can tell you who owned the account when it entered the pipeline. The cost is not technical. It is the time your seven salespeople spend rechecking records before every call.

Which objects should a small B2B sales team start with?

Start with Company, Contact, Deal, and Activity. Every B2B sale involves multiple people inside one account, so Company sits at the top, Contacts below it, and Deals attached to both. The Activity object records emails, calls, and meetings.

These four objects cover the whole sales workflow. A Company, also called an Account in some CRMs, is the business you sell to. A Contact is a person at that company. A Deal, sometimes named an Opportunity, is a sale in progress with a stage and a value. An Activity is a recorded interaction such as a call, email, or meeting.

In a CRM, an object is a type of record, and the relationships between objects are what make a data model useful. One Company has many Contacts, and one Company can have many Deals. Each Contact and Deal normally belongs to exactly one Company. A lookup field stores a link to another record, and these links turn separate lists into a connected model.

Do not create custom objects yet. A custom object is a record type you define yourself, like Contract or Support Ticket, and small teams rarely need one in the first six months. A team of five to ten people that sticks to the four standard objects keeps the CRM fast and the reports simple.

How many custom fields do you really need?

Cap custom fields at around 10 per object, added only when a filter or report needs the value. Each extra field is information someone must fill in, and empty fields quickly become ignored. Most small teams stay under 20 total.

Standard fields cover roughly 80% of what a B2B sales team needs to track. Before anyone creates a custom field, run it through this checklist:

  • Will the value appear in a report or dashboard more than once a quarter?
  • Can a rep enter it from memory in under five seconds?
  • Does it belong on Company or Deal rather than on a Contact?
  • Would the detail be better captured as an Activity note?

If the answer to the first question is no, the field is decoration. A custom field added for one prospect and kept forever is the quickest way a data model rots. You can always add a field later. Removing one is what hurts adoption, because reps have already built habits around it.

What belongs on the Deal object versus the Company record?

Put deal facts like stage, close date, and value on the Deal object. Put durable facts like industry and headcount on the Company. A value that stays true after closing is account data. Values changing per sale are deal data.

This separation is what keeps reporting stable. If you store the number of employees on the Deal, a company with three open deals appears three times, and your account list inflates. Store durable facts once, on the Company.

The harder decision is how many deals to attach to one company. A pipeline is the ordered set of stages a sale moves through, and that pipeline can carry only one definition of a deal. Many B2B teams track one Deal per sale, which suits project work and one-time purchases. Teams selling retainers or annual contracts often prefer one Deal per account per year.

CriterionDeal per saleDeal per account per year
Best fitProjects, one-time purchasesRetainers, support contracts
Forecast accuracyHigh for the current quarterBlurry until renewal is signed
Report complexitySimple won and lost reportsNeeds renewal date tracking
MaintenanceClose and archive when doneStays open all year

A simple rule: if you forecast by counting deals, use Deal per sale. If you forecast by committed value per account, use Deal per year. Mixing both approaches in one pipeline produces a forecast nobody trusts.

How do you keep pipeline stages honest?

Give each stage a definition and an expected exit action, then restrict to six stages or fewer. If a stage has no clear meaning, reps will log deals wherever it is convenient. Use stages like Qualified, Demo, and Proposal.

Every pipeline stage needs two things: the definition of what has happened, and the action that moves the deal forward. For example, Proposal Sent means a quote went out, and the exit action is the customer responding. A pipeline with one hundred prospects and four stages is easier to manage than the same pipeline with nine stages and loose definitions.

Small teams with short cycles, typically four to eight weeks, need fewer stages, not more. A five-person team with nine stages tends to report roughly 20% less reliable forecasts than the same team with four, because reps start skipping stages to save time. If a stage collects fewer than a quarter of active deals in a month, delete it.

The stage field should also enforce a probability, such as 20% at Qualified and 60% after Demo, so the forecast is a calculated number rather than a guess.

How do you handle contacts who change companies?

When a contact changes jobs, create a record linked to the new company, or reports credit the wrong account. Keep the old record so historical deals stay accurate, and merge duplicates later. Never link one person to two active companies.

This is the data model question that confuses most small teams. In B2B sales, buyers move between companies regularly, and when they do, their deal history belongs to the previous employer. If you update the Company field on the existing record, every past deal follows that person to the new company, which corrupts the win and loss reports.

The clean pattern is one person, one active company. When someone moves, create a new Contact at the new company, keep the old Contact with its deal history, and add a note on both records so the next rep knows they are the same person. Deduplication, the process of merging repeated records, is then used only when the same company was entered twice, not when a person changes jobs.

Who should own the data model?

One sales manager or operations person must own the data model and have authority to reject field requests. For a team of five to ten people, that is about one day weekly. Without an owner, it drifts within two quarters.

The owner does three things: reviews every custom field request against the checklist, runs a cleanup pass for duplicates once a month, and checks that reps follow the stage definitions. The owner should be someone who uses the CRM daily, not an IT administrator who works outside the sales process.

If the design work feels bigger than your team, a custom build can hard-code these rules from day one. Custom CRM development builds the model around your exact workflow, and you can see how we structure that work on our CRM development page.

Frequently asked questions

What is a CRM data model?

A CRM data model is the set of objects, fields, and relationships that determines how customer information is stored and connected. It decides whether your reports are trustworthy and whether a rep can record a day's work quickly. For a small B2B team, the model should be small enough that one person can own and maintain it.

How many custom fields should a CRM have?

Most small B2B teams need fewer than 20 custom fields across all objects, with around 10 per object as a practical ceiling. Add a field only when a report, workflow, or required filter needs the value. Every additional field is something reps must fill in, and empty fields break the reports you added them for.

Should a small B2B sales team build or buy a CRM?

Off-the-shelf CRM software works when your sales process fits the standard objects and fields. A custom CRM data model helps when you sell in ways the defaults do not support, such as multi-year contracts or usage-based pricing. The design process described here applies either way and will save you money regardless of which route you take.

How long does it take to set up a CRM data model?

A first pass for a five to ten person team takes roughly one week when one person owns the work. That includes defining the four core objects, choosing pipeline stages, and setting up the first reports. Budget another two weeks of cleanup if you are importing history from an unstructured spreadsheet.

Back to blog