Join our FREE personalized newsletter for news, trends, and insights that matter to everyone in America

Newsletter
New

How We Structure A Small-business Crm Database (tables You'll Actually Need)

Card image cap

Most small-business CRMs fail not from bad code but from a messy database. Here is the minimal table structure we start with for a custom CRM — it covers 90% of businesses.

The core tables

contacts — every person you do business with:

  • id, full_name, phone, email, company, created_at

deals — one row per potential sale:

  • id, contact_id, title, value, stage (new / contacted / quoted / won / lost), created_at, updated_at

activities — every call, visit or follow-up:

  • id, deal_id, type, notes, happened_at, next_follow_up

products — what you sell:

  • id, name, price

deal_items — which products belong to which deal:

  • id, deal_id, product_id, quantity

Why this shape works

  • One contact can have many deals; one deal has many activities. Nothing is duplicated.
  • The stage column on deals drives the whole sales pipeline view — move a deal from "quoted" to "won" and your reports update themselves.
  • next_follow_up on activities is the single most valuable field: it powers the daily "who do I call today" list that stops leads going cold.

What we add later

Only when the business asks: user roles, email templates, invoice tables, and integrations with accounting tools. Start small, grow on demand.

We build custom CRM systems like this at ZahrionTech for small businesses in the USA, UK and worldwide — shaped around how the team actually works. More at https://zahriontech.com/