Proje vitrini hazırlanıyorPreparing project showcaseПодготавливаем витрину проекта

CRM Basics

How to build a customer database

A phone's contacts, a spreadsheet, and one rep's memory give three different answers. Here is how to build a usable, lawful customer database from zero.

Rocketly · 2026-08-27

At a Monday pipeline review someone asked a simple question: "Can we pull the companies that asked for a quote last year and never bought?" Three answers came back. One person scrolled the contacts on their phone, another opened customers_final_v3.xlsx, and a third said, "I remember them, there were four or five." The lists did not match, the meeting lost half an hour, and the question went unanswered. That is not a data shortage. That is what it looks like when there is no customer database.

What follows is a practical build guide for a customer database that is usable and legally sound from day one: which fields you need, how to separate people from companies, how to standardize data at capture, how to handle consent and retention, how to stop duplicates, how to move the old spreadsheet across, and how to keep it alive. The goal is not a tidy table. It is one source that gives everyone the same answer in seconds.

Identity fieldsCommercial dataInteraction historyOne source of truthCustomer record
A customer record carries three layers: identity, commercial data, and interaction history. When all three meet on one record, you get a single source of truth.

What a customer database is, and why a list is not one

A list is a pile of rows sitting next to each other. A database is a structure where records relate to one another, every field follows a rule, and every change leaves a trace. One question exposes the difference: "Who touched this customer last, when, and on which channel?" A list has no answer. A database keeps it on the record itself.

The second difference is uniqueness. In a spreadsheet one customer can live in three rows under three spellings and nobody notices. In a database each customer has exactly one record that phone, email, and company name point to unambiguously. Until uniqueness is enforced, no report and no revenue total can be trusted.

In practice a customer database carries three things at once. First, identity: the fields that say uniquely who this record is. Second, commercial context: quotes, orders, the outstanding balance. Third, interaction history: calls, messages, emails, visits. As long as those live in separate files, you have three fragments of memory, and none of them is enough to decide on.

Which fields do you actually need?

The classic mistake when building from scratch is opening forty fields because "we might need them later." Thirty stay empty, empty fields break reports, and the sales team quietly stops filling anything in. Do the opposite: define a small core a record cannot be saved without, and make the rest optional.

Set that core against how records are really created. On an inbound call you cannot ask for a tax ID, but you can capture a name, a number, and an interest. Define core fields by the moment the record opens, conditional fields by deal stage.

Field groupExampleRule
Required coreName, phone, source, ownerRecord cannot be created without them
Conditionally requiredTax ID, billing addressRequested only when the deal closes
OptionalIndustry, headcount, social profileMay stay empty, never blocks a report

Before adding any field, answer one question: which decision will it inform? No answer, no field. Which fields belong on which object is something we work through in our piece on the CRM data model of contacts, companies and deals.

People and companies: two objects, one relationship

In B2B the most expensive design mistake is keeping the person and the company in the same row. Talk to three people at one account and you type the company details three times; when the address changes, one copy always stays stale. The fix is two record types, with the person linked to the company.

Give the link a direction too: a company can have many contacts, but a contact belongs to one company. If the same individual works with you under two businesses, two contact records beat one record hanging off two companies, because the commercial history separates properly as well.

Once the split exists, the account, invoices, and contract hang on the company, while phone, email, and meeting notes hang on the person. If the technical buyer leaves, the account history stays put. In consumer retail a contact record alone is usually enough, so skip the company layer.

The worth of a customer database is not measured by how many records it holds, but by whether two people asking the same question get the same answer.

Where the data comes from, and standardizing it on the way in

Records never arrive from one place. Web forms, the shared inbox, inbound calls, invoicing, trade-show lists, marketplace orders: each produces data in its own shape. Instead of postponing the cleanup, align it at the moment it enters.

  • Web forms: Mask the phone field, validate the email format, and let the system write the source itself instead of whoever fills the form.
  • Shared inbox: Conversations from WhatsApp, Instagram, and email should attach to one record, with the responder logged.
  • Phone: Call log and caller ID should match a record automatically, leaving the rep to enter the outcome and next step.
  • Invoicing: The customer account and the CRM record must share one identity; two numbering schemes create merge work later.
  • Events and marketplaces: Map the incoming template onto your field structure before importing; never load a raw file as-is.

Manual typing can be cut down too: pulling data off business cards and documents is covered in our article on AI document and business-card capture.

Consent and lawful basis

Collecting customer data does not grant the right to use it however you like. The GDPR-style logic comes down to three points: collect only what the purpose requires, say plainly what you collect and why, and do not keep it forever. Commercial messages need their own explicit opt-in, recorded on the contact with a date and a channel.

Concretely: every contact record should carry consent status, the date, and the channel it came through, plus a clear way to mark it withdrawn. How this looks inside a CRM is covered in the guide to a data-protection-compliant CRM, and setting the clocks in the data retention and deletion policy. Requirements vary by jurisdiction and sector, so run important calls past your legal advisor.

Duplicates: prevent, find, merge

Duplicates are the quietest way a database rots. Two reps quote the same customer separately, a campaign lands twice, and revenue reporting splits in half. The answer has three layers.

First, prevention: make phone and email unique keys, and warn on a near match while the record is being created. Then detection: scan regularly on normalized numbers, emails, and company names. Last, merging: write down which record survives and which field wins, and never drop history. All three are laid out step by step in our article on finding and merging duplicate leads.

Turn data quality into rules

Data quality is a design problem, not a discipline problem. Instead of asking people to be careful, make the system refuse bad input.

Format and validation

Store phone numbers in one international format and let the system convert whatever the user types. Check emails not only for shape but, where you can, for deliverability. Never keep dates in a text field. The full rule set sits in our piece on CRM data quality and validation.

Free text or picklist?

Anything that ends up in a report has to be a picklist. Leave "industry" as free text and you get thirty spellings and no working filter. Keep free text for notes only, and keep picklists short: a fifteen-option dropdown is one nobody completes.

Designing fields and tags for segmentation

The real job of a customer database is isolating the right group. Two instruments do that: fields and tags. Fields carry permanent, single-value facts such as city, industry, or customer type. Tags mark temporary or overlapping states: met at a trade show, price sensitive, waiting on a revised quote.

Do not mix them up. Turn city into a tag and it stops being reportable; turn "price sensitive" into a field and you cannot flag two states at once. Tying segments to real business goals is what we cover in customer segmentation. Plan it early, because fields added later stay empty on every historical record.

Moving and cleaning the old data

Most businesses do not start from zero. There is a spreadsheet, a phone's contact list, and an accounting package. Move them in three passes. First, consolidate the files into one sheet and map the columns onto your target fields. Second, clean out blank rows, test records, dead numbers, and companies that no longer trade. Third, trial-import a small sample, check it, and only then load everything.

The rule that matters most is keeping an untouched copy of the raw file. Our guide to migrating from Excel to a CRM lays the move out as a one-week plan.

Who sees what, backups, and getting your data out

The moment the database exists, three more questions appear. Who sees which record? Reps seeing only their own book while managers see the whole team is a common setup; define roles and permissions before the record count grows, because retrofitting is painful.

Second, backups. Your provider probably takes them, but keep a regular export under your own control too. Third, portability: can you export in a standard format whenever you want? If not, you are carrying vendor lock-in risk. Being able to walk out with your data is not a convenience; it is leverage.

Routines that keep it alive, and the quality metrics to watch

Building takes a week. Keeping it alive is permanent. Three routines do the work. Every conversation gets logged, with an outcome and a next step. Automatic enrichment fills gaps from what the form already told you. And once a month a cleanup pass runs: scan for duplicates, review records untouched for six months, flag dead numbers.

Give those routines an owner. The moment you say "everyone should take care of it," nobody does. Hand the monthly cleanup to one person and have them report a short checklist: duplicates merged, records archived, gaps filled. That list proves the work happened and shows where the mess piles up.

You also cannot manage what you do not measure. Three metrics are enough: completion rate of required fields, share of duplicates in the total, and reachability, meaning records with a working phone or email. Track them monthly and problems surface here before they hurt sales.

Common mistakes

The usual ones: no owner assigned when a record is created, a blank source field, deleting instead of archiving, notes buried in email threads, and never writing down what lives in one person's head. Then there is opening a field for a report and never filling it. An empty field is worse than a missing one, because it makes a report look confident when it is not.

As the record count grows, the way you query it changes too; reaching data by asking rather than filtering is covered in asking your CRM data questions in plain language. To start building your own customer database today, open a Rocketly account, bring contacts, companies, and interaction history into one structure, and run your first import the same day.